diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/MainActivity.kt b/app-common/src/main/java/im/angry/openeuicc/ui/MainActivity.kt index 0b06585..a9c754a 100644 --- a/app-common/src/main/java/im/angry/openeuicc/ui/MainActivity.kt +++ b/app-common/src/main/java/im/angry/openeuicc/ui/MainActivity.kt @@ -1,6 +1,7 @@ package im.angry.openeuicc.ui import android.annotation.SuppressLint +import android.app.AlertDialog import android.content.BroadcastReceiver import android.content.Context import android.content.Intent @@ -130,7 +131,18 @@ open class MainActivity : BaseEuiccAccessActivity(), OpenEuiccContextMarker { private fun ensureNotificationPermissions() { val permission = android.Manifest.permission.POST_NOTIFICATIONS if (checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED) return - requestPermissions(arrayOf(permission), PERMISSION_REQUEST_CODE) + if (!shouldShowRequestPermissionRationale(permission)) { + requestPermissions(arrayOf(permission), PERMISSION_REQUEST_CODE) + return + } + AlertDialog.Builder(this) + .setTitle(R.string.notification_permission_request_title) + .setMessage(R.string.notification_permission_request_desc) + .setPositiveButton(android.R.string.ok) { _, _ -> + requestPermissions(arrayOf(permission), PERMISSION_REQUEST_CODE) + } + .create() + .show() } private suspend fun init(fromUsbEvent: Boolean = false) { diff --git a/app-common/src/main/res/values/strings.xml b/app-common/src/main/res/values/strings.xml index e09da9f..d215f23 100644 --- a/app-common/src/main/res/values/strings.xml +++ b/app-common/src/main/res/values/strings.xml @@ -5,6 +5,9 @@ Help + Notification Permission Needed + During the download process, notification permissions are required so that the app does not need to stay in the foreground + Reload Slots Unknown