diff --git a/apps/multiplatform/android/build.gradle b/apps/multiplatform/android/build.gradle index 6d7620da17..b483f6cf4f 100644 --- a/apps/multiplatform/android/build.gradle +++ b/apps/multiplatform/android/build.gradle @@ -5,12 +5,12 @@ plugins { } android { - compileSdk 32 + compileSdk 33 defaultConfig { applicationId "chat.simplex.app" minSdk 26 - targetSdk 32 + targetSdk 33 // !!! // skip version code after release to F-Droid, as it uses two version codes versionCode 129 diff --git a/apps/multiplatform/android/src/main/AndroidManifest.xml b/apps/multiplatform/android/src/main/AndroidManifest.xml index 6d090e381e..f3d48fe88f 100644 --- a/apps/multiplatform/android/src/main/AndroidManifest.xml +++ b/apps/multiplatform/android/src/main/AndroidManifest.xml @@ -6,6 +6,7 @@ + diff --git a/apps/multiplatform/android/src/main/java/chat/simplex/app/views/onboarding/SetNotificationsMode.kt b/apps/multiplatform/android/src/main/java/chat/simplex/app/views/onboarding/SetNotificationsMode.kt index 8f08fe4cf4..ebb934ec75 100644 --- a/apps/multiplatform/android/src/main/java/chat/simplex/app/views/onboarding/SetNotificationsMode.kt +++ b/apps/multiplatform/android/src/main/java/chat/simplex/app/views/onboarding/SetNotificationsMode.kt @@ -1,5 +1,7 @@ package chat.simplex.app.views.onboarding +import android.Manifest +import android.os.Build import androidx.annotation.StringRes import androidx.compose.foundation.* import androidx.compose.foundation.layout.* @@ -15,11 +17,14 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import chat.simplex.app.R +import chat.simplex.app.SimplexApp import chat.simplex.app.model.ChatModel +import chat.simplex.app.model.NtfManager import chat.simplex.app.ui.theme.* import chat.simplex.app.views.helpers.* import chat.simplex.app.views.usersettings.NotificationsMode import chat.simplex.app.views.usersettings.changeNotificationsMode +import com.google.accompanist.permissions.rememberPermissionState @Composable fun SetNotificationsMode(m: ChatModel) { @@ -47,8 +52,24 @@ fun SetNotificationsMode(m: ChatModel) { } Spacer(Modifier.fillMaxHeight().weight(1f)) } - LaunchedEffect(Unit) { - m.controller.ntfManager.createNtfChannelsMaybeShowAlert() + SetNotificationsModeAdditions() +} + +@Composable +fun SetNotificationsModeAdditions() { + if (Build.VERSION.SDK_INT >= 33) { + val notificationsPermissionState = rememberPermissionState(Manifest.permission.POST_NOTIFICATIONS) + LaunchedEffect(notificationsPermissionState.hasPermission) { + if (notificationsPermissionState.hasPermission) { + SimplexApp.context.chatModel.controller.ntfManager.createNtfChannelsMaybeShowAlert() + } else { + notificationsPermissionState.launchPermissionRequest() + } + } + } else { + LaunchedEffect(Unit) { + SimplexApp.context.chatModel.controller.ntfManager.createNtfChannelsMaybeShowAlert() + } } }