change sync status display mode on long-press (#2780)

* change sync status display mode on long-press * move status toggle function to viewmodel action

malik1004x committed Jan 7, 2026 at 23:14 UTC 78913fc3f05a0be3ec62646ed74208477f054d10
2 files changed +13
lib/src/screens/dashboard/widgets/sync_indicator.dart
+1
@@ -33,6 +33,7 @@ class SyncIndicator extends StatelessWidget {
33 borderRadius: BorderRadius.all(Radius.circular(15)),
34 child: GestureDetector(
35 onTap: onTap,
36 + onLongPress: dashboardViewModel.toggleSwitchStatusDisplayMode,
37 child: Container(
38 height: 30,
39 width: syncIndicatorWidth,
lib/view_model/dashboard/dashboard_view_model.dart
+12
@@ -10,6 +10,7 @@ import 'package:cake_wallet/entities/balance_display_mode.dart';
10 import 'package:cake_wallet/entities/exchange_api_mode.dart';
11 import 'package:cake_wallet/entities/preferences_key.dart';
12 import 'package:cake_wallet/entities/service_status.dart';
13 +import 'package:cake_wallet/entities/sync_status_display_mode.dart';
14 import 'package:cake_wallet/exchange/exchange_provider_description.dart';
15 import 'package:cake_wallet/generated/i18n.dart';
16 import 'package:cake_wallet/monero/monero.dart';
@@ -610,6 +611,17 @@ abstract class DashboardViewModelBase with Store {
611 return resp;
612 }
613
614 + @action
615 + void toggleSwitchStatusDisplayMode() {
616 + if (status is SyncingSyncStatus && !((status as SyncingSyncStatus).shouldShowBlocksRemaining())) {
617 + if (settingsStore.syncStatusDisplayMode == SyncStatusDisplayMode.eta) {
618 + settingsStore.syncStatusDisplayMode = SyncStatusDisplayMode.blocksRemaining;
619 + } else {
620 + settingsStore.syncStatusDisplayMode = SyncStatusDisplayMode.eta;
621 + }
622 + }
623 + }
624 +
625 @observable
626 late bool backgroundSyncNotificationsEnabled =
627 sharedPreferences.getBool(PreferencesKey.backgroundSyncNotificationsEnabled) ?? false;