Fix Generic Type being enforced to extend Object

OmarHatem committed Dec 16, 2022 at 14:33 UTC 6148b91c8a827a65fc35b9370dc6ba9888d7739b
2 files changed +5 -6
lib/src/screens/settings/widgets/settings_picker_cell.dart
+1 -1
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
3 import 'package:cake_wallet/src/widgets/picker.dart';
4 import 'package:cake_wallet/src/widgets/standard_list.dart';
5
6 -class SettingsPickerCell<ItemType extends Object> extends StandardListRow {
6 +class SettingsPickerCell<ItemType> extends StandardListRow {
7 SettingsPickerCell(
8 {required String title,
9 required this.selectedItem,
lib/src/widgets/picker.dart
+4 -5
@@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
4 import 'package:cake_wallet/src/widgets/alert_background.dart';
5 import 'package:cake_wallet/src/widgets/alert_close_button.dart';
6
7 -class Picker<Item extends Object> extends StatefulWidget {
7 +class Picker<Item> extends StatefulWidget {
8 Picker({
9 required this.selectedAtIndex,
10 required this.items,
@@ -39,7 +39,7 @@ class Picker<Item extends Object> extends StatefulWidget {
39 _PickerState<Item> createState() => _PickerState<Item>(items, images, onItemSelected);
40 }
41
42 -class _PickerState<Item> extends State<Picker> {
42 +class _PickerState<Item> extends State<Picker<Item>> {
43 _PickerState(this.items, this.images, this.onItemSelected);
44
45 final Function(Item) onItemSelected;
@@ -59,7 +59,7 @@ class _PickerState<Item> extends State<Picker> {
59 images = [];
60 for (int i=0;i<widget.items.length;i++) {
61 if (widget.matchingCriteria?.call(widget.items[i], searchController.text) ?? true) {
62 - items.add(widget.items[i] as Item);
62 + items.add(widget.items[i]);
63 images.add(widget.images[i]);
64 }
65 }
@@ -238,8 +238,7 @@ class _PickerState<Item> extends State<Picker> {
238 child: Padding(
239 padding: EdgeInsets.only(left: image != null ? 12 : 0),
240 child: Text(
241 - // What a hack (item as) ?
242 - widget.displayItem?.call(item as Object) ?? item.toString(),
241 + widget.displayItem?.call(item) ?? item.toString(),
242 style: TextStyle(
243 fontSize: 14,
244 fontFamily: 'Lato',