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