mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-23 18:30:20 +01:00
Fix incorrect showing of backups enabled bottom sheet on flow exit.
This commit is contained in:
@@ -146,13 +146,14 @@ class MessageBackupsFlowFragment : ComposeFragment(), InAppPaymentCheckoutDelega
|
||||
}
|
||||
}
|
||||
|
||||
if (state.stage == MessageBackupsStage.CHECKOUT_SHEET) {
|
||||
AppDependencies.billingApi.launchBillingFlow(requireActivity())
|
||||
}
|
||||
|
||||
if (state.stage == MessageBackupsStage.COMPLETED) {
|
||||
requireActivity().setResult(Activity.RESULT_OK, MessageBackupsCheckoutActivity.createResultData())
|
||||
requireActivity().finishAfterTransition()
|
||||
when (state.stage) {
|
||||
MessageBackupsStage.CANCEL -> requireActivity().finishAfterTransition()
|
||||
MessageBackupsStage.CHECKOUT_SHEET -> AppDependencies.billingApi.launchBillingFlow(requireActivity())
|
||||
MessageBackupsStage.COMPLETED -> {
|
||||
requireActivity().setResult(Activity.RESULT_OK, MessageBackupsCheckoutActivity.createResultData())
|
||||
requireActivity().finishAfterTransition()
|
||||
}
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -161,6 +161,7 @@ class MessageBackupsFlowViewModel(
|
||||
fun goToNextStage() {
|
||||
internalStateFlow.update {
|
||||
when (it.stage) {
|
||||
MessageBackupsStage.CANCEL -> error("Unsupported state transition from terminal state CANCEL")
|
||||
MessageBackupsStage.EDUCATION -> it.copy(stage = MessageBackupsStage.BACKUP_KEY_EDUCATION)
|
||||
MessageBackupsStage.BACKUP_KEY_EDUCATION -> it.copy(stage = MessageBackupsStage.BACKUP_KEY_RECORD)
|
||||
MessageBackupsStage.BACKUP_KEY_RECORD -> it.copy(stage = MessageBackupsStage.TYPE_SELECTION)
|
||||
@@ -178,10 +179,11 @@ class MessageBackupsFlowViewModel(
|
||||
fun goToPreviousStage() {
|
||||
internalStateFlow.update {
|
||||
if (it.stage == it.startScreen) {
|
||||
it.copy(stage = MessageBackupsStage.COMPLETED)
|
||||
it.copy(stage = MessageBackupsStage.CANCEL)
|
||||
} else {
|
||||
val previousScreen = when (it.stage) {
|
||||
MessageBackupsStage.EDUCATION -> MessageBackupsStage.COMPLETED
|
||||
MessageBackupsStage.CANCEL -> error("Unsupported state transition from terminal state CANCEL")
|
||||
MessageBackupsStage.EDUCATION -> MessageBackupsStage.CANCEL
|
||||
MessageBackupsStage.BACKUP_KEY_EDUCATION -> MessageBackupsStage.EDUCATION
|
||||
MessageBackupsStage.BACKUP_KEY_RECORD -> MessageBackupsStage.BACKUP_KEY_EDUCATION
|
||||
MessageBackupsStage.TYPE_SELECTION -> MessageBackupsStage.BACKUP_KEY_RECORD
|
||||
|
||||
@@ -11,6 +11,7 @@ package org.thoughtcrime.securesms.backup.v2.ui.subscription
|
||||
enum class MessageBackupsStage(
|
||||
val route: Route
|
||||
) {
|
||||
CANCEL(route = Route.CANCEL),
|
||||
EDUCATION(route = Route.EDUCATION),
|
||||
BACKUP_KEY_EDUCATION(route = Route.BACKUP_KEY_EDUCATION),
|
||||
BACKUP_KEY_RECORD(route = Route.BACKUP_KEY_RECORD),
|
||||
@@ -26,6 +27,7 @@ enum class MessageBackupsStage(
|
||||
* Compose navigation route to display while in a given stage.
|
||||
*/
|
||||
enum class Route {
|
||||
CANCEL,
|
||||
EDUCATION,
|
||||
BACKUP_KEY_EDUCATION,
|
||||
BACKUP_KEY_RECORD,
|
||||
|
||||
Reference in New Issue
Block a user