From 7bd2ccd2a94cd213fb8526ddb5b33659c32caf87 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 7 Nov 2023 10:52:12 +0100 Subject: [PATCH] FlowStepPage: make `onBackClicked` nullable and remove `canGoBack`. --- .../android/features/logout/impl/LogoutView.kt | 1 - .../impl/disable/SecureBackupDisableView.kt | 1 - .../impl/enable/SecureBackupEnableView.kt | 1 - .../impl/enter/SecureBackupEnterRecoveryKeyView.kt | 1 - .../securebackup/impl/setup/SecureBackupSetupView.kt | 3 +-- .../designsystem/atomic/pages/FlowStepPage.kt | 12 +++++------- 6 files changed, 6 insertions(+), 13 deletions(-) diff --git a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutView.kt b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutView.kt index 88441f0e0c..5976ed47a0 100644 --- a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutView.kt +++ b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutView.kt @@ -58,7 +58,6 @@ fun LogoutView( val eventSink = state.eventSink FlowStepPage( - canGoBack = true, onBackClicked = onBackClicked, title = title(state), subTitle = subtitle(state), diff --git a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisableView.kt b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisableView.kt index 75768faae3..cf3e6c48c5 100644 --- a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisableView.kt +++ b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisableView.kt @@ -56,7 +56,6 @@ fun SecureBackupDisableView( } FlowStepPage( modifier = modifier, - canGoBack = true, onBackClicked = onBackClicked, title = stringResource(id = R.string.screen_key_backup_disable_title), subTitle = stringResource(id = R.string.screen_key_backup_disable_description), diff --git a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/enable/SecureBackupEnableView.kt b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/enable/SecureBackupEnableView.kt index c6ce87babe..e90832c5be 100644 --- a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/enable/SecureBackupEnableView.kt +++ b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/enable/SecureBackupEnableView.kt @@ -46,7 +46,6 @@ fun SecureBackupEnableView( } FlowStepPage( modifier = modifier, - canGoBack = true, onBackClicked = onBackClicked, title = stringResource(id = R.string.screen_chat_backup_key_backup_action_enable), iconResourceId = CommonDrawables.ic_key, diff --git a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/enter/SecureBackupEnterRecoveryKeyView.kt b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/enter/SecureBackupEnterRecoveryKeyView.kt index 97a8fe4aaa..b5d7c9c349 100644 --- a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/enter/SecureBackupEnterRecoveryKeyView.kt +++ b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/enter/SecureBackupEnterRecoveryKeyView.kt @@ -50,7 +50,6 @@ fun SecureBackupEnterRecoveryKeyView( FlowStepPage( modifier = modifier, - canGoBack = true, onBackClicked = onBackClicked, iconResourceId = CommonDrawables.ic_key, title = stringResource(id = R.string.screen_recovery_key_confirm_title), diff --git a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/setup/SecureBackupSetupView.kt b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/setup/SecureBackupSetupView.kt index 67b3ab92b1..83b1ddba9c 100644 --- a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/setup/SecureBackupSetupView.kt +++ b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/setup/SecureBackupSetupView.kt @@ -48,8 +48,7 @@ fun SecureBackupSetupView( ) { FlowStepPage( modifier = modifier, - canGoBack = state.canGoBack(), - onBackClicked = onBackClicked, + onBackClicked = onBackClicked.takeIf { state.canGoBack() }, title = title(state), subTitle = subtitle(state), iconResourceId = CommonDrawables.ic_key, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/pages/FlowStepPage.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/pages/FlowStepPage.kt index ed1fbc2c61..804e08ab2b 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/pages/FlowStepPage.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/pages/FlowStepPage.kt @@ -40,7 +40,7 @@ import io.element.android.libraries.theme.ElementTheme /** * A Page with: - * - a top bar as TobAppBar with optional back button + * - a top bar as TobAppBar with optional back button (displayed if [onBackClicked] is not null) * - a header, as IconTitleSubtitleMolecule * - a content. * - a footer, as ButtonColumnMolecule @@ -48,24 +48,23 @@ import io.element.android.libraries.theme.ElementTheme @OptIn(ExperimentalMaterial3Api::class) @Composable fun FlowStepPage( - canGoBack: Boolean, - onBackClicked: () -> Unit, iconResourceId: Int?, title: String, modifier: Modifier = Modifier, + onBackClicked: (() -> Unit)? = null, subTitle: String? = null, content: @Composable () -> Unit = {}, buttons: @Composable ColumnScope.() -> Unit = {}, ) { - BackHandler(enabled = canGoBack) { - onBackClicked() + BackHandler(enabled = onBackClicked != null) { + onBackClicked?.invoke() } HeaderFooterPage( modifier = modifier, topBar = { TopAppBar( navigationIcon = { - if (canGoBack) { + if (onBackClicked != null) { BackButton(onClick = onBackClicked) } }, @@ -94,7 +93,6 @@ fun FlowStepPage( @Composable internal fun FlowStepPagePreview() = ElementPreview { FlowStepPage( - canGoBack = true, onBackClicked = {}, title = "Title", subTitle = "Subtitle",