Add this to your build.gradle
file
repositories {
maven {
url "https://jitpack.io"
}
}
dependencies {
implementation 'com.github.babayevsemid:FileChooser:1.6.0'
//required
implementation "androidx.activity:activity-ktx:1.6.1"
implementation "androidx.fragment:fragment-ktx:1.5.5"
}
val fileChooser = FileChooserActivity(this)
fileChooser.fileLiveData
.observe(this, Observer {
//Selected your photo
//it.path
//it.type
})
fileChooser.requestFile(FileTypeEnum.CHOOSE_PHOTO)
val fileChooser = FileChooserFragment(this)
fileChooser.permissionLiveData
.observe(viewLifecycleOwner){
if (it) {
//Granted
} else {
//Deny
}
})
fileChooser.fileLiveData
.observe(viewLifecycleOwner){
//Created your photo
//it.path
//it.type
})
fileChooser.requestFile(FileTypeEnum.TAKE_PHOTO)
FileChooserActivity fileChooser = new FileChooserActivity(this);
fileChooser.fileLiveData
.observe(viewLifecycleOwner){fileModel->
Log.e("filePath", fileModel.getPath());
File file = new File(fileModel.getPath());
//Use file
});
//CHOOSE_PHOTO
fileChooser.requestFile(FileTypeEnum.CHOOSE_PHOTO, 0);
class App : Application() {
override fun onCreate() {
super.onCreate()
FileChooserFragment.deleteTakeFiles(this)
}
}
enum class FileTypeEnum {
CHOOSE_VIDEO,
CHOOSE_PHOTO,
TAKE_PHOTO
}
fileChooser.manualPermissionLiveData
.observe(this, Observer {
println("Permission isGranted $it")
})
fileChooser.requestPermission(Manifest.permission.ACCESS_COARSE_LOCATION)
fileChooser.permissionMultiSharedFlow
.asLiveData()
.observe(viewLifecycleOwner){
println("Permission isGranted $it")
})
fileChooser.multiRequestPermission(
arrayOf(
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
)