From 87bb5506289452b664c4c8f4b0f797cf0df5cad0 Mon Sep 17 00:00:00 2001 From: sim Date: Fri, 19 Sep 2025 17:13:38 +0200 Subject: [PATCH] Show migrations menus and dialog only if there are other distributors --- .../sunup/activities/ui/AppBarUi.kt | 54 ++++++++++--------- .../sunup/activities/ui/AppBarUiState.kt | 10 +++- 2 files changed, 38 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/org/unifiedpush/distributor/sunup/activities/ui/AppBarUi.kt b/app/src/main/java/org/unifiedpush/distributor/sunup/activities/ui/AppBarUi.kt index e76f68c..56a213c 100644 --- a/app/src/main/java/org/unifiedpush/distributor/sunup/activities/ui/AppBarUi.kt +++ b/app/src/main/java/org/unifiedpush/distributor/sunup/activities/ui/AppBarUi.kt @@ -55,6 +55,7 @@ fun AppBarUi(appBarViewModel: AppBarViewModel) { Dropdown( state.menuExpanded, state.showToasts, + state.showMigrations, onRestart = { appBarViewModel.publishAction(AppAction(AppAction.Action.RestartService)) appBarViewModel.toggleMenu() @@ -85,13 +86,16 @@ fun AppBarUi(appBarViewModel: AppBarViewModel) { onConfirmation = { appBarViewModel.newPushServer(it) } ) } - DistribMigrationUi(appBarViewModel.migrationViewModel) + if (state.showMigrations) { + DistribMigrationUi(appBarViewModel.migrationViewModel) + } } @Composable fun Dropdown( expanded: Boolean, showToasts: Boolean, + showMigrations: Boolean, onRestart: () -> Unit, onDismiss: () -> Unit, onChangeServer: () -> Unit, @@ -133,28 +137,30 @@ fun Dropdown( } } ) - DropdownMenuItem( - onClick = { - onSetFallbackService() - onDismiss() - }, - text = { - Text( - stringResource(LibR.string.dialog_fallback_title) - ) - } - ) - DropdownMenuItem( - onClick = { - onMigrateToDistrib() - onDismiss() - }, - text = { - Text( - color = MaterialTheme.colorScheme.error, - text = stringResource(LibR.string.dialog_migration_title) - ) - } - ) + if (showMigrations) { + DropdownMenuItem( + onClick = { + onSetFallbackService() + onDismiss() + }, + text = { + Text( + stringResource(LibR.string.dialog_fallback_title) + ) + } + ) + DropdownMenuItem( + onClick = { + onMigrateToDistrib() + onDismiss() + }, + text = { + Text( + color = MaterialTheme.colorScheme.error, + text = stringResource(LibR.string.dialog_migration_title) + ) + } + ) + } } } diff --git a/app/src/main/java/org/unifiedpush/distributor/sunup/activities/ui/AppBarUiState.kt b/app/src/main/java/org/unifiedpush/distributor/sunup/activities/ui/AppBarUiState.kt index 50b8a52..c413ec4 100644 --- a/app/src/main/java/org/unifiedpush/distributor/sunup/activities/ui/AppBarUiState.kt +++ b/app/src/main/java/org/unifiedpush/distributor/sunup/activities/ui/AppBarUiState.kt @@ -2,19 +2,25 @@ package org.unifiedpush.distributor.sunup.activities.ui import android.content.Context import org.unifiedpush.distributor.sunup.AppStore +import org.unifiedpush.distributor.utils.listOtherDistributors data class AppBarUiState( val currentApiUrl: String, val showToasts: Boolean, val menuExpanded: Boolean = false, - val showChangeServerDialog: Boolean = false + val showChangeServerDialog: Boolean = false, + /** + * Used for the fallback service dialog and migration dialog + */ + val showMigrations: Boolean = false ) { companion object { fun from(context: Context): AppBarUiState { val store = AppStore(context) return AppBarUiState( store.apiUrl, - store.showToasts + store.showToasts, + showMigrations = context.listOtherDistributors().any() ) } }