fix zero initial fee rates in RBF rate picker (#1585)

* fix zero initial fee rates in RBF rate picker * fix for other settings page[skip ci]

Serhii committed Aug 10, 2024 at 01:18 UTC 9c29dbd6fd7823e4deb5da871b752087ca8ef06f
5 files changed +19 -7
lib/di.dart
+2 -2
@@ -759,8 +759,8 @@ Future<void> setup({
759 getIt.registerFactory(() => TrocadorProvidersViewModel(getIt.get<SettingsStore>()));
760
761 getIt.registerFactory(() {
762 - return OtherSettingsViewModel(getIt.get<SettingsStore>(), getIt.get<AppStore>().wallet!);
763 - });
762 + return OtherSettingsViewModel(getIt.get<SettingsStore>(), getIt.get<AppStore>().wallet!,
763 + getIt.get<SendViewModel>());});
764
765 getIt.registerFactory(() {
766 return SecuritySettingsViewModel(getIt.get<SettingsStore>());
lib/src/screens/settings/other_settings_page.dart
+6 -1
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/bitcoin/bitcoin.dart';
2 import 'package:cake_wallet/entities/priority_for_wallet_type.dart';
3 import 'package:cake_wallet/generated/i18n.dart';
4 import 'package:cake_wallet/routes.dart';
@@ -12,7 +13,11 @@ import 'package:flutter/material.dart';
13 import 'package:flutter_mobx/flutter_mobx.dart';
14
15 class OtherSettingsPage extends BasePage {
15 - OtherSettingsPage(this._otherSettingsViewModel);
16 + OtherSettingsPage(this._otherSettingsViewModel) {
17 + if (_otherSettingsViewModel.sendViewModel.isElectrumWallet) {
18 + bitcoin!.updateFeeRates(_otherSettingsViewModel.sendViewModel.wallet);
19 + }
20 + }
21
22 @override
23 String get title => S.current.other_settings;
lib/src/screens/transaction_details/transaction_details_page.dart
+6 -1
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/bitcoin/bitcoin.dart';
2 import 'package:cake_wallet/generated/i18n.dart';
3 import 'package:cake_wallet/routes.dart';
4 import 'package:cake_wallet/src/screens/base_page.dart';
@@ -15,7 +16,11 @@ import 'package:flutter/services.dart';
16 import 'package:flutter_mobx/flutter_mobx.dart';
17
18 class TransactionDetailsPage extends BasePage {
18 - TransactionDetailsPage({required this.transactionDetailsViewModel});
19 + TransactionDetailsPage({required this.transactionDetailsViewModel}) {
20 + if (transactionDetailsViewModel.sendViewModel.isElectrumWallet) {
21 + bitcoin!.updateFeeRates(transactionDetailsViewModel.sendViewModel.wallet);
22 + }
23 + }
24
25 @override
26 String get title => S.current.transaction_details_title;
lib/src/widgets/picker.dart
+2 -2
@@ -499,10 +499,10 @@ class _PickerState<Item> extends State<Picker<Item>> {
499 children: <Widget>[
500 Expanded(
501 child: Slider(
502 - value: widget.sliderValue ?? 1,
502 + value: widget.sliderValue == null || widget.sliderValue! < 1 ? 1 : widget.sliderValue!,
503 onChanged: isActivated ? widget.onSliderChanged : null,
504 min: widget.minValue ?? 1,
505 - max: widget.maxValue ?? 100,
505 + max: (widget.maxValue == null || widget.maxValue! < 1) ? 100 : widget.maxValue!,
506 divisions: 100,
507 ),
508 ),
lib/view_model/settings/other_settings_view_model.dart
+3 -1
@@ -4,6 +4,7 @@ import 'package:cake_wallet/entities/provider_types.dart';
4 import 'package:cake_wallet/generated/i18n.dart';
5 import 'package:cake_wallet/store/settings_store.dart';
6 import 'package:cake_wallet/utils/package_info.dart';
7 +import 'package:cake_wallet/view_model/send/send_view_model.dart';
8 // import 'package:package_info/package_info.dart';
9 import 'package:collection/collection.dart';
10 import 'package:cw_core/balance.dart';
@@ -20,7 +21,7 @@ class OtherSettingsViewModel = OtherSettingsViewModelBase
21 with _$OtherSettingsViewModel;
22
23 abstract class OtherSettingsViewModelBase with Store {
23 - OtherSettingsViewModelBase(this._settingsStore, this._wallet)
24 + OtherSettingsViewModelBase(this._settingsStore, this._wallet, this.sendViewModel)
25 : walletType = _wallet.type,
26 currentVersion = '' {
27 PackageInfo.fromPlatform().then(
@@ -42,6 +43,7 @@ abstract class OtherSettingsViewModelBase with Store {
43 String currentVersion;
44
45 final SettingsStore _settingsStore;
46 + final SendViewModel sendViewModel;
47
48 @computed
49 TransactionPriority get transactionPriority {