Make sure notification permission screen is dismissed (#1263)
* Make sure notification permission screen is dismissed
This commit is contained in:
parent
9f4d32a4a9
commit
33457e9c58
2 changed files with 12 additions and 11 deletions
|
|
@ -20,6 +20,7 @@ import android.Manifest
|
|||
import android.os.Build
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
|
|
@ -56,15 +57,15 @@ class NotificationsOptInPresenter @AssistedInject constructor(
|
|||
|
||||
@Composable
|
||||
override fun present(): NotificationsOptInState {
|
||||
val notificationPremissionsState = postNotificationPermissionsPresenter.present()
|
||||
val notificationsPermissionsState = postNotificationPermissionsPresenter.present()
|
||||
|
||||
fun handleEvents(event: NotificationsOptInEvents) {
|
||||
when (event) {
|
||||
NotificationsOptInEvents.ContinueClicked -> {
|
||||
if (notificationPremissionsState.permissionGranted) {
|
||||
if (notificationsPermissionsState.permissionGranted) {
|
||||
callback.onNotificationsOptInFinished()
|
||||
} else {
|
||||
notificationPremissionsState.eventSink(PermissionsEvents.OpenSystemDialog)
|
||||
notificationsPermissionsState.eventSink(PermissionsEvents.OpenSystemDialog)
|
||||
}
|
||||
}
|
||||
NotificationsOptInEvents.NotNowClicked -> {
|
||||
|
|
@ -76,8 +77,15 @@ class NotificationsOptInPresenter @AssistedInject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
LaunchedEffect(notificationsPermissionsState) {
|
||||
if (notificationsPermissionsState.permissionGranted
|
||||
|| notificationsPermissionsState.permissionAlreadyDenied) {
|
||||
callback.onNotificationsOptInFinished()
|
||||
}
|
||||
}
|
||||
|
||||
return NotificationsOptInState(
|
||||
notificationsPermissionState = notificationPremissionsState,
|
||||
notificationsPermissionState = notificationsPermissionsState,
|
||||
eventSink = ::handleEvents
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape
|
|||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Notifications
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
|
|
@ -64,12 +63,6 @@ fun NotificationsOptInView(
|
|||
) {
|
||||
BackHandler(onBack = onBack)
|
||||
|
||||
if (state.notificationsPermissionState.permissionAlreadyDenied) {
|
||||
LaunchedEffect(Unit) {
|
||||
state.eventSink(NotificationsOptInEvents.NotNowClicked)
|
||||
}
|
||||
}
|
||||
|
||||
HeaderFooterPage(
|
||||
modifier = modifier
|
||||
.systemBarsPadding()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue