diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsDownloadsLimitScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsDownloadsLimitScreen.kt index 969809865..3d53e61c1 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsDownloadsLimitScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsDownloadsLimitScreen.kt @@ -38,9 +38,10 @@ import com.infomaniak.swisstransfer.ui.utils.PreviewMobile import com.infomaniak.swisstransfer.ui.utils.PreviewTablet @Composable -fun SettingsDownloadsLimitScreen(navigateBack: () -> Unit) { +fun SettingsDownloadsLimitScreen(navigateBack: (() -> Unit)?) { Column(modifier = Modifier.verticalScroll(rememberScrollState())) { - SwissTransferTobAppBar(R.string.settingsOptionDownloadLimit, navigationMenu = TopAppBarButton.backButton(navigateBack)) + val canDisplayBackButton = navigateBack?.let { TopAppBarButton.backButton(navigateBack) } + SwissTransferTobAppBar(R.string.settingsOptionDownloadLimit, navigationMenu = canDisplayBackButton) SettingTitle(titleRes = R.string.settingsDownloadsLimitTitle) @@ -66,7 +67,7 @@ enum class DownloadsLimit( private fun SettingsThemeScreenPreview() { SwissTransferTheme { Surface { - SettingsDownloadsLimitScreen{} + SettingsDownloadsLimitScreen {} } } } diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsDurationValidityScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsDurationValidityScreen.kt index 8bfd3fdf2..1c1a3b150 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsDurationValidityScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsDurationValidityScreen.kt @@ -39,9 +39,10 @@ import com.infomaniak.swisstransfer.ui.utils.PreviewMobile import com.infomaniak.swisstransfer.ui.utils.PreviewTablet @Composable -fun SettingsValidityPeriodScreen(navigateBack: () -> Unit) { +fun SettingsValidityPeriodScreen(navigateBack: (() -> Unit)?) { Column(modifier = Modifier.verticalScroll(rememberScrollState())) { - SwissTransferTobAppBar(R.string.settingsOptionValidityPeriod, navigationMenu = TopAppBarButton.backButton(navigateBack)) + val canDisplayBackButton = navigateBack?.let { TopAppBarButton.backButton(navigateBack) } + SwissTransferTobAppBar(R.string.settingsOptionValidityPeriod, navigationMenu = canDisplayBackButton) SettingTitle(titleRes = R.string.settingsValidityPeriodTitle) @@ -67,7 +68,7 @@ enum class ValidityPeriod( private fun SettingsThemeScreenPreview() { SwissTransferTheme { Surface { - SettingsValidityPeriodScreen{} + SettingsValidityPeriodScreen {} } } } diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsEmailLanguageScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsEmailLanguageScreen.kt index fedc945b0..d2b078f70 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsEmailLanguageScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsEmailLanguageScreen.kt @@ -44,9 +44,10 @@ import com.infomaniak.swisstransfer.ui.utils.PreviewMobile import com.infomaniak.swisstransfer.ui.utils.PreviewTablet @Composable -fun SettingsEmailLanguageScreen(navigateBack: () -> Unit) { +fun SettingsEmailLanguageScreen(navigateBack: (() -> Unit)?) { Column(modifier = Modifier.verticalScroll(rememberScrollState())) { - SwissTransferTobAppBar(R.string.settingsOptionEmailLanguage, navigationMenu = TopAppBarButton.backButton(navigateBack)) + val canDisplayBackButton = navigateBack?.let { TopAppBarButton.backButton(navigateBack) } + SwissTransferTobAppBar(R.string.settingsOptionEmailLanguage, navigationMenu = canDisplayBackButton) SettingTitle(titleRes = R.string.settingsEmailLanguageTitle) @@ -73,7 +74,7 @@ enum class EmailLanguage( private fun SettingsThemeScreenPreview() { SwissTransferTheme { Surface { - SettingsEmailLanguageScreen{} + SettingsEmailLanguageScreen {} } } } diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt index 04e8dda81..677c086d2 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt @@ -99,13 +99,8 @@ fun SettingsScreenWrapper( val destination = currentDestination?.content ?: lastSelectedScreen currentDestination?.content?.let { lastSelectedScreen = it } - val navigateBack: () -> Unit = { - if (isBarNavigation) { - navigateBack() - } else { - navController?.popBackStack() - } - } + val navigateBackCallback: () -> Unit = { navigateBack() } + val navigateBack: (() -> Unit)? = if (canNavigateBack()) navigateBackCallback else null when (destination) { THEME -> SettingsThemeScreen(navigateBack) @@ -231,7 +226,11 @@ private fun SettingsScreen(onItemClick: (SettingsOptionScreens) -> Unit, getSele SettingDivider() SettingTitle(R.string.settingsCategoryAbout) - SettingItem(R.string.settingsOptionDiscoverInfomaniak, { selectedSetting == DISCOVER_INFOMANIAK }, endIcon = OPEN_OUTSIDE) { + SettingItem( + R.string.settingsOptionDiscoverInfomaniak, + { selectedSetting == DISCOVER_INFOMANIAK }, + endIcon = OPEN_OUTSIDE + ) { onItemClick(DISCOVER_INFOMANIAK) } SettingItem(R.string.settingsOptionShareIdeas, { selectedSetting == SHARE_IDEAS }, endIcon = OPEN_OUTSIDE) { diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsThemeScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsThemeScreen.kt index cb82b7734..9b7a7139e 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsThemeScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsThemeScreen.kt @@ -45,9 +45,10 @@ import com.infomaniak.swisstransfer.ui.utils.PreviewMobile import com.infomaniak.swisstransfer.ui.utils.PreviewTablet @Composable -fun SettingsThemeScreen(navigateBack: () -> Unit) { +fun SettingsThemeScreen(navigateBack: (() -> Unit)?) { Column(modifier = Modifier.verticalScroll(rememberScrollState())) { - SwissTransferTobAppBar(R.string.settingsOptionTheme, navigationMenu = TopAppBarButton.backButton(navigateBack)) + val canDisplayBackButton = navigateBack?.let { TopAppBarButton.backButton(navigateBack) } + SwissTransferTobAppBar(R.string.settingsOptionTheme, navigationMenu = canDisplayBackButton) SettingTitle(titleRes = R.string.settingsThemeTitle)