From 9b041dbe1ead0f66eb7bd51ccd5456888ace00f0 Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Mon, 4 Jan 2021 17:13:37 +0200 Subject: [PATCH 1/3] CAKE-222 | fixed transaction priority picker on the settings screen; added check of priority for wallet type --- lib/view_model/settings/settings_view_model.dart | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/view_model/settings/settings_view_model.dart b/lib/view_model/settings/settings_view_model.dart index 983438b6c..4f43d528a 100644 --- a/lib/view_model/settings/settings_view_model.dart +++ b/lib/view_model/settings/settings_view_model.dart @@ -35,6 +35,14 @@ abstract class SettingsViewModelBase with Store { currentVersion = ''; PackageInfo.fromPlatform().then( (PackageInfo packageInfo) => currentVersion = packageInfo.version); + + final priority = _settingsStore.transactionPriority; + + if (!TransactionPriority.forWalletType(_walletType).contains(priority)) { + _settingsStore.transactionPriority = + TransactionPriority.forWalletType(_walletType).first; + } + sections = [ [ if ((wallet.balance.availableModes as List).length > 1) @@ -55,7 +63,8 @@ abstract class SettingsViewModelBase with Store { title: S.current.settings_fee_priority, items: TransactionPriority.forWalletType(wallet.type), selectedItem: () => transactionPriority, - isAlwaysShowScrollThumb: true, + isAlwaysShowScrollThumb: + TransactionPriority.forWalletType(wallet.type).length > 3, onItemSelected: (TransactionPriority priority) => _settingsStore.transactionPriority = priority), SwitcherListItem( From 68a39bdcfc65b1b8dc7fd0aea734b467c626c66c Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Wed, 6 Jan 2021 10:42:21 +0200 Subject: [PATCH 2/3] CAKE-222 | fixed transaction priority picker on the send page --- lib/src/screens/send/send_page.dart | 3 ++- lib/view_model/send/send_view_model.dart | 7 +++++++ lib/view_model/settings/settings_view_model.dart | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index 1a18b5ba6..c4a350d82 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -746,6 +746,7 @@ class SendPage extends BasePage { Future _setTransactionPriority(BuildContext context) async { final items = TransactionPriority.forWalletType(sendViewModel.walletType); final selectedItem = items.indexOf(sendViewModel.transactionPriority); + final isShowScrollThumb = items.length > 3; await showPopUp( builder: (_) => Picker( @@ -755,7 +756,7 @@ class SendPage extends BasePage { mainAxisAlignment: MainAxisAlignment.center, onItemSelected: (TransactionPriority priority) => sendViewModel.setTransactionPriority(priority), - isAlwaysShowScrollThumb: true, + isAlwaysShowScrollThumb: isShowScrollThumb, ), context: context); } diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index f3d46ccb3..6b04de21c 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -38,6 +38,13 @@ abstract class SendViewModelBase with Store { : state = InitialExecutionState(), _cryptoNumberFormat = NumberFormat(), sendAll = false { + final _priority = _settingsStore.transactionPriority; + + if (!TransactionPriority.forWalletType(walletType).contains(_priority)) { + _settingsStore.transactionPriority = + TransactionPriority.forWalletType(walletType).first; + } + _setCryptoNumMaximumFractionDigits(); } diff --git a/lib/view_model/settings/settings_view_model.dart b/lib/view_model/settings/settings_view_model.dart index 4f43d528a..49ae9557f 100644 --- a/lib/view_model/settings/settings_view_model.dart +++ b/lib/view_model/settings/settings_view_model.dart @@ -36,9 +36,9 @@ abstract class SettingsViewModelBase with Store { PackageInfo.fromPlatform().then( (PackageInfo packageInfo) => currentVersion = packageInfo.version); - final priority = _settingsStore.transactionPriority; + final _priority = _settingsStore.transactionPriority; - if (!TransactionPriority.forWalletType(_walletType).contains(priority)) { + if (!TransactionPriority.forWalletType(_walletType).contains(_priority)) { _settingsStore.transactionPriority = TransactionPriority.forWalletType(_walletType).first; } From 39e91c74cda4abaf90ca59011a5263597782d729 Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Fri, 8 Jan 2021 18:49:28 +0200 Subject: [PATCH 3/3] CAKE-222 | applied adaptive picker to send and settings pages --- lib/src/screens/send/send_page.dart | 1 - lib/src/screens/settings/settings.dart | 1 - .../screens/settings/widgets/settings_picker_cell.dart | 5 +---- lib/src/widgets/picker.dart | 10 +++++----- lib/view_model/settings/picker_list_item.dart | 4 +--- lib/view_model/settings/settings_view_model.dart | 3 --- 6 files changed, 7 insertions(+), 17 deletions(-) diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index a4eec09bd..e8d9f3e2a 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -751,7 +751,6 @@ class SendPage extends BasePage { mainAxisAlignment: MainAxisAlignment.center, onItemSelected: (TransactionPriority priority) => sendViewModel.setTransactionPriority(priority), - isAlwaysShowScrollThumb: isShowScrollThumb, ), context: context); } diff --git a/lib/src/screens/settings/settings.dart b/lib/src/screens/settings/settings.dart index 2ee3b94ff..d4e70aecb 100644 --- a/lib/src/screens/settings/settings.dart +++ b/lib/src/screens/settings/settings.dart @@ -43,7 +43,6 @@ class SettingsPage extends BasePage { return SettingsPickerCell( title: item.title, selectedItem: item.selectedItem(), - isAlwaysShowScrollThumb: item.isAlwaysShowScrollThumb, items: item.items, onItemSelected: (dynamic value) => item.onItemSelected(value), ); diff --git a/lib/src/screens/settings/widgets/settings_picker_cell.dart b/lib/src/screens/settings/widgets/settings_picker_cell.dart index e2c949683..c27ea753d 100644 --- a/lib/src/screens/settings/widgets/settings_picker_cell.dart +++ b/lib/src/screens/settings/widgets/settings_picker_cell.dart @@ -9,8 +9,7 @@ class SettingsPickerCell extends StandardListRow { {@required String title, this.selectedItem, this.items, - this.onItemSelected, - this.isAlwaysShowScrollThumb}) + this.onItemSelected}) : super( title: title, isSelected: false, @@ -24,7 +23,6 @@ class SettingsPickerCell extends StandardListRow { selectedAtIndex: selectedAtIndex, title: S.current.please_select, mainAxisAlignment: MainAxisAlignment.center, - isAlwaysShowScrollThumb: isAlwaysShowScrollThumb, onItemSelected: (ItemType item) => onItemSelected?.call(item))); }); @@ -32,7 +30,6 @@ class SettingsPickerCell extends StandardListRow { final ItemType selectedItem; final List items; final void Function(ItemType item) onItemSelected; - final bool isAlwaysShowScrollThumb; @override Widget buildTrailing(BuildContext context) { diff --git a/lib/src/widgets/picker.dart b/lib/src/widgets/picker.dart index 7223fe4fb..c157c3dc1 100644 --- a/lib/src/widgets/picker.dart +++ b/lib/src/widgets/picker.dart @@ -15,7 +15,6 @@ class Picker extends StatefulWidget { this.description, @required this.onItemSelected, this.mainAxisAlignment = MainAxisAlignment.start, - this.isAlwaysShowScrollThumb = false }); final int selectedAtIndex; @@ -25,7 +24,6 @@ class Picker extends StatefulWidget { final String description; final Function(Item) onItemSelected; final MainAxisAlignment mainAxisAlignment; - final bool isAlwaysShowScrollThumb; @override PickerState createState() => PickerState(items, images, onItemSelected); @@ -56,6 +54,8 @@ class PickerState extends State { setState(() {}); }); + final isShowScrollThumb = items != null ? items.length > 3 : false; + return AlertBackground( child: Stack( alignment: Alignment.center, @@ -168,13 +168,13 @@ class PickerState extends State { ) ) : Offstage(), - widget.isAlwaysShowScrollThumb - ? CakeScrollbar( + isShowScrollThumb + ? CakeScrollbar( backgroundHeight: backgroundHeight, thumbHeight: thumbHeight, fromTop: fromTop ) - : Offstage(), + : Offstage(), ], ) ), diff --git a/lib/view_model/settings/picker_list_item.dart b/lib/view_model/settings/picker_list_item.dart index 13d502d7e..1dfc9c06d 100644 --- a/lib/view_model/settings/picker_list_item.dart +++ b/lib/view_model/settings/picker_list_item.dart @@ -6,15 +6,13 @@ class PickerListItem extends SettingsListItem { {@required String title, @required this.selectedItem, @required this.items, - void Function(ItemType item) onItemSelected, - this.isAlwaysShowScrollThumb = false}) + void Function(ItemType item) onItemSelected}) : _onItemSelected = onItemSelected, super(title); final ItemType Function() selectedItem; final List items; final void Function(ItemType item) _onItemSelected; - final bool isAlwaysShowScrollThumb; void onItemSelected(dynamic item) { if (item is ItemType) { diff --git a/lib/view_model/settings/settings_view_model.dart b/lib/view_model/settings/settings_view_model.dart index 49ae9557f..93968e8a7 100644 --- a/lib/view_model/settings/settings_view_model.dart +++ b/lib/view_model/settings/settings_view_model.dart @@ -55,7 +55,6 @@ abstract class SettingsViewModelBase with Store { PickerListItem( title: S.current.settings_currency, items: FiatCurrency.all, - isAlwaysShowScrollThumb: true, selectedItem: () => fiatCurrency, onItemSelected: (FiatCurrency currency) => setFiatCurrency(currency)), @@ -63,8 +62,6 @@ abstract class SettingsViewModelBase with Store { title: S.current.settings_fee_priority, items: TransactionPriority.forWalletType(wallet.type), selectedItem: () => transactionPriority, - isAlwaysShowScrollThumb: - TransactionPriority.forWalletType(wallet.type).length > 3, onItemSelected: (TransactionPriority priority) => _settingsStore.transactionPriority = priority), SwitcherListItem(