From 9d6b8519387edfb3b69ef7ad523385e5c27dbe6b Mon Sep 17 00:00:00 2001 From: Gichan Jang Date: Wed, 22 Jan 2025 15:19:56 +0900 Subject: [PATCH] [Permission] Exit the app when user don't grant enough permission - Exit the app when user don't grant enough permission - Remove deprecated permission Signed-off-by: Gichan Jang --- .../src/main/AndroidManifest.xml | 1 - .../ml/inference/offloading/MainActivity.kt | 27 +++++++++++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/ml_inference_offloading/src/main/AndroidManifest.xml b/ml_inference_offloading/src/main/AndroidManifest.xml index 91db086..b551dc7 100644 --- a/ml_inference_offloading/src/main/AndroidManifest.xml +++ b/ml_inference_offloading/src/main/AndroidManifest.xml @@ -11,7 +11,6 @@ - + val allPermissionsGranted = !permissions.containsValue(false) + + if (!allPermissionsGranted) { + AlertDialog.Builder(this) + .setTitle("Need all permission.") + .setMessage("If you do not grant the necessary permissions, the app will not be able to to run. You need to allow the app to access the required permissions.") + .setPositiveButton("Exit") { _, _ -> + finishAffinity() + } + .show() + } + } + /** * A lifecycle callback method that overrides [ComponentActivity.onCreate]. * @@ -134,10 +151,10 @@ class MainActivity : ComponentActivity() { val info: PackageInfo = packageManager.getPackageInfo(applicationContext.packageName, PackageManager.GET_PERMISSIONS) - val permissions = info.requestedPermissions - if (permissions != null) { - if (!permissions.all { ContextCompat.checkSelfPermission(this, it) == PackageManager.PERMISSION_GRANTED }) { - ActivityCompat.requestPermissions(this, permissions, 0) + + info.requestedPermissions?.let { permissions -> + if (permissions.any {ContextCompat.checkSelfPermission(this, it) != PackageManager.PERMISSION_GRANTED}) { + requestPermissionLauncher.launch(permissions) } }