From 2bdd48c16d9c370cb6c36204691db45eb1909918 Mon Sep 17 00:00:00 2001 From: Hafiz Date: Thu, 15 Dec 2022 01:22:23 -0500 Subject: [PATCH] Add 13 check for notif. permissions / revert change & clean --- .../habitica/ui/activities/MainActivity.kt | 18 +++++++++++++----- .../preferences/PreferencesFragment.kt | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt index d3c979b16..9f58e6460 100755 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt @@ -15,6 +15,7 @@ import android.view.View import android.view.ViewGroup import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.viewModels +import androidx.annotation.RequiresApi import androidx.appcompat.app.ActionBarDrawerToggle import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue @@ -358,11 +359,8 @@ open class MainActivity : BaseActivity(), SnackbarActivity { ) } - viewModel.requestNotificationPermission.observe(this) { requestNotificationPermission -> - if (requestNotificationPermission) { - notificationPermissionLauncher.launch(android.Manifest.permission.POST_NOTIFICATIONS) - viewModel.requestNotificationPermission.value = false - } + if (Build.VERSION.SDK_INT >= 33) { + observeNotificationPermission() } if (launchScreen == "/party") { @@ -409,6 +407,16 @@ open class MainActivity : BaseActivity(), SnackbarActivity { } } + @RequiresApi(33) + fun observeNotificationPermission() { + viewModel.requestNotificationPermission.observe(this) { requestNotificationPermission -> + if (requestNotificationPermission) { + notificationPermissionLauncher.launch(android.Manifest.permission.POST_NOTIFICATIONS) + viewModel.requestNotificationPermission.value = false + } + } + } + override fun onPause() { updateWidgets() super.onPause() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt index 110882abb..7633dda64 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt @@ -219,7 +219,7 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare userRepository.updateUser("preferences.pushNotifications.unsubscribeFromAll", !usePushNotifications) } if (usePushNotifications) { - if (!pushNotificationManager.notificationPermissionEnabled()) { + if (!pushNotificationManager.notificationPermissionEnabled() && Build.VERSION.SDK_INT >= 33) { notificationPermissionLauncher.launch(android.Manifest.permission.POST_NOTIFICATIONS) } else { pushNotificationManager.addPushDeviceUsingStoredToken()