Fix missing permissions on newer Android versions
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.github.gotify.init
|
||||
|
||||
import android.Manifest
|
||||
import android.app.NotificationManager
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
@@ -22,6 +23,7 @@ import com.github.gotify.login.LoginActivity
|
||||
import com.github.gotify.messages.MessagesActivity
|
||||
import com.github.gotify.service.WebSocketService
|
||||
import com.github.gotify.settings.ThemeHelper
|
||||
import com.livinglifetechway.quickpermissions_kotlin.runWithPermissions
|
||||
|
||||
internal class InitializationActivity : AppCompatActivity() {
|
||||
|
||||
@@ -46,7 +48,9 @@ internal class InitializationActivity : AppCompatActivity() {
|
||||
Log.i("Entering ${javaClass.simpleName}")
|
||||
|
||||
if (settings.tokenExists()) {
|
||||
tryAuthenticate()
|
||||
runWithNeededPermissions {
|
||||
tryAuthenticate()
|
||||
}
|
||||
} else {
|
||||
showLogin()
|
||||
}
|
||||
@@ -130,4 +134,23 @@ internal class InitializationActivity : AppCompatActivity() {
|
||||
.version
|
||||
.enqueue(Callback.callInUI(this, callback, errorCallback))
|
||||
}
|
||||
|
||||
private fun runWithNeededPermissions(action: () -> Unit) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
// Android 13 and above
|
||||
runWithPermissions(
|
||||
Manifest.permission.SCHEDULE_EXACT_ALARM,
|
||||
Manifest.permission.POST_NOTIFICATIONS,
|
||||
callback = action
|
||||
)
|
||||
} else {
|
||||
// Android 12 and Android 12L
|
||||
runWithPermissions(Manifest.permission.SCHEDULE_EXACT_ALARM, callback = action)
|
||||
}
|
||||
} else {
|
||||
// Android 11 and below
|
||||
action()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user