mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-05-24 08:45:31 +00:00
android: fix for disabled notifications (#5431)
* android: fix for disabled notifications * change * prevent showing alert multiple times * changes --------- Co-authored-by: Avently <7953703+avently@users.noreply.github.com>
This commit is contained in:
+18
-6
@@ -4,19 +4,31 @@ import android.Manifest
|
||||
import android.os.Build
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import chat.simplex.common.platform.ntfManager
|
||||
import com.google.accompanist.permissions.PermissionStatus
|
||||
import com.google.accompanist.permissions.rememberPermissionState
|
||||
import chat.simplex.common.model.ChatController.appPrefs
|
||||
import chat.simplex.common.platform.*
|
||||
import com.google.accompanist.permissions.*
|
||||
|
||||
@Composable
|
||||
actual fun SetNotificationsModeAdditions() {
|
||||
if (Build.VERSION.SDK_INT >= 33) {
|
||||
val notificationsPermissionState = rememberPermissionState(Manifest.permission.POST_NOTIFICATIONS)
|
||||
LaunchedEffect(notificationsPermissionState.status == PermissionStatus.Granted) {
|
||||
if (notificationsPermissionState.status == PermissionStatus.Granted) {
|
||||
ntfManager.androidCreateNtfChannelsMaybeShowAlert()
|
||||
val canAsk = appPrefs.canAskToEnableNotifications.get()
|
||||
if (notificationsPermissionState.status is PermissionStatus.Denied) {
|
||||
if (notificationsPermissionState.status.shouldShowRationale || !canAsk) {
|
||||
if (canAsk) {
|
||||
appPrefs.canAskToEnableNotifications.set(false)
|
||||
}
|
||||
Log.w(TAG, "Notifications are disabled and nobody will ask to enable them")
|
||||
} else {
|
||||
notificationsPermissionState.launchPermissionRequest()
|
||||
}
|
||||
} else {
|
||||
notificationsPermissionState.launchPermissionRequest()
|
||||
if (!canAsk) {
|
||||
// the user allowed notifications in system alert or manually in settings, allow to ask him next time if needed
|
||||
appPrefs.canAskToEnableNotifications.set(true)
|
||||
}
|
||||
ntfManager.androidCreateNtfChannelsMaybeShowAlert()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user