|
|
|
@ -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 |
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|