From 78913fc3f05a0be3ec62646ed74208477f054d10 Mon Sep 17 00:00:00 2001 From: malik1004x Date: Wed, 7 Jan 2026 23:14:42 +0100 Subject: [PATCH] change sync status display mode on long-press (#2780) * change sync status display mode on long-press * move status toggle function to viewmodel action --- .../screens/dashboard/widgets/sync_indicator.dart | 1 + lib/view_model/dashboard/dashboard_view_model.dart | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/src/screens/dashboard/widgets/sync_indicator.dart b/lib/src/screens/dashboard/widgets/sync_indicator.dart index ed2c65981..6a4a370f2 100644 --- a/lib/src/screens/dashboard/widgets/sync_indicator.dart +++ b/lib/src/screens/dashboard/widgets/sync_indicator.dart @@ -33,6 +33,7 @@ class SyncIndicator extends StatelessWidget { borderRadius: BorderRadius.all(Radius.circular(15)), child: GestureDetector( onTap: onTap, + onLongPress: dashboardViewModel.toggleSwitchStatusDisplayMode, child: Container( height: 30, width: syncIndicatorWidth, diff --git a/lib/view_model/dashboard/dashboard_view_model.dart b/lib/view_model/dashboard/dashboard_view_model.dart index 50e8d62b7..793048a6b 100644 --- a/lib/view_model/dashboard/dashboard_view_model.dart +++ b/lib/view_model/dashboard/dashboard_view_model.dart @@ -10,6 +10,7 @@ import 'package:cake_wallet/entities/balance_display_mode.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cake_wallet/entities/service_status.dart'; +import 'package:cake_wallet/entities/sync_status_display_mode.dart'; import 'package:cake_wallet/exchange/exchange_provider_description.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/monero/monero.dart'; @@ -610,6 +611,17 @@ abstract class DashboardViewModelBase with Store { return resp; } + @action + void toggleSwitchStatusDisplayMode() { + if (status is SyncingSyncStatus && !((status as SyncingSyncStatus).shouldShowBlocksRemaining())) { + if (settingsStore.syncStatusDisplayMode == SyncStatusDisplayMode.eta) { + settingsStore.syncStatusDisplayMode = SyncStatusDisplayMode.blocksRemaining; + } else { + settingsStore.syncStatusDisplayMode = SyncStatusDisplayMode.eta; + } + } + } + @observable late bool backgroundSyncNotificationsEnabled = sharedPreferences.getBool(PreferencesKey.backgroundSyncNotificationsEnabled) ?? false;