Browse Source

Make sure notification permission screen is dismissed (#1263)

* Make sure notification permission screen is dismissed
pull/1269/head
Jorge Martin Espinosa 1 year ago committed by GitHub
parent
commit
33457e9c58
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/notifications/NotificationsOptInPresenter.kt
  2. 7
      features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/notifications/NotificationsOptInView.kt

16
features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/notifications/NotificationsOptInPresenter.kt

@ -20,6 +20,7 @@ import android.Manifest @@ -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( @@ -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( @@ -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
)
}

7
features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/notifications/NotificationsOptInView.kt

@ -32,7 +32,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape @@ -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( @@ -64,12 +63,6 @@ fun NotificationsOptInView(
) {
BackHandler(onBack = onBack)
if (state.notificationsPermissionState.permissionAlreadyDenied) {
LaunchedEffect(Unit) {
state.eventSink(NotificationsOptInEvents.NotNowClicked)
}
}
HeaderFooterPage(
modifier = modifier
.systemBarsPadding()

Loading…
Cancel
Save