Fix missing permissions on newer Android versions
This commit is contained in:
@@ -68,6 +68,7 @@ dependencies {
|
|||||||
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
|
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
|
||||||
implementation 'androidx.preference:preference:1.2.0'
|
implementation 'androidx.preference:preference:1.2.0'
|
||||||
|
|
||||||
|
implementation 'com.github.quickpermissions:quickpermissions-kotlin:0.4.0'
|
||||||
implementation 'com.hypertrack:hyperlog:0.0.10'
|
implementation 'com.hypertrack:hyperlog:0.0.10'
|
||||||
implementation 'com.squareup.picasso:picasso:2.71828'
|
implementation 'com.squareup.picasso:picasso:2.71828'
|
||||||
implementation 'io.noties.markwon:core:4.6.2'
|
implementation 'io.noties.markwon:core:4.6.2'
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||||
|
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="false"
|
android:allowBackup="false"
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.github.gotify.init
|
package com.github.gotify.init
|
||||||
|
|
||||||
|
import android.Manifest
|
||||||
import android.app.NotificationManager
|
import android.app.NotificationManager
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
@@ -22,6 +23,7 @@ import com.github.gotify.login.LoginActivity
|
|||||||
import com.github.gotify.messages.MessagesActivity
|
import com.github.gotify.messages.MessagesActivity
|
||||||
import com.github.gotify.service.WebSocketService
|
import com.github.gotify.service.WebSocketService
|
||||||
import com.github.gotify.settings.ThemeHelper
|
import com.github.gotify.settings.ThemeHelper
|
||||||
|
import com.livinglifetechway.quickpermissions_kotlin.runWithPermissions
|
||||||
|
|
||||||
internal class InitializationActivity : AppCompatActivity() {
|
internal class InitializationActivity : AppCompatActivity() {
|
||||||
|
|
||||||
@@ -46,7 +48,9 @@ internal class InitializationActivity : AppCompatActivity() {
|
|||||||
Log.i("Entering ${javaClass.simpleName}")
|
Log.i("Entering ${javaClass.simpleName}")
|
||||||
|
|
||||||
if (settings.tokenExists()) {
|
if (settings.tokenExists()) {
|
||||||
tryAuthenticate()
|
runWithNeededPermissions {
|
||||||
|
tryAuthenticate()
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
showLogin()
|
showLogin()
|
||||||
}
|
}
|
||||||
@@ -130,4 +134,23 @@ internal class InitializationActivity : AppCompatActivity() {
|
|||||||
.version
|
.version
|
||||||
.enqueue(Callback.callInUI(this, callback, errorCallback))
|
.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()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ allprojects {
|
|||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
jcenter()
|
jcenter()
|
||||||
|
maven { url "https://jitpack.io/" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user