Make sure notification permission screen is dismissed (#1263)
* Make sure notification permission screen is dismissed
This commit is contained in:
parent
41c8038357
commit
f03cbc1c2e
2 changed files with 12 additions and 11 deletions
|
|
@ -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
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue