diff --git a/app/build.gradle b/app/build.gradle index a18c1042..decdc202 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -74,7 +74,7 @@ dependencies { implementation 'androidx.vectordrawable:vectordrawable:1.1.0' implementation 'androidx.preference:preference-ktx:1.2.0' - implementation 'com.github.cyb3rko:QuickPermissions-Kotlin:1.0.2' + implementation 'com.github.cyb3rko:QuickPermissions-Kotlin:1.1.2' implementation 'com.hypertrack:hyperlog:0.0.10' implementation 'com.squareup.picasso:picasso:2.71828' implementation 'io.noties.markwon:core:4.6.2' diff --git a/app/src/main/kotlin/com/github/gotify/init/InitializationActivity.kt b/app/src/main/kotlin/com/github/gotify/init/InitializationActivity.kt index 488810f8..fc9e7433 100644 --- a/app/src/main/kotlin/com/github/gotify/init/InitializationActivity.kt +++ b/app/src/main/kotlin/com/github/gotify/init/InitializationActivity.kt @@ -85,6 +85,7 @@ internal class InitializationActivity : AppCompatActivity() { if (manager?.canScheduleExactAlarms() == true) { tryAuthenticate() } else { + stopSlashScreen() alarmDialog() } } @@ -108,8 +109,7 @@ internal class InitializationActivity : AppCompatActivity() { } private fun failed(exception: ApiException) { - splashScreenActive = false - setContentView(R.layout.splash) + stopSlashScreen() when (exception.code) { 0 -> { dialog(getString(R.string.not_available, settings.url)) @@ -195,6 +195,7 @@ internal class InitializationActivity : AppCompatActivity() { val quickPermissionsOption = QuickPermissionsOptions( handleRationale = true, handlePermanentlyDenied = true, + preRationaleAction = { stopSlashScreen() }, rationaleMethod = { req -> processPermissionRationale(req) }, permissionsDeniedMethod = { req -> processPermissionRationale(req) }, permanentDeniedMethod = { req -> processPermissionsPermanentDenied(req) } @@ -210,6 +211,11 @@ internal class InitializationActivity : AppCompatActivity() { } } + private fun stopSlashScreen() { + splashScreenActive = false + setContentView(R.layout.splash) + } + private fun processPermissionRationale(req: QuickPermissionsRequest) { MaterialAlertDialogBuilder(this) .setMessage(getString(R.string.permissions_notification_denied_temp))