private
fun getPermission() {
dexter = Dexter.withContext(
this
)
.withPermissions(
android.Manifest.permission.CAMERA,
android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
android.Manifest.permission.READ_PHONE_STATE
).withListener(object : MultiplePermissionsListener {
override fun onPermissionsChecked(report: MultiplePermissionsReport) {
report.let {
if
(report.areAllPermissionsGranted()) {
Toast.makeText(
this
@MainActivity
,
"Permissions Granted"
, Toast.LENGTH_SHORT).show()
}
else
{
AlertDialog.Builder(
this
@MainActivity
, R.style.Theme_AppCompat_Dialog).apply {
setMessage(
"please allow the required permissions"
)
.setCancelable(
false
)
.setPositiveButton(
"Settings"
) { _, _ ->
val reqIntent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
.apply {
val uri = Uri.fromParts(
"package"
, packageName,
null
)
data = uri
}
resultLauncher.launch(reqIntent)
}
val alert =
this
.create()
alert.show()
}
}
}
}
override fun onPermissionRationaleShouldBeShown(permissions: List<PermissionRequest?>?, token: PermissionToken?) {
token?.continuePermissionRequest()
}
}).withErrorListener{
Toast.makeText(
this
, it.name, Toast.LENGTH_SHORT).show()
}
dexter.check()
}