mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-28 04:19:50 +00:00
* feat: background sync improvements - dev options on ci build cherrypick - add permissions for background sync to AndroidManifestBase - enable desugaring + update java compatibility to 17 - update walletconnect_flutter_v2 - update ens_dart - update nostr_tools - add notification for new transactions found in background - expose more settings from flutter_daemon in UI - remove battery optimization setting when it's already disabled - fix notification permission handling - fix background sync last trigger saving - prevent notifications from being duplicated * potential fix for multiple notifications firing for the same tx * improve logging in background sync * ui improvements to ignore battery optimization popup * feat: logs for bg sync disable decred bgsync * fix: call store() directly to be sure that it is writing the data * chore: rename logs to background sync logs * Update lib/view_model/dashboard/dashboard_view_model.dart Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com> * chore: remove unused key --------- Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
99 lines
4.8 KiB
Dart
99 lines
4.8 KiB
Dart
import 'package:cake_wallet/bitcoin/bitcoin.dart';
|
|
import 'package:cake_wallet/entities/priority_for_wallet_type.dart';
|
|
import 'package:cake_wallet/generated/i18n.dart';
|
|
import 'package:cake_wallet/routes.dart';
|
|
import 'package:cake_wallet/src/screens/base_page.dart';
|
|
import 'package:cake_wallet/src/screens/settings/widgets/setting_priority_picker_cell.dart';
|
|
import 'package:cake_wallet/src/screens/settings/widgets/settings_cell_with_arrow.dart';
|
|
import 'package:cake_wallet/src/screens/settings/widgets/settings_picker_cell.dart';
|
|
import 'package:cake_wallet/src/screens/settings/widgets/settings_version_cell.dart';
|
|
import 'package:cake_wallet/utils/feature_flag.dart';
|
|
import 'package:cake_wallet/view_model/settings/other_settings_view_model.dart';
|
|
import 'package:cw_core/wallet_type.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_mobx/flutter_mobx.dart';
|
|
|
|
class OtherSettingsPage extends BasePage {
|
|
OtherSettingsPage(this._otherSettingsViewModel) {
|
|
if (_otherSettingsViewModel.sendViewModel.isElectrumWallet) {
|
|
bitcoin!.updateFeeRates(_otherSettingsViewModel.sendViewModel.wallet);
|
|
}
|
|
}
|
|
|
|
@override
|
|
String get title => S.current.other_settings;
|
|
|
|
final OtherSettingsViewModel _otherSettingsViewModel;
|
|
|
|
@override
|
|
Widget body(BuildContext context) {
|
|
return Observer(
|
|
builder: (_) {
|
|
return Container(
|
|
padding: EdgeInsets.only(top: 10),
|
|
child: Column(
|
|
children: [
|
|
if (_otherSettingsViewModel.displayTransactionPriority)
|
|
_otherSettingsViewModel.walletType == WalletType.bitcoin ?
|
|
SettingsPriorityPickerCell(
|
|
title: S.current.settings_fee_priority,
|
|
items: priorityForWalletType(_otherSettingsViewModel.walletType),
|
|
displayItem: _otherSettingsViewModel.getDisplayBitcoinPriority,
|
|
selectedItem: _otherSettingsViewModel.transactionPriority,
|
|
customItemIndex: _otherSettingsViewModel.customPriorityItemIndex,
|
|
onItemSelected: _otherSettingsViewModel.onDisplayBitcoinPrioritySelected,
|
|
customValue: _otherSettingsViewModel.customBitcoinFeeRate,
|
|
maxValue: _otherSettingsViewModel.maxCustomFeeRate?.toDouble(),
|
|
) :
|
|
SettingsPickerCell(
|
|
title: S.current.settings_fee_priority,
|
|
items: priorityForWalletType(_otherSettingsViewModel.walletType),
|
|
displayItem: _otherSettingsViewModel.getDisplayPriority,
|
|
selectedItem: _otherSettingsViewModel.transactionPriority,
|
|
onItemSelected: _otherSettingsViewModel.onDisplayPrioritySelected,
|
|
),
|
|
if (_otherSettingsViewModel.changeRepresentativeEnabled)
|
|
SettingsCellWithArrow(
|
|
title: S.current.change_rep,
|
|
handler: (BuildContext context) =>
|
|
Navigator.of(context).pushNamed(Routes.changeRep),
|
|
),
|
|
SettingsCellWithArrow(
|
|
title: S.current.settings_terms_and_conditions,
|
|
handler: (BuildContext context) =>
|
|
Navigator.of(context).pushNamed(Routes.readDisclaimer),
|
|
),
|
|
if (FeatureFlag.hasDevOptions && _otherSettingsViewModel.walletType == WalletType.monero)
|
|
SettingsCellWithArrow(
|
|
title: '[dev] monero background sync',
|
|
handler: (BuildContext context) =>
|
|
Navigator.of(context).pushNamed(Routes.devMoneroBackgroundSync),
|
|
),
|
|
if (FeatureFlag.hasDevOptions && [WalletType.monero, WalletType.wownero, WalletType.zano].contains(_otherSettingsViewModel.walletType))
|
|
SettingsCellWithArrow(
|
|
title: '[dev] xmr call profiler',
|
|
handler: (BuildContext context) =>
|
|
Navigator.of(context).pushNamed(Routes.devMoneroCallProfiler),
|
|
),
|
|
if (FeatureFlag.hasDevOptions)
|
|
SettingsCellWithArrow(
|
|
title: '[dev] shared preferences',
|
|
handler: (BuildContext context) =>
|
|
Navigator.of(context).pushNamed(Routes.devSharedPreferences),
|
|
),
|
|
if (FeatureFlag.hasDevOptions)
|
|
SettingsCellWithArrow(
|
|
title: '[dev] background sync logs',
|
|
handler: (BuildContext context) =>
|
|
Navigator.of(context).pushNamed(Routes.devBackgroundSyncLogs),
|
|
),
|
|
Spacer(),
|
|
SettingsVersionCell(
|
|
title: S.of(context).version(_otherSettingsViewModel.currentVersion)),
|
|
],
|
|
),
|
|
);
|
|
},
|
|
);
|
|
}
|
|
}
|