mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
Make sure notification permission screen is dismissed (#1263)
* Make sure notification permission screen is dismissed
This commit is contained in:
committed by
GitHub
parent
9f4d32a4a9
commit
33457e9c58
+12
-4
@@ -20,6 +20,7 @@ import android.Manifest
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
import dagger.assisted.AssistedFactory
|
import dagger.assisted.AssistedFactory
|
||||||
import dagger.assisted.AssistedInject
|
import dagger.assisted.AssistedInject
|
||||||
@@ -56,15 +57,15 @@ class NotificationsOptInPresenter @AssistedInject constructor(
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
override fun present(): NotificationsOptInState {
|
override fun present(): NotificationsOptInState {
|
||||||
val notificationPremissionsState = postNotificationPermissionsPresenter.present()
|
val notificationsPermissionsState = postNotificationPermissionsPresenter.present()
|
||||||
|
|
||||||
fun handleEvents(event: NotificationsOptInEvents) {
|
fun handleEvents(event: NotificationsOptInEvents) {
|
||||||
when (event) {
|
when (event) {
|
||||||
NotificationsOptInEvents.ContinueClicked -> {
|
NotificationsOptInEvents.ContinueClicked -> {
|
||||||
if (notificationPremissionsState.permissionGranted) {
|
if (notificationsPermissionsState.permissionGranted) {
|
||||||
callback.onNotificationsOptInFinished()
|
callback.onNotificationsOptInFinished()
|
||||||
} else {
|
} else {
|
||||||
notificationPremissionsState.eventSink(PermissionsEvents.OpenSystemDialog)
|
notificationsPermissionsState.eventSink(PermissionsEvents.OpenSystemDialog)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
NotificationsOptInEvents.NotNowClicked -> {
|
NotificationsOptInEvents.NotNowClicked -> {
|
||||||
@@ -76,8 +77,15 @@ class NotificationsOptInPresenter @AssistedInject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LaunchedEffect(notificationsPermissionsState) {
|
||||||
|
if (notificationsPermissionsState.permissionGranted
|
||||||
|
|| notificationsPermissionsState.permissionAlreadyDenied) {
|
||||||
|
callback.onNotificationsOptInFinished()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return NotificationsOptInState(
|
return NotificationsOptInState(
|
||||||
notificationsPermissionState = notificationPremissionsState,
|
notificationsPermissionState = notificationsPermissionsState,
|
||||||
eventSink = ::handleEvents
|
eventSink = ::handleEvents
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
-7
@@ -32,7 +32,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape
|
|||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.filled.Notifications
|
import androidx.compose.material.icons.filled.Notifications
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
@@ -64,12 +63,6 @@ fun NotificationsOptInView(
|
|||||||
) {
|
) {
|
||||||
BackHandler(onBack = onBack)
|
BackHandler(onBack = onBack)
|
||||||
|
|
||||||
if (state.notificationsPermissionState.permissionAlreadyDenied) {
|
|
||||||
LaunchedEffect(Unit) {
|
|
||||||
state.eventSink(NotificationsOptInEvents.NotNowClicked)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
HeaderFooterPage(
|
HeaderFooterPage(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.systemBarsPadding()
|
.systemBarsPadding()
|
||||||
|
|||||||
Reference in New Issue
Block a user