diff --git a/lib/presentation/calculator_asc_materials/widgets/add_edit_item_bottom_sheet.dart b/lib/presentation/calculator_asc_materials/widgets/add_edit_item_bottom_sheet.dart index f4d1ef1d0..cbb4e7305 100644 --- a/lib/presentation/calculator_asc_materials/widgets/add_edit_item_bottom_sheet.dart +++ b/lib/presentation/calculator_asc_materials/widgets/add_edit_item_bottom_sheet.dart @@ -7,7 +7,7 @@ import 'package:genshindb/domain/models/models.dart'; import 'package:genshindb/generated/l10n.dart'; import 'package:genshindb/presentation/shared/common_bottom_sheet.dart'; import 'package:genshindb/presentation/shared/loading.dart'; -import 'package:numberpicker/numberpicker.dart'; +import 'package:genshindb/presentation/shared/number_picker_dialog.dart'; import 'ascension_level.dart'; import 'skill_item.dart'; @@ -183,21 +183,13 @@ class AddEditItemBottomSheet extends StatelessWidget { } Future _showLevelPickerDialog(BuildContext context, int value, bool forCurrentLevel) async { - final theme = Theme.of(context); - final s = S.of(context); final newValue = await showDialog( context: context, - builder: (BuildContext context) { - return NumberPickerDialog.integer( - minValue: minItemLevel, - maxValue: maxItemLevel, - title: Text(s.chooseALevel), - initialIntegerValue: value, - infiniteLoop: true, - cancelWidget: Text(s.cancel), - confirmWidget: Text(s.ok, style: TextStyle(color: theme.primaryColor)), - ); - }, + builder: (_) => NumberPickerDialog( + minItemLevel: minItemLevel, + maxItemLevel: maxItemLevel, + value: value, + ), ); if (newValue == null) { diff --git a/lib/presentation/shared/number_picker_dialog.dart b/lib/presentation/shared/number_picker_dialog.dart new file mode 100644 index 000000000..93886e296 --- /dev/null +++ b/lib/presentation/shared/number_picker_dialog.dart @@ -0,0 +1,56 @@ +import 'package:flutter/material.dart'; +import 'package:genshindb/generated/l10n.dart'; +import 'package:numberpicker/numberpicker.dart'; + +class NumberPickerDialog extends StatefulWidget { + final int minItemLevel; + final int maxItemLevel; + final int value; + + const NumberPickerDialog({ + Key key, + @required this.minItemLevel, + @required this.maxItemLevel, + @required this.value, + }) : super(key: key); + + @override + _NumberPickerDialogState createState() => _NumberPickerDialogState(); +} + +class _NumberPickerDialogState extends State { + int _currentValue = 0; + + @override + void initState() { + _currentValue = widget.value; + super.initState(); + } + + @override + Widget build(BuildContext context) { + final s = S.of(context); + return AlertDialog( + title: Text(s.chooseALevel), + actions: [ + OutlinedButton( + onPressed: () => Navigator.pop(context), + child: Text(s.cancel), + ), + ElevatedButton( + onPressed: () => Navigator.pop(context, _currentValue), + child: Text(s.ok), + ) + ], + content: NumberPicker( + minValue: widget.minItemLevel, + maxValue: widget.maxItemLevel, + value: _currentValue, + infiniteLoop: true, + onChanged: (newValue) => setState(() { + _currentValue = newValue; + }), + ), + ); + } +} diff --git a/lib/presentation/shared/scaffold_with_fab.dart b/lib/presentation/shared/scaffold_with_fab.dart index d14c8ed89..4a11a17e0 100644 --- a/lib/presentation/shared/scaffold_with_fab.dart +++ b/lib/presentation/shared/scaffold_with_fab.dart @@ -41,20 +41,18 @@ class _ScaffoldWithFabState extends State with SingleTickerProv onPointerDown: (_) { FocusScope.of(context).removeFocus(); }, - child: SafeArea( - child: Scaffold( - appBar: widget.appbar, - body: SafeArea( - child: SingleChildScrollView( - controller: _scrollController, - child: widget.child, - ), - ), - floatingActionButton: AppFab( - hideFabAnimController: _hideFabAnimController, - scrollController: _scrollController, + child: Scaffold( + appBar: widget.appbar, + body: SafeArea( + child: SingleChildScrollView( + controller: _scrollController, + child: widget.child, ), ), + floatingActionButton: AppFab( + hideFabAnimController: _hideFabAnimController, + scrollController: _scrollController, + ), ), ); } diff --git a/pubspec.lock b/pubspec.lock index c4b768a42..1c5eb6a96 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -169,20 +169,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.0.0" - cupertino_icons: - dependency: "direct main" - description: - name: cupertino_icons - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.2" darq: dependency: "direct main" description: name: darq url: "https://pub.dartlang.org" source: hosted - version: "1.0.1+1" + version: "1.1.1" dart_style: dependency: transitive description: @@ -290,14 +283,14 @@ packages: name: flutter_slidable url: "https://pub.dartlang.org" source: hosted - version: "0.5.7" + version: "0.6.0" flutter_staggered_grid_view: dependency: "direct main" description: name: flutter_staggered_grid_view url: "https://pub.dartlang.org" source: hosted - version: "0.3.4" + version: "0.4.0" flutter_test: dependency: "direct dev" description: flutter @@ -328,7 +321,7 @@ packages: name: fluttertoast url: "https://pub.dartlang.org" source: hosted - version: "8.0.3" + version: "8.0.4" freezed: dependency: "direct dev" description: @@ -349,7 +342,7 @@ packages: name: get_it url: "https://pub.dartlang.org" source: hosted - version: "6.0.0" + version: "6.1.1" glob: dependency: transitive description: @@ -419,14 +412,14 @@ packages: name: image_gallery_saver url: "https://pub.dartlang.org" source: hosted - version: "1.6.8" + version: "1.6.9" infinite_listview: dependency: transitive description: name: infinite_listview url: "https://pub.dartlang.org" source: hosted - version: "1.0.1+1" + version: "1.1.0" internet_connection_checker: dependency: "direct main" description: @@ -524,7 +517,7 @@ packages: name: numberpicker url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "2.1.1" package_config: dependency: transitive description: @@ -594,14 +587,14 @@ packages: name: permission_handler url: "https://pub.dartlang.org" source: hosted - version: "6.1.1" + version: "6.1.3" permission_handler_platform_interface: dependency: transitive description: name: permission_handler_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "3.1.1" + version: "3.1.3" petitparser: dependency: transitive description: @@ -938,4 +931,4 @@ packages: version: "3.1.0" sdks: dart: ">=2.12.0 <3.0.0" - flutter: ">=1.22.0" + flutter: ">=1.24.0-6.0.pre" diff --git a/pubspec.yaml b/pubspec.yaml index dde34c890..edbba9c30 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -21,8 +21,7 @@ environment: sdk: ">=2.10.4 <3.0.0" dependencies: - cupertino_icons: ^1.0.2 - darq: ^1.0.1+1 + darq: ^1.1.1 device_info: ^2.0.0 devicelocale: ^0.4.1 enum_to_string: ^2.0.1 @@ -32,24 +31,24 @@ dependencies: flutter_colorpicker: ^0.4.0 flutter_localizations: sdk: flutter - flutter_slidable: ^0.5.7 - flutter_staggered_grid_view: ^0.3.4 + flutter_slidable: ^0.6.0 + flutter_staggered_grid_view: ^0.4.0 flutter_user_agent: ^1.2.2 flutter_webview_plugin: ^0.3.11 - fluttertoast: ^8.0.3 + fluttertoast: ^8.0.4 freezed_annotation: ^0.12.0 - get_it: ^6.0.0 + get_it: ^6.1.1 hawk_fab_menu: ^0.3.2 hive: ^2.0.0 hive_flutter: ^1.0.0 - image_gallery_saver: ^1.6.8 + image_gallery_saver: ^1.6.9 internet_connection_checker: ^0.0.1 logger: ^1.0.0 - numberpicker: ^1.3.0 + numberpicker: ^2.1.1 package_info: ^2.0.0 path: ^1.8.0 path_provider: ^2.0.1 - permission_handler: ^6.1.1 + permission_handler: ^6.1.3 rate_my_app: ^1.1.0+1 screenshot: ^0.3.0 shared_preferences: ^2.0.5