diff --git a/app/build.gradle b/app/build.gradle index a18c1042..8dbe4917 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.1' 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 a8e83ad9..bba4077c 100644 --- a/app/src/main/kotlin/com/github/gotify/init/InitializationActivity.kt +++ b/app/src/main/kotlin/com/github/gotify/init/InitializationActivity.kt @@ -5,7 +5,6 @@ import android.app.AlarmManager import android.app.NotificationManager import android.content.Context import android.content.Intent -import android.content.pm.PackageManager import android.net.Uri import android.os.Build import android.os.Bundle @@ -195,15 +194,10 @@ internal class InitializationActivity : AppCompatActivity() { private fun runWithPostNotificationsPermission(action: () -> Unit) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { // Android 13 and above - if (checkSelfPermission(Manifest.permission.POST_NOTIFICATIONS) - != PackageManager.PERMISSION_GRANTED - ) { - splashScreenActive = false - setContentView(R.layout.splash) - } val quickPermissionsOption = QuickPermissionsOptions( handleRationale = true, handlePermanentlyDenied = true, + preRationaleAction = { stopSlashScreen() }, rationaleMethod = { req -> processPermissionRationale(req) }, permissionsDeniedMethod = { req -> processPermissionRationale(req) }, permanentDeniedMethod = { req -> processPermissionsPermanentDenied(req) } @@ -219,6 +213,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))