Make sure notification permission screen is dismissed (#1263)
* Make sure notification permission screen is dismissed
This commit is contained in:
committed by
GitHub
parent
41c8038357
commit
f03cbc1c2e
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user