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

* change sync status display mode on long-press

* move status toggle function to viewmodel action
This commit is contained in:
malik1004x
2026-01-07 23:14:42 +01:00
committed by GitHub
parent f2508d1eb4
commit 78913fc3f0
2 changed files with 13 additions and 0 deletions
@@ -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,
@@ -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;