From 8cb59009773227327400d92d34e4e7addecb2cf7 Mon Sep 17 00:00:00 2001 From: fhkhd Date: Sun, 28 Jan 2024 03:27:43 +0330 Subject: [PATCH] Set some save button progress bar and toast message --- lib/pages/ItemPages/item_add_screen.dart | 59 +-- lib/pages/TestPages/test_form_page.dart | 61 ++- lib/pages/my_info_screen.dart | 104 ++--- lib/providers/auth.dart | 12 + lib/providers/cycles.dart | 11 + lib/providers/items.dart | 13 +- lib/providers/labels.dart | 11 + lib/providers/packages.dart | 11 + lib/providers/test_results.dart | 2 +- lib/widgets/CycleScreens/Add/save_button.dart | 129 +++--- .../ItemScreens/Add/item_save_button.dart | 53 ++- lib/widgets/LabelScreens/Add/save_button.dart | 116 ++--- .../Add/package_save_button.dart | 116 ++--- pubspec.lock | 416 +++++++++--------- pubspec.yaml | 1 + 15 files changed, 610 insertions(+), 505 deletions(-) diff --git a/lib/pages/ItemPages/item_add_screen.dart b/lib/pages/ItemPages/item_add_screen.dart index c89c9a5..f2c80fe 100755 --- a/lib/pages/ItemPages/item_add_screen.dart +++ b/lib/pages/ItemPages/item_add_screen.dart @@ -3,6 +3,7 @@ import 'package:cssd/providers/items.dart'; import 'package:cssd/widgets/ItemScreens/Add/item_save_button.dart'; import 'package:cssd/widgets/ItemScreens/Add/upload_image.dart'; import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:random_string/random_string.dart'; @@ -45,14 +46,15 @@ class _ItemAddScreenState extends State { } void _saveForm(String name, String size, String specific, String udi, - String description) { + String description, ItemProvider itemProvider) async { + itemProvider.setLoadingButton(); setState(() { isLoading = false; }); if (!_form.currentState!.validate()) { return; } - Provider.of(context, listen: false) + await Provider.of(context, listen: false) .createItemResult( name, size, @@ -67,37 +69,20 @@ class _ItemAddScreenState extends State { isLoading = false; }); if (result == 'done') { - showDialog( - context: context, - builder: (ctx) => AlertDialog( - content: Text('Item added.'), - actions: [ - TextButton( - onPressed: () { - Navigator.of(ctx).pop(); - }, - child: Text('Ok'), - ) - ], - ), - ).then((value) => - Navigator.of(context).popAndPushNamed(Routes.itemResultScreen)); - } else if (result == 'error') { - showDialog( - context: context, - builder: (ctx) => AlertDialog( - content: Text('error.'), - actions: [ - TextButton( - onPressed: () { - Navigator.of(ctx).pop(); - }, - child: Text('Ok'), - ) - ], - ), + Navigator.of(context).popAndPushNamed(Routes.itemResultScreen); + Fluttertoast.showToast( + msg: "Item added.", + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.BOTTOM, + ); + } else { + Fluttertoast.showToast( + msg: result, + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.BOTTOM, ); } + itemProvider.resetLoadingButton(); }, ); } @@ -384,12 +369,12 @@ class _ItemAddScreenState extends State { ItemAddSaveButton( onTap: () { _saveForm( - nameCTRL.text, - sizeCTRL.text, - specificCTRL.text, - udiCTRL.text, - descriptionCTRL.text, - ); + nameCTRL.text, + sizeCTRL.text, + specificCTRL.text, + udiCTRL.text, + descriptionCTRL.text, + itemProviderObject); }, deviceBlockSize: _deviceBlockSize, ), diff --git a/lib/pages/TestPages/test_form_page.dart b/lib/pages/TestPages/test_form_page.dart index 18a5fb6..e9b10ea 100755 --- a/lib/pages/TestPages/test_form_page.dart +++ b/lib/pages/TestPages/test_form_page.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; import 'package:provider/provider.dart'; import 'package:random_string/random_string.dart'; @@ -22,6 +23,7 @@ class FormPage extends StatefulWidget { class _FormPageState extends State { bool _isInit = true; bool _isLoading = false; + bool _isLoadingButton = false; bool isAdding = false; final _form = GlobalKey(); Map values = {}; @@ -39,29 +41,26 @@ class _FormPageState extends State { }); } else { setState(() { - _isLoading = true; + _isLoadingButton = true; }); prvObject.createTestResult(values, batchId).then( (result) { setState(() { - _isLoading = false; + _isLoadingButton = false; }); if (result == 'done') { - showDialog( - context: context, - builder: (ctx) => AlertDialog( - content: Text('Test added.'), - actions: [ - TextButton( - onPressed: () { - Navigator.of(ctx).pop(); - }, - child: Text('Ok'), - ) - ], - ), - ).then((value) => - Navigator.of(context).popAndPushNamed(Routes.testResultScreen)); + Navigator.of(context).popAndPushNamed(Routes.testResultScreen); + Fluttertoast.showToast( + msg: "Test added.", + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.BOTTOM, + ); + } else { + Fluttertoast.showToast( + msg: result, + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.BOTTOM, + ); } }, ); @@ -109,15 +108,29 @@ class _FormPageState extends State { child: Scaffold( appBar: AppBar( centerTitle: true, - title: Text('Add Test Result', style: TextStyle(color: Colors.white,),), + title: Text( + 'Add Test Result', + style: TextStyle( + color: Colors.white, + ), + ), backgroundColor: Colors.black, actions: [ - IconButton( - icon: Icon(Icons.save, color: Colors.white,), - onPressed: () { - _saveForm(); - }, - ) + _isLoadingButton + ? Center( + child: CircularProgressIndicator( + color: Colors.white, + ), + ) + : IconButton( + icon: Icon( + Icons.save, + color: Colors.white, + ), + onPressed: () { + _saveForm(); + }, + ) ], leading: IconButton( icon: Icon( diff --git a/lib/pages/my_info_screen.dart b/lib/pages/my_info_screen.dart index 642acf3..f7837e4 100755 --- a/lib/pages/my_info_screen.dart +++ b/lib/pages/my_info_screen.dart @@ -4,6 +4,7 @@ import 'package:cssd/widgets/Global/internet_error.dart'; import 'package:cssd/widgets/LabelScreens/Detail/header.dart'; import 'package:cssd/widgets/MyInfo/input_box.dart'; import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import '../providers/auth.dart'; @@ -23,6 +24,7 @@ class _MyInfoScreenState extends State { TextEditingController emailCTRL = new TextEditingController(); bool isInit = true; + @override void didChangeDependencies() async { if (isInit) { @@ -48,7 +50,12 @@ class _MyInfoScreenState extends State { child: Scaffold( appBar: AppBar( titleSpacing: -10, - title: Text('Dashboard', style: TextStyle(color: Colors.white,),), + title: Text( + 'Dashboard', + style: TextStyle( + color: Colors.white, + ), + ), backgroundColor: Colors.black, leading: IconButton( icon: Icon( @@ -126,55 +133,54 @@ class _MyInfoScreenState extends State { SizedBox( height: 40, ), - InkWell( - child: Container( - padding: EdgeInsets.symmetric( - horizontal: 60, vertical: 10), - margin: - EdgeInsets.only(top: 50, bottom: 20), - width: double.infinity, - decoration: BoxDecoration( - color: Colors.black, - borderRadius: BorderRadius.circular(5), - ), - child: Text( - 'Save', - style: TextStyle( - color: Colors.white, - fontSize: 5 * _deviceBlockSize, - ), - textAlign: TextAlign.center, - ), - ), - onTap: () async { - await Provider.of(context, - listen: false) - .setUserData( - user!['id'], - usernameCTRL.text, - emailCTRL.text, - ) - .then( - (value) async => await showDialog( - context: context, - builder: (ctx) => AlertDialog( - content: Text( - 'Info changed successfully.', - ), - actions: [ - TextButton( - child: Text('Ok'), - onPressed: () { - Navigator.of(ctx).pop(); - }, + Consumer(builder: (context, auth, _) { + return InkWell( + child: Container( + padding: EdgeInsets.symmetric( + horizontal: 60, vertical: 10), + margin: EdgeInsets.only( + top: 50, bottom: 20), + width: double.infinity, + decoration: BoxDecoration( + color: Colors.black, + borderRadius: + BorderRadius.circular(5), + ), + child: auth.isloading + ? Center( + child: + CircularProgressIndicator( + color: Colors.white, ), - ], - ), - ), - ); - Navigator.of(context).pop(); - }, - ), + ) + : Text( + 'Save', + style: TextStyle( + color: Colors.white, + fontSize: + 5 * _deviceBlockSize, + ), + textAlign: TextAlign.center, + )), + onTap: () async { + auth.setLoading(); + await Provider.of(context, + listen: false) + .setUserData( + user!['id'], + usernameCTRL.text, + emailCTRL.text, + ); + Navigator.of(context).pop(); + auth.resetLoading(); + Fluttertoast.showToast( + msg: "Info changed successfully.", + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.BOTTOM, + ); + }, + ); + }), ], ), ), diff --git a/lib/providers/auth.dart b/lib/providers/auth.dart index 082c508..8982deb 100755 --- a/lib/providers/auth.dart +++ b/lib/providers/auth.dart @@ -18,6 +18,18 @@ class Auth with ChangeNotifier { return token != null; } + bool isloading = false; + + void resetLoading() { + isloading = false; + notifyListeners(); + } + + void setLoading() { + isloading = true; + notifyListeners(); + } + String? get token { if (_expiaryDate != null && _expiaryDate!.isAfter(DateTime.now()) && diff --git a/lib/providers/cycles.dart b/lib/providers/cycles.dart index e98bafb..8647149 100755 --- a/lib/providers/cycles.dart +++ b/lib/providers/cycles.dart @@ -67,6 +67,17 @@ class CyclesProvider extends ChangeNotifier { // notifyListeners(); } + bool isloadingButton = false; + void resetLoadingButton() { + isloadingButton = false; + notifyListeners(); + } + + void setLoadingButton() { + isloadingButton = true; + notifyListeners(); + } + Future>> getHospitalsFilters() async { var response = await http.get( Uri.parse(Url.filterItems), diff --git a/lib/providers/items.dart b/lib/providers/items.dart index 461499b..64d76a4 100755 --- a/lib/providers/items.dart +++ b/lib/providers/items.dart @@ -52,6 +52,17 @@ class ItemProvider extends ChangeNotifier { // notifyListeners(); } + bool isloadingButton = false; + void resetLoadingButton() { + isloadingButton = false; + notifyListeners(); + } + + void setLoadingButton() { + isloadingButton = true; + notifyListeners(); + } + Future>> getHospitalsFilters() async { var response = await http.get( Uri.parse(Url.filterItems), @@ -154,7 +165,7 @@ class ItemProvider extends ChangeNotifier { catchImages = []; return 'done'; } else { - return 'error'; + return 'error ${response.statusCode}'; } } diff --git a/lib/providers/labels.dart b/lib/providers/labels.dart index 1f0bd48..6b60760 100755 --- a/lib/providers/labels.dart +++ b/lib/providers/labels.dart @@ -59,6 +59,17 @@ class LabelsProvider extends ChangeNotifier { // notifyListeners(); } + bool isloadingButton = false; + void resetLoadingButton() { + isloadingButton = false; + notifyListeners(); + } + + void setLoadingButton() { + isloadingButton = true; + notifyListeners(); + } + Future>> getHospitalsFilters() async { var response = await http.get( Uri.parse(Url.filterItems), diff --git a/lib/providers/packages.dart b/lib/providers/packages.dart index b305b92..45984ee 100755 --- a/lib/providers/packages.dart +++ b/lib/providers/packages.dart @@ -85,6 +85,17 @@ class PackageProvider extends ChangeNotifier { // notifyListeners(); } + bool isloadingButton = false; + void resetLoadingButton() { + isloadingButton = false; + notifyListeners(); + } + + void setLoadingButton() { + isloadingButton = true; + notifyListeners(); + } + Future>> getHospitalsFilters() async { var response = await http.get( Uri.parse(Url.filterItems), diff --git a/lib/providers/test_results.dart b/lib/providers/test_results.dart index a599a88..48efb9e 100755 --- a/lib/providers/test_results.dart +++ b/lib/providers/test_results.dart @@ -312,7 +312,7 @@ class TestResultsProvider with ChangeNotifier { catchImages = []; return 'done'; } else { - return 'error'; + return 'error ${response.statusCode}'; } // var response = await http // .post(Url.createTestResult, body: json.encode(values), headers: { diff --git a/lib/widgets/CycleScreens/Add/save_button.dart b/lib/widgets/CycleScreens/Add/save_button.dart index eebc7fc..e73e5c3 100755 --- a/lib/widgets/CycleScreens/Add/save_button.dart +++ b/lib/widgets/CycleScreens/Add/save_button.dart @@ -1,5 +1,6 @@ import 'package:cssd/config/colors.dart'; import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; import 'package:provider/provider.dart'; import '../../../config/routes.dart'; @@ -29,63 +30,81 @@ class CycleAddSaveButton extends StatelessWidget { @override Widget build(BuildContext context) { - return InkWell( - onTap: () { - if (!_form.currentState!.validate()) { - return; - } - List labels = []; - for (TextEditingController label in labelValues) { - labels.add(label.text); - } - Provider.of(context, listen: false).createCycleResult( - cycleNumberCTRL.text, - dateValue, - labels, - descriptionCTRL.text, - striizerIdCTRL.text, - ); - showDialog( - context: context, - builder: (ctx) => AlertDialog( - content: Text('Cycle added.'), - actions: [ - TextButton( - onPressed: () { - Navigator.of(ctx).pop(); - }, - child: Text('Ok'), - ) - ], - ), - ).then((_) { - Navigator.of(context).pushReplacementNamed(Routes.cycleResultScreen); - }); - }, - child: Container( - padding: EdgeInsets.symmetric( - horizontal: 5 * _deviceBlockSize, - vertical: 10, - ), - // margin: - // EdgeInsets.symmetric(horizontal: 35, vertical: 15), - decoration: BoxDecoration( - gradient: LinearGradient( - colors: [kPink, kPinkSub], - ), - borderRadius: BorderRadius.circular(7), - ), - child: Align( - alignment: Alignment.center, - child: Text( - 'Save', - style: TextStyle( - color: Colors.white, - fontSize: 5 * _deviceBlockSize, + return Consumer(builder: (context, cyclesProvider, _) { + return InkWell( + onTap: () async { + cyclesProvider.setLoadingButton(); + if (!_form.currentState!.validate()) { + return; + } + List labels = []; + for (TextEditingController label in labelValues) { + labels.add(label.text); + } + await Provider.of(context, listen: false) + .createCycleResult( + cycleNumberCTRL.text, + dateValue, + labels, + descriptionCTRL.text, + striizerIdCTRL.text, + ); + showDialog( + context: context, + builder: (ctx) => AlertDialog( + content: Text('Cycle added.'), + actions: [ + TextButton( + onPressed: () { + Navigator.of(ctx).pop(); + }, + child: Text('Ok'), + ) + ], ), + ).then((_) { + Navigator.of(context) + .pushReplacementNamed(Routes.cycleResultScreen); + }); + Navigator.of(context).pushReplacementNamed(Routes.cycleResultScreen); + Fluttertoast.showToast( + msg: "Cycle added.", + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.BOTTOM, + ); + cyclesProvider.resetLoadingButton(); + }, + child: Container( + padding: EdgeInsets.symmetric( + horizontal: 5 * _deviceBlockSize, + vertical: 10, ), + // margin: + // EdgeInsets.symmetric(horizontal: 35, vertical: 15), + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [kPink, kPinkSub], + ), + borderRadius: BorderRadius.circular(7), + ), + child: cyclesProvider.isloadingButton + ? Center( + child: CircularProgressIndicator( + color: Colors.white, + ), + ) + : Align( + alignment: Alignment.center, + child: Text( + 'Save', + style: TextStyle( + color: Colors.white, + fontSize: 5 * _deviceBlockSize, + ), + ), + ), ), - ), - ); + ); + }); } } diff --git a/lib/widgets/ItemScreens/Add/item_save_button.dart b/lib/widgets/ItemScreens/Add/item_save_button.dart index 2882809..6d5bb2c 100755 --- a/lib/widgets/ItemScreens/Add/item_save_button.dart +++ b/lib/widgets/ItemScreens/Add/item_save_button.dart @@ -1,5 +1,7 @@ import 'package:cssd/config/colors.dart'; +import 'package:cssd/providers/items.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class ItemAddSaveButton extends StatelessWidget { const ItemAddSaveButton({ @@ -11,32 +13,41 @@ class ItemAddSaveButton extends StatelessWidget { final double _deviceBlockSize; final VoidCallback onTap; + @override Widget build(BuildContext context) { - return InkWell( - onTap: onTap, - child: Container( - padding: EdgeInsets.symmetric( - horizontal: 5 * _deviceBlockSize, - vertical: 10, - ), - decoration: BoxDecoration( - gradient: LinearGradient( - colors: [kBlue, kBlueSub], + return Consumer(builder: (context, itemProvider, _) { + return InkWell( + onTap: onTap, + child: Container( + padding: EdgeInsets.symmetric( + horizontal: 5 * _deviceBlockSize, + vertical: 10, ), - borderRadius: BorderRadius.circular(7), - ), - child: Align( - alignment: Alignment.center, - child: Text( - 'Save', - style: TextStyle( - color: Colors.white, - fontSize: 5 * _deviceBlockSize, + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [kBlue, kBlueSub], ), + borderRadius: BorderRadius.circular(7), ), + child: itemProvider.isloadingButton + ? Center( + child: CircularProgressIndicator( + color: Colors.white, + ), + ) + : Align( + alignment: Alignment.center, + child: Text( + 'Save', + style: TextStyle( + color: Colors.white, + fontSize: 5 * _deviceBlockSize, + ), + ), + ), ), - ), - ); + ); + }); } } diff --git a/lib/widgets/LabelScreens/Add/save_button.dart b/lib/widgets/LabelScreens/Add/save_button.dart index 4623dbc..8d9790b 100755 --- a/lib/widgets/LabelScreens/Add/save_button.dart +++ b/lib/widgets/LabelScreens/Add/save_button.dart @@ -1,5 +1,6 @@ import 'package:cssd/config/colors.dart'; import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; import 'package:provider/provider.dart'; import '../../../config/routes.dart'; @@ -31,67 +32,68 @@ class LabelAddSaveButton extends StatelessWidget { @override Widget build(BuildContext context) { - return InkWell( - onTap: () { - if (!_form.currentState!.validate()) { - return; - } - List packages = []; - for (TextEditingController package in packageValue) { - packages.add(package.text); - } - Provider.of(context, listen: false).createLabelResult( - lotNumberCTRL.text, - cycleNumberCTRL.text, - sDateCTRL.text, - // sDateValue, - // {'id': packageValue[0], 'name': packageValue[1]}, - packages[0], - eDateCTRL.text, - // eDateValue, - striizerIdCTRL.text, - ); - showDialog( - context: context, - builder: (ctx) => AlertDialog( - content: Text('Label added.'), - actions: [ - TextButton( - onPressed: () { - Navigator.of(ctx).pop(); - }, - child: Text('Ok'), - ) - ], - ), - ).then((_) { + return Consumer(builder: (context, labelsProvider, _) { + return InkWell( + onTap: () async { + labelsProvider.setLoadingButton(); + if (!_form.currentState!.validate()) { + return; + } + List packages = []; + for (TextEditingController package in packageValue) { + packages.add(package.text); + } + await Provider.of(context, listen: false) + .createLabelResult( + lotNumberCTRL.text, + cycleNumberCTRL.text, + sDateCTRL.text, + // sDateValue, + // {'id': packageValue[0], 'name': packageValue[1]}, + packages[0], + eDateCTRL.text, + // eDateValue, + striizerIdCTRL.text, + ); Navigator.of(context).pushReplacementNamed(Routes.labelResultScreen); - }); - }, - child: Container( - padding: EdgeInsets.symmetric( - horizontal: 5 * _deviceBlockSize, - vertical: 10, - ), - // margin: - // EdgeInsets.symmetric(horizontal: 35, vertical: 15), - decoration: BoxDecoration( - gradient: LinearGradient( - colors: [kLightBlue, kLightBlueSub], + Fluttertoast.showToast( + msg: "Label added.", + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.BOTTOM, + ); + labelsProvider.resetLoadingButton(); + }, + child: Container( + padding: EdgeInsets.symmetric( + horizontal: 5 * _deviceBlockSize, + vertical: 10, ), - borderRadius: BorderRadius.circular(7), - ), - child: Align( - alignment: Alignment.center, - child: Text( - 'Save', - style: TextStyle( - color: Colors.white, - fontSize: 5 * _deviceBlockSize, + // margin: + // EdgeInsets.symmetric(horizontal: 35, vertical: 15), + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [kLightBlue, kLightBlueSub], ), + borderRadius: BorderRadius.circular(7), ), + child: labelsProvider.isloadingButton + ? Center( + child: CircularProgressIndicator( + color: Colors.white, + ), + ) + : Align( + alignment: Alignment.center, + child: Text( + 'Save', + style: TextStyle( + color: Colors.white, + fontSize: 5 * _deviceBlockSize, + ), + ), + ), ), - ), - ); + ); + }); } } diff --git a/lib/widgets/PackageScreens/Add/package_save_button.dart b/lib/widgets/PackageScreens/Add/package_save_button.dart index afc46ed..c06509a 100755 --- a/lib/widgets/PackageScreens/Add/package_save_button.dart +++ b/lib/widgets/PackageScreens/Add/package_save_button.dart @@ -1,6 +1,7 @@ import 'package:cssd/config/colors.dart'; import 'package:cssd/providers/packages.dart'; import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; import 'package:provider/provider.dart'; import '../../../config/routes.dart'; @@ -23,70 +24,73 @@ class PackageAddSaveButton extends StatelessWidget { final List itemValues; final TextEditingController nameCTRL; final TextEditingController descriptionCTRL; + // final TextEditingController udiCTRL; final String dateValue; final double _deviceBlockSize; @override Widget build(BuildContext context) { - return InkWell( - onTap: () { - if (!_form.currentState!.validate()) { - return; - } - List items = []; - for (TextEditingController item in itemValues) { - items.add(item.text); - } - Provider.of(context, listen: false) - .createPackageResult( - nameCTRL.text, - // udiCTRL.text, - items, - descriptionCTRL.text, - ); - showDialog( - context: context, - builder: (ctx) => AlertDialog( - content: Text('Package added.'), - actions: [ - TextButton( - onPressed: () { - Navigator.of(ctx).pop(); - }, - child: Text('Ok'), - ) - ], - ), - ).then((_) { - Navigator.of(context) - .pushReplacementNamed(Routes.packageResultScreen); - }); - }, - child: Container( - padding: EdgeInsets.symmetric( - horizontal: 5 * _deviceBlockSize, - vertical: 10, - ), - // margin: - // EdgeInsets.symmetric(horizontal: 35, vertical: 15), - decoration: BoxDecoration( - gradient: LinearGradient( - colors: [kPurple, kPurpleSub], - ), - borderRadius: BorderRadius.circular(7), - ), - child: Align( - alignment: Alignment.center, - child: Text( - 'Save', - style: TextStyle( - color: Colors.white, - fontSize: 5 * _deviceBlockSize, + return Consumer( + builder: (context, packageProvider, _) { + return InkWell( + onTap: () async { + packageProvider.setLoadingButton(); + if (!_form.currentState!.validate()) { + return; + } + List items = []; + for (TextEditingController item in itemValues) { + items.add(item.text); + } + await Provider.of(context, listen: false) + .createPackageResult( + nameCTRL.text, + // udiCTRL.text, + items, + descriptionCTRL.text, + ); + Navigator.of(context) + .pushReplacementNamed(Routes.packageResultScreen); + Fluttertoast.showToast( + msg: "Package added.", + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.BOTTOM, + ); + packageProvider.resetLoadingButton(); + }, + child: Container( + padding: EdgeInsets.symmetric( + horizontal: 5 * _deviceBlockSize, + vertical: 10, ), + // margin: + // EdgeInsets.symmetric(horizontal: 35, vertical: 15), + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [kPurple, kPurpleSub], + ), + borderRadius: BorderRadius.circular(7), + ), + child: packageProvider.isloadingButton + ? Center( + child: CircularProgressIndicator( + color: Colors.white, + ), + ) + : Align( + alignment: Alignment.center, + child: Text( + 'Save', + style: TextStyle( + color: Colors.white, + fontSize: 5 * _deviceBlockSize, + ), + ), + ), ), - ), - ), + ); + }, ); } } diff --git a/pubspec.lock b/pubspec.lock index f886f08..64ddfa2 100755 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,16 +5,16 @@ packages: dependency: transitive description: name: archive - sha256: "7b875fd4a20b165a3084bd2d210439b22ebc653f21cea4842729c0c30c82596b" - url: "https://pub.dev" + sha256: "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d" + url: "https://pub.flutter-io.cn" source: hosted - version: "3.4.9" + version: "3.4.10" args: dependency: transitive description: name: args sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.4.2" async: @@ -22,7 +22,7 @@ packages: description: name: async sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.11.0" barcode_scan2: @@ -30,7 +30,7 @@ packages: description: name: barcode_scan2 sha256: "847ff88888213a3b2866d98839ee6d85e4da8002df83e7971d355d24d5f31c4c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.3.0" boolean_selector: @@ -38,79 +38,79 @@ packages: description: name: boolean_selector sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.1" cached_network_image: dependency: transitive description: name: cached_network_image - sha256: f98972704692ba679db144261172a8e20feb145636c617af0eb4022132a6797f - url: "https://pub.dev" + sha256: "28ea9690a8207179c319965c13cd8df184d5ee721ae2ce60f398ced1219cea1f" + url: "https://pub.flutter-io.cn" source: hosted - version: "3.3.0" + version: "3.3.1" cached_network_image_platform_interface: dependency: transitive description: name: cached_network_image_platform_interface - sha256: "56aa42a7a01e3c9db8456d9f3f999931f1e05535b5a424271e9a38cabf066613" - url: "https://pub.dev" + sha256: "9e90e78ae72caa874a323d78fa6301b3fb8fa7ea76a8f96dc5b5bf79f283bf2f" + url: "https://pub.flutter-io.cn" source: hosted - version: "3.0.0" + version: "4.0.0" cached_network_image_web: dependency: transitive description: name: cached_network_image_web - sha256: "759b9a9f8f6ccbb66c185df805fac107f05730b1dab9c64626d1008cca532257" - url: "https://pub.dev" + sha256: "42a835caa27c220d1294311ac409a43361088625a4f23c820b006dd9bffb3316" + url: "https://pub.flutter-io.cn" source: hosted - version: "1.1.0" + version: "1.1.1" camera: dependency: "direct main" description: name: camera - sha256: "7fa53bb1c2059e58bf86b7ab506e3b2a78e42f82d365b44b013239b975a166ef" - url: "https://pub.dev" + sha256: "9499cbc2e51d8eb0beadc158b288380037618ce4e30c9acbc4fae1ac3ecb5797" + url: "https://pub.flutter-io.cn" source: hosted - version: "0.10.5+7" + version: "0.10.5+9" camera_android: dependency: transitive description: name: camera_android - sha256: "7215e38fa0be58cc3203a6e48de3636fb9b1bf93d6eeedf667f882d51b3a4bf3" - url: "https://pub.dev" + sha256: "351429510121d179b9aac5a2e8cb525c3cd6c39f4d709c5f72dfb21726e52371" + url: "https://pub.flutter-io.cn" source: hosted - version: "0.10.8+15" + version: "0.10.8+16" camera_avfoundation: dependency: transitive description: name: camera_avfoundation - sha256: "3c8dd395f18722f01b5f325ddd7f5256e9bcdce538fb9243b378ba759df3283c" - url: "https://pub.dev" + sha256: "608b56b0880722f703871329c4d7d4c2f379c8e2936940851df7fc041abc6f51" + url: "https://pub.flutter-io.cn" source: hosted - version: "0.9.13+8" + version: "0.9.13+10" camera_platform_interface: dependency: transitive description: name: camera_platform_interface - sha256: "86fd4fc597c6e455265ddb5884feb352d0171ad14b9cdf3aba30da59b25738c4" - url: "https://pub.dev" + sha256: e971ebca970f7cfee396f76ef02070b5e441b4aa04942da9c108d725f57bbd32 + url: "https://pub.flutter-io.cn" source: hosted - version: "2.6.0" + version: "2.7.2" camera_web: dependency: transitive description: name: camera_web - sha256: d4c2c571c7af04f8b10702ca16bb9ed2a26e64534171e8f75c9349b2c004d8f1 - url: "https://pub.dev" + sha256: f18ccfb33b2a7c49a52ad5aa3f07330b7422faaecbdfd9b9fe8e51182f6ad67d + url: "https://pub.flutter-io.cn" source: hosted - version: "0.3.2+3" + version: "0.3.2+4" carousel_slider: dependency: "direct main" description: name: carousel_slider sha256: "9c695cc963bf1d04a47bd6021f68befce8970bcd61d24938e1fb0918cf5d9c42" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.2.1" characters: @@ -118,7 +118,7 @@ packages: description: name: characters sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.0" checked_yaml: @@ -126,23 +126,23 @@ packages: description: name: checked_yaml sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.3" cli_util: dependency: transitive description: name: cli_util - sha256: b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7 - url: "https://pub.dev" + sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19 + url: "https://pub.flutter-io.cn" source: hosted - version: "0.4.0" + version: "0.4.1" clock: dependency: transitive description: name: clock sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.1" collection: @@ -150,7 +150,7 @@ packages: description: name: collection sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.18.0" connectivity: @@ -158,7 +158,7 @@ packages: description: name: connectivity sha256: a8e91263cf3e25fb5cc95e19dfde4999e32a648ac3b9e8a558a28165731678f8 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.6" connectivity_for_web: @@ -166,7 +166,7 @@ packages: description: name: connectivity_for_web sha256: "01a390c1d5adc2ed1fa1f52d120c07fe9fd01166a93f965a832fd6cfc0ea6482" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.4.0+1" connectivity_macos: @@ -174,7 +174,7 @@ packages: description: name: connectivity_macos sha256: "51ae08d5162eca9669b9d8951ed83ce19c5355a81149f94e4dee2740beb93628" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.2.1+2" connectivity_platform_interface: @@ -182,7 +182,7 @@ packages: description: name: connectivity_platform_interface sha256: "2d82e942df9d49f29a24bb07fb5ce085d4a53e47818c62364d2b6deb9e0d7a8e" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.1" convert: @@ -190,7 +190,7 @@ packages: description: name: convert sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.1.1" cross_file: @@ -198,7 +198,7 @@ packages: description: name: cross_file sha256: fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.3.3+8" crypto: @@ -206,7 +206,7 @@ packages: description: name: crypto sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.3" cupertino_icons: @@ -214,7 +214,7 @@ packages: description: name: cupertino_icons sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.6" dio: @@ -222,7 +222,7 @@ packages: description: name: dio sha256: "797e1e341c3dd2f69f2dad42564a6feff3bfb87187d05abb93b9609e6f1645c3" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "5.4.0" double_back_to_close_app: @@ -230,7 +230,7 @@ packages: description: name: double_back_to_close_app sha256: d19ce4e2f8d2cb9f35bdbc90eecd5c731cc0e6216f5e8f14e7d1e076dafb344a - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" equatable: @@ -238,7 +238,7 @@ packages: description: name: equatable sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.5" fake_async: @@ -246,7 +246,7 @@ packages: description: name: fake_async sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.1" ffi: @@ -254,7 +254,7 @@ packages: description: name: ffi sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" file: @@ -262,7 +262,7 @@ packages: description: name: file sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "7.0.0" file_picker: @@ -270,7 +270,7 @@ packages: description: name: file_picker sha256: "4e42aacde3b993c5947467ab640882c56947d9d27342a5b6f2895b23956954a6" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "6.1.1" fixnum: @@ -278,7 +278,7 @@ packages: description: name: fixnum sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.0" flutter: @@ -291,23 +291,23 @@ packages: description: name: flutter_cache_manager sha256: "8207f27539deb83732fdda03e259349046a39a4c767269285f449ade355d54ba" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.3.1" flutter_downloader: dependency: "direct main" description: name: flutter_downloader - sha256: "36c16cc6657274f3cf7ccb681aeca89df62531ff5956f85e175f6be4b8d6b140" - url: "https://pub.dev" + sha256: e130001cf85d8d7450b8318a4670c19e495dd8c102ad4b15a512e9405e7c451d + url: "https://pub.flutter-io.cn" source: hosted - version: "1.11.5" + version: "1.11.6" flutter_image_compress: dependency: "direct main" description: name: flutter_image_compress sha256: f159d2e8c4ed04b8e36994124fd4a5017a0f01e831ae3358c74095c340e9ae5e - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" flutter_image_compress_common: @@ -315,7 +315,7 @@ packages: description: name: flutter_image_compress_common sha256: "7cad12802628706655920089cfe9ee1d1098300e7f39a079eb160458bbc47652" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.3" flutter_image_compress_macos: @@ -323,7 +323,7 @@ packages: description: name: flutter_image_compress_macos sha256: fea1e3d71150d03373916b832c49b5c2f56c3e7e13da82a929274a2c6f88251e - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.1" flutter_image_compress_platform_interface: @@ -331,7 +331,7 @@ packages: description: name: flutter_image_compress_platform_interface sha256: eb4f055138b29b04498ebcb6d569aaaee34b64d75fb74ea0d40f9790bf47ee9d - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.3" flutter_image_compress_web: @@ -339,7 +339,7 @@ packages: description: name: flutter_image_compress_web sha256: da41cc3859f19d11c7d10be615f6a9dcf0907e7daffde7442bf4cc2486663660 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.1.3+2" flutter_launcher_icons: @@ -347,7 +347,7 @@ packages: description: name: flutter_launcher_icons sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.13.1" flutter_lints: @@ -355,7 +355,7 @@ packages: description: name: flutter_lints sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.1" flutter_phoenix: @@ -363,7 +363,7 @@ packages: description: name: flutter_phoenix sha256: "39589dac934ea476d0e43fb60c1ddfba58f14960743640c8250dea11c4333378" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.1" flutter_plugin_android_lifecycle: @@ -371,7 +371,7 @@ packages: description: name: flutter_plugin_android_lifecycle sha256: b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.17" flutter_test: @@ -384,44 +384,52 @@ packages: description: flutter source: sdk version: "0.0.0" + fluttertoast: + dependency: "direct main" + description: + name: fluttertoast + sha256: dfdde255317af381bfc1c486ed968d5a43a2ded9c931e87cbecd88767d6a71c1 + url: "https://pub.flutter-io.cn" + source: hosted + version: "8.2.4" font_awesome_flutter: dependency: "direct main" description: name: font_awesome_flutter sha256: "52671aea66da73b58d42ec6d0912b727a42248dd9a7c76d6c20f275783c48c08" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "10.6.0" http: dependency: "direct main" description: name: http - sha256: d4872660c46d929f6b8a9ef4e7a7eff7e49bbf0c4ec3f385ee32df5119175139 - url: "https://pub.dev" + sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba + url: "https://pub.flutter-io.cn" source: hosted - version: "1.1.2" + version: "1.2.0" http_parser: dependency: transitive description: name: http_parser sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.0.2" image: dependency: transitive description: name: image - sha256: "028f61960d56f26414eb616b48b04eb37d700cbe477b7fb09bf1d7ce57fd9271" - url: "https://pub.dev" + sha256: "004a2e90ce080f8627b5a04aecb4cdfac87d2c3f3b520aa291260be5a32c033d" + url: "https://pub.flutter-io.cn" source: hosted - version: "4.1.3" + version: "4.1.4" image_picker: dependency: "direct main" description: name: image_picker sha256: b4f02353277b39f350093a2460b32b43eafaa3bfc4f92e8d90926698d8d78df6 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.7.5+4" image_picker_for_web: @@ -429,7 +437,7 @@ packages: description: name: image_picker_for_web sha256: "869fe8a64771b7afbc99fc433a5f7be2fea4d1cb3d7c11a48b6b579eb9c797f0" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.0" image_picker_gallery_camera: @@ -437,23 +445,23 @@ packages: description: name: image_picker_gallery_camera sha256: "8fedbb3ed82f5bf39c1370234b092ccedf0e01a741cc68a36ba9ea2982d8ca01" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.2.2" image_picker_platform_interface: dependency: transitive description: name: image_picker_platform_interface - sha256: ed9b00e63977c93b0d2d2b343685bed9c324534ba5abafbb3dfbd6a780b1b514 - url: "https://pub.dev" + sha256: fa4e815e6fcada50e35718727d83ba1c92f1edf95c0b4436554cec301b56233b + url: "https://pub.flutter-io.cn" source: hosted - version: "2.9.1" + version: "2.9.3" intl: dependency: "direct main" description: name: intl sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.19.0" js: @@ -461,7 +469,7 @@ packages: description: name: js sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.6.7" json_annotation: @@ -469,7 +477,7 @@ packages: description: name: json_annotation sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.8.1" lints: @@ -477,7 +485,7 @@ packages: description: name: lints sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.0" matcher: @@ -485,7 +493,7 @@ packages: description: name: matcher sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.12.16" material_color_utilities: @@ -493,7 +501,7 @@ packages: description: name: material_color_utilities sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.5.0" meta: @@ -501,23 +509,23 @@ packages: description: name: meta sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.10.0" mime: dependency: transitive description: name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e - url: "https://pub.dev" + sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" + url: "https://pub.flutter-io.cn" source: hosted - version: "1.0.4" + version: "1.0.5" multiselect_formfield: dependency: "direct main" description: name: multiselect_formfield sha256: "3a28c41093a53b4dc30ee0e4f73f67169a8be883dd3b17a4561467185ce1adf8" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.1.7" nested: @@ -525,7 +533,7 @@ packages: description: name: nested sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.0" network_image: @@ -533,7 +541,7 @@ packages: description: name: network_image sha256: d257e7601f72089f18f1d05e62c9cd100f49bd256c30c98cba0b1cdaf3d517e3 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.1.1" octo_image: @@ -541,7 +549,7 @@ packages: description: name: octo_image sha256: "45b40f99622f11901238e18d48f5f12ea36426d8eced9f4cbf58479c7aa2430d" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.0" path: @@ -549,111 +557,111 @@ packages: description: name: path sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.8.3" path_provider: dependency: "direct main" description: name: path_provider - sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa - url: "https://pub.dev" + sha256: b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b + url: "https://pub.flutter-io.cn" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72 - url: "https://pub.dev" + sha256: "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668" + url: "https://pub.flutter-io.cn" source: hosted - version: "2.2.1" + version: "2.2.2" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" - url: "https://pub.dev" + sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f" + url: "https://pub.flutter-io.cn" source: hosted - version: "2.3.1" + version: "2.3.2" path_provider_linux: dependency: transitive description: name: path_provider_linux sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.1" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface - sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" - url: "https://pub.dev" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.flutter-io.cn" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: name: path_provider_windows sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.1" permission_handler: dependency: "direct main" description: name: permission_handler - sha256: "860c6b871c94c78e202dc69546d4d8fd84bd59faeb36f8fb9888668a53ff4f78" - url: "https://pub.dev" + sha256: "45ff3fbcb99040fde55c528d5e3e6ca29171298a85436274d49c6201002087d6" + url: "https://pub.flutter-io.cn" source: hosted - version: "11.1.0" + version: "11.2.0" permission_handler_android: dependency: transitive description: name: permission_handler_android - sha256: "2f1bec180ee2f5665c22faada971a8f024761f632e93ddc23310487df52dcfa6" - url: "https://pub.dev" + sha256: "758284a0976772f9c744d6384fc5dc4834aa61e3f7aa40492927f244767374eb" + url: "https://pub.flutter-io.cn" source: hosted - version: "12.0.1" + version: "12.0.3" permission_handler_apple: dependency: transitive description: name: permission_handler_apple - sha256: "1a816084338ada8d574b1cb48390e6e8b19305d5120fe3a37c98825bacc78306" - url: "https://pub.dev" + sha256: c6bf440f80acd2a873d3d91a699e4cc770f86e7e6b576dda98759e8b92b39830 + url: "https://pub.flutter-io.cn" source: hosted - version: "9.2.0" + version: "9.3.0" permission_handler_html: dependency: transitive description: name: permission_handler_html - sha256: "11b762a8c123dced6461933a88ea1edbbe036078c3f9f41b08886e678e7864df" - url: "https://pub.dev" + sha256: "54bf176b90f6eddd4ece307e2c06cf977fb3973719c35a93b85cc7093eb6070d" + url: "https://pub.flutter-io.cn" source: hosted - version: "0.1.0+2" + version: "0.1.1" permission_handler_platform_interface: dependency: transitive description: name: permission_handler_platform_interface - sha256: d87349312f7eaf6ce0adaf668daf700ac5b06af84338bd8b8574dfbd93ffe1a1 - url: "https://pub.dev" + sha256: "5c43148f2bfb6d14c5a8162c0a712afe891f2d847f35fcff29c406b37da43c3c" + url: "https://pub.flutter-io.cn" source: hosted - version: "4.0.2" + version: "4.1.0" permission_handler_windows: dependency: transitive description: name: permission_handler_windows - sha256: "1e8640c1e39121128da6b816d236e714d2cf17fac5a105dd6acdd3403a628004" - url: "https://pub.dev" + sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e" + url: "https://pub.flutter-io.cn" source: hosted - version: "0.2.0" + version: "0.2.1" petitparser: dependency: transitive description: name: petitparser sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "6.0.2" pinch_zoom: @@ -661,39 +669,39 @@ packages: description: name: pinch_zoom sha256: "8e430a215db198099a708f334620e223cbea3fdc477b717d6535ab852994985e" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.0" platform: dependency: transitive description: name: platform - sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59" - url: "https://pub.dev" + sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" + url: "https://pub.flutter-io.cn" source: hosted - version: "3.1.3" + version: "3.1.4" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: f4f88d4a900933e7267e2b353594774fc0d07fb072b47eedcd5b54e1ea3269f8 - url: "https://pub.dev" + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.flutter-io.cn" source: hosted - version: "2.1.7" + version: "2.1.8" pointycastle: dependency: transitive description: name: pointycastle - sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" - url: "https://pub.dev" + sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" + url: "https://pub.flutter-io.cn" source: hosted - version: "3.7.3" + version: "3.7.4" protobuf: dependency: transitive description: name: protobuf sha256: "68645b24e0716782e58948f8467fd42a880f255096a821f9e7d0ec625b00c84d" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.1.0" provider: @@ -701,7 +709,7 @@ packages: description: name: provider sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "6.1.1" random_string: @@ -709,7 +717,7 @@ packages: description: name: random_string sha256: "03b52435aae8cbdd1056cf91bfc5bf845e9706724dd35ae2e99fa14a1ef79d02" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.3.1" rxdart: @@ -717,7 +725,7 @@ packages: description: name: rxdart sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.27.7" shared_preferences: @@ -725,7 +733,7 @@ packages: description: name: shared_preferences sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.2" shared_preferences_android: @@ -733,39 +741,39 @@ packages: description: name: shared_preferences_android sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.1" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7" - url: "https://pub.dev" + sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c" + url: "https://pub.flutter-io.cn" source: hosted - version: "2.3.4" + version: "2.3.5" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.3.2" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - sha256: d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a - url: "https://pub.dev" + sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" + url: "https://pub.flutter-io.cn" source: hosted - version: "2.3.1" + version: "2.3.2" shared_preferences_web: dependency: transitive description: name: shared_preferences_web sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.2" shared_preferences_windows: @@ -773,7 +781,7 @@ packages: description: name: shared_preferences_windows sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.3.2" sky_engine: @@ -786,7 +794,7 @@ packages: description: name: source_span sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.10.0" sprintf: @@ -794,31 +802,31 @@ packages: description: name: sprintf sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "7.0.0" sqflite: dependency: transitive description: name: sqflite - sha256: "591f1602816e9c31377d5f008c2d9ef7b8aca8941c3f89cc5fd9d84da0c38a9a" - url: "https://pub.dev" + sha256: c2c32eb0c74021d987336522acc3b6bf0082fbd0c540c36a9cf4ddb8ba891ddc + url: "https://pub.flutter-io.cn" source: hosted - version: "2.3.0" + version: "2.3.1" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: bb4738f15b23352822f4c42a531677e5c6f522e079461fd240ead29d8d8a54a6 - url: "https://pub.dev" + sha256: "28d8c66baee4968519fb8bd6cdbedad982d6e53359091f0b74544a9f32ec72d5" + url: "https://pub.flutter-io.cn" source: hosted - version: "2.5.0+2" + version: "2.5.3" stack_trace: dependency: transitive description: name: stack_trace sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.11.1" stream_channel: @@ -826,7 +834,7 @@ packages: description: name: stream_channel sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.2" stream_transform: @@ -834,7 +842,7 @@ packages: description: name: stream_transform sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" string_scanner: @@ -842,23 +850,23 @@ packages: description: name: string_scanner sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.2.0" synchronized: dependency: transitive description: name: synchronized - sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60" - url: "https://pub.dev" + sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558" + url: "https://pub.flutter-io.cn" source: hosted - version: "3.1.0" + version: "3.1.0+1" term_glyph: dependency: transitive description: name: term_glyph sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.2.1" test_api: @@ -866,7 +874,7 @@ packages: description: name: test_api sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.6.1" typed_data: @@ -874,39 +882,39 @@ packages: description: name: typed_data sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.2" url_launcher: dependency: "direct main" description: name: url_launcher - sha256: e9aa5ea75c84cf46b3db4eea212523591211c3cf2e13099ee4ec147f54201c86 - url: "https://pub.dev" + sha256: c512655380d241a337521703af62d2c122bf7b77a46ff7dd750092aa9433499c + url: "https://pub.flutter-io.cn" source: hosted - version: "6.2.2" + version: "6.2.4" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "31222ffb0063171b526d3e569079cf1f8b294075ba323443fdc690842bfd4def" - url: "https://pub.dev" + sha256: "507dc655b1d9cb5ebc756032eb785f114e415f91557b73bf60b7e201dfedeb2f" + url: "https://pub.flutter-io.cn" source: hosted - version: "6.2.0" + version: "6.2.2" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: bba3373219b7abb6b5e0d071b0fe66dfbe005d07517a68e38d4fc3638f35c6d3 - url: "https://pub.dev" + sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03" + url: "https://pub.flutter-io.cn" source: hosted - version: "6.2.1" + version: "6.2.4" url_launcher_linux: dependency: transitive description: name: url_launcher_linux sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.1.1" url_launcher_macos: @@ -914,47 +922,47 @@ packages: description: name: url_launcher_macos sha256: b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.1.0" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface - sha256: "980e8d9af422f477be6948bdfb68df8433be71f5743a188968b0c1b887807e50" - url: "https://pub.dev" + sha256: a932c3a8082e118f80a475ce692fde89dc20fddb24c57360b96bc56f7035de1f + url: "https://pub.flutter-io.cn" source: hosted - version: "2.2.0" + version: "2.3.1" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: "7286aec002c8feecc338cc33269e96b73955ab227456e9fb2a91f7fab8a358e9" - url: "https://pub.dev" + sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b + url: "https://pub.flutter-io.cn" source: hosted - version: "2.2.2" + version: "2.2.3" url_launcher_windows: dependency: transitive description: name: url_launcher_windows sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.1.1" uuid: dependency: transitive description: name: uuid - sha256: "22c94e5ad1e75f9934b766b53c742572ee2677c56bc871d850a57dad0f82127f" - url: "https://pub.dev" + sha256: cd210a09f7c18cbe5a02511718e0334de6559871052c90a90c0cca46a4aa81c8 + url: "https://pub.flutter-io.cn" source: hosted - version: "4.2.2" + version: "4.3.3" vector_math: dependency: transitive description: name: vector_math sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.4" web: @@ -962,31 +970,31 @@ packages: description: name: web sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.3.0" win32: dependency: transitive description: name: win32 - sha256: b0f37db61ba2f2e9b7a78a1caece0052564d1bc70668156cf3a29d676fe4e574 - url: "https://pub.dev" + sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" + url: "https://pub.flutter-io.cn" source: hosted - version: "5.1.1" + version: "5.2.0" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2" - url: "https://pub.dev" + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + url: "https://pub.flutter-io.cn" source: hosted - version: "1.0.3" + version: "1.0.4" xml: dependency: transitive description: name: xml sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "6.5.0" yaml: @@ -994,7 +1002,7 @@ packages: description: name: yaml sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.1.2" sdks: diff --git a/pubspec.yaml b/pubspec.yaml index 2731eb9..f26be9b 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -46,6 +46,7 @@ dependencies: permission_handler: ^11.1.0 carousel_slider: ^4.2.1 pinch_zoom: ^2.0.0 + fluttertoast: ^8.2.4 # video_player: ^0.10.11+2 dev_dependencies: