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;