CAKE-222 | applied adaptive picker to send and settings pages

OleksandrSobol committed Jan 8, 2021 at 18:49 UTC 39e91c74cda4abaf90ca59011a5263597782d729
6 files changed +7 -17
lib/src/screens/send/send_page.dart
-1
@@ -751,7 +751,6 @@ class SendPage extends BasePage {
751 mainAxisAlignment: MainAxisAlignment.center,
752 onItemSelected: (TransactionPriority priority) =>
753 sendViewModel.setTransactionPriority(priority),
754 - isAlwaysShowScrollThumb: isShowScrollThumb,
754 ),
755 context: context);
756 }
lib/src/screens/settings/settings.dart
-1
@@ -43,7 +43,6 @@ class SettingsPage extends BasePage {
43 return SettingsPickerCell<dynamic>(
44 title: item.title,
45 selectedItem: item.selectedItem(),
46 - isAlwaysShowScrollThumb: item.isAlwaysShowScrollThumb,
46 items: item.items,
47 onItemSelected: (dynamic value) => item.onItemSelected(value),
48 );
lib/src/screens/settings/widgets/settings_picker_cell.dart
+1 -4
@@ -9,8 +9,7 @@ class SettingsPickerCell<ItemType> extends StandardListRow {
9 {@required String title,
10 this.selectedItem,
11 this.items,
12 - this.onItemSelected,
13 - this.isAlwaysShowScrollThumb})
12 + this.onItemSelected})
13 : super(
14 title: title,
15 isSelected: false,
@@ -24,7 +23,6 @@ class SettingsPickerCell<ItemType> extends StandardListRow {
23 selectedAtIndex: selectedAtIndex,
24 title: S.current.please_select,
25 mainAxisAlignment: MainAxisAlignment.center,
27 - isAlwaysShowScrollThumb: isAlwaysShowScrollThumb,
26 onItemSelected: (ItemType item) =>
27 onItemSelected?.call(item)));
28 });
@@ -32,7 +30,6 @@ class SettingsPickerCell<ItemType> extends StandardListRow {
30 final ItemType selectedItem;
31 final List<ItemType> items;
32 final void Function(ItemType item) onItemSelected;
35 - final bool isAlwaysShowScrollThumb;
33
34 @override
35 Widget buildTrailing(BuildContext context) {
lib/src/widgets/picker.dart
+5 -5
@@ -15,7 +15,6 @@ class Picker<Item extends Object> extends StatefulWidget {
15 this.description,
16 @required this.onItemSelected,
17 this.mainAxisAlignment = MainAxisAlignment.start,
18 - this.isAlwaysShowScrollThumb = false
18 });
19
20 final int selectedAtIndex;
@@ -25,7 +24,6 @@ class Picker<Item extends Object> extends StatefulWidget {
24 final String description;
25 final Function(Item) onItemSelected;
26 final MainAxisAlignment mainAxisAlignment;
28 - final bool isAlwaysShowScrollThumb;
27
28 @override
29 PickerState createState() => PickerState<Item>(items, images, onItemSelected);
@@ -56,6 +54,8 @@ class PickerState<Item> extends State<Picker> {
54 setState(() {});
55 });
56
57 + final isShowScrollThumb = items != null ? items.length > 3 : false;
58 +
59 return AlertBackground(
60 child: Stack(
61 alignment: Alignment.center,
@@ -168,13 +168,13 @@ class PickerState<Item> extends State<Picker> {
168 )
169 )
170 : Offstage(),
171 - widget.isAlwaysShowScrollThumb
172 - ? CakeScrollbar(
171 + isShowScrollThumb
172 + ? CakeScrollbar(
173 backgroundHeight: backgroundHeight,
174 thumbHeight: thumbHeight,
175 fromTop: fromTop
176 )
177 - : Offstage(),
177 + : Offstage(),
178 ],
179 )
180 ),
lib/view_model/settings/picker_list_item.dart
+1 -3
@@ -6,15 +6,13 @@ class PickerListItem<ItemType> extends SettingsListItem {
6 {@required String title,
7 @required this.selectedItem,
8 @required this.items,
9 - void Function(ItemType item) onItemSelected,
10 - this.isAlwaysShowScrollThumb = false})
9 + void Function(ItemType item) onItemSelected})
10 : _onItemSelected = onItemSelected,
11 super(title);
12
13 final ItemType Function() selectedItem;
14 final List<ItemType> items;
15 final void Function(ItemType item) _onItemSelected;
17 - final bool isAlwaysShowScrollThumb;
16
17 void onItemSelected(dynamic item) {
18 if (item is ItemType) {
lib/view_model/settings/settings_view_model.dart
-3
@@ -55,7 +55,6 @@ abstract class SettingsViewModelBase with Store {
55 PickerListItem(
56 title: S.current.settings_currency,
57 items: FiatCurrency.all,
58 - isAlwaysShowScrollThumb: true,
58 selectedItem: () => fiatCurrency,
59 onItemSelected: (FiatCurrency currency) =>
60 setFiatCurrency(currency)),
@@ -63,8 +62,6 @@ abstract class SettingsViewModelBase with Store {
62 title: S.current.settings_fee_priority,
63 items: TransactionPriority.forWalletType(wallet.type),
64 selectedItem: () => transactionPriority,
66 - isAlwaysShowScrollThumb:
67 - TransactionPriority.forWalletType(wallet.type).length > 3,
65 onItemSelected: (TransactionPriority priority) =>
66 _settingsStore.transactionPriority = priority),
67 SwitcherListItem(