summaryrefslogtreecommitdiffhomepage
path: root/android/lib/common/src
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2024-01-12 10:33:54 +0100
committerAlbin <albin@mullvad.net>2024-01-12 10:33:54 +0100
commit3b33f3f1bd5a137ed8b898c62e78a3745a7a9897 (patch)
tree325f82725bc5acecdb7c2439308ffa2f5f492fd4 /android/lib/common/src
parent2f05885b58dadfe89bf9b683f1be65bb9f704f01 (diff)
parent0dd07d9ecb2cfeddfe9247b723f742cd3494c1ed (diff)
downloadmullvadvpn-3b33f3f1bd5a137ed8b898c62e78a3745a7a9897.tar.xz
mullvadvpn-3b33f3f1bd5a137ed8b898c62e78a3745a7a9897.zip
Merge branch 'notification-permission-api-check-droid-386'
Diffstat (limited to 'android/lib/common/src')
-rw-r--r--android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/SdkUtils.kt15
1 files changed, 12 insertions, 3 deletions
diff --git a/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/SdkUtils.kt b/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/SdkUtils.kt
index fe9564c45d..92f97146f8 100644
--- a/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/SdkUtils.kt
+++ b/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/SdkUtils.kt
@@ -8,6 +8,8 @@ import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.os.Build
import android.service.quicksettings.Tile
+import androidx.activity.result.ActivityResultLauncher
+import androidx.annotation.ChecksSdkIntAtLeast
object SdkUtils {
fun getSupportedPendingIntentFlags(): Int {
@@ -22,12 +24,19 @@ object SdkUtils {
}
}
- fun Context.isNotificationPermissionGranted(): Boolean {
- return (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) ||
- checkSelfPermission(Manifest.permission.POST_NOTIFICATIONS) ==
+ @ChecksSdkIntAtLeast(api = Build.VERSION_CODES.TIRAMISU)
+ fun Context.isNotificationPermissionMissing(): Boolean {
+ return (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) &&
+ checkSelfPermission(Manifest.permission.POST_NOTIFICATIONS) !=
PackageManager.PERMISSION_GRANTED
}
+ fun Context.requestNotificationPermissionIfMissing(launcher: ActivityResultLauncher<String>) {
+ if (isNotificationPermissionMissing()) {
+ launcher.launch(Manifest.permission.POST_NOTIFICATIONS)
+ }
+ }
+
fun Tile.setSubtitleIfSupported(subtitleText: CharSequence) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
this.subtitle = subtitleText