diff --git a/README.md b/README.md index fcd01be..b127990 100644 --- a/README.md +++ b/README.md @@ -75,3 +75,7 @@ rSize(`value`) `value` is design `pt` ### 使用自动生成的图片 假设你有一张图片`assets/live/user.png`,你只需要使用`R.ASSETS_LIVE_USER_PNG`即可使用该图片 + +## TODO LIST + +* [ ] 迁移GSDialog 到 BotToast diff --git a/lib/main.dart b/lib/main.dart index 5081ac8..51d9897 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -2,6 +2,7 @@ import 'dart:convert'; import 'dart:io'; import 'package:amap_location_fluttify/amap_location_fluttify.dart'; +import 'package:bot_toast/bot_toast.dart'; import 'package:camera/camera.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -224,6 +225,8 @@ class MyAppState extends State { child: StoreBuilder(builder: (context, store) { return OKToast( child: MaterialApp( + builder: BotToastInit(), + navigatorObservers: [BotToastNavigatorObserver()], localizationsDelegates: [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, diff --git a/lib/pages/live/video/pick_topic_page.dart b/lib/pages/live/video/pick_topic_page.dart index f40b71e..dad0e0b 100644 --- a/lib/pages/live/video/pick_topic_page.dart +++ b/lib/pages/live/video/pick_topic_page.dart @@ -6,6 +6,7 @@ import 'package:recook/constants/api.dart'; import 'package:recook/constants/header.dart'; import 'package:recook/manager/http_manager.dart'; import 'package:recook/pages/live/models/topic_list_model.dart'; +import 'package:recook/widgets/progress/re_toast.dart'; class PickTopicPage extends StatefulWidget { final Function(TopicListModel model) onPick; @@ -79,27 +80,31 @@ class _PickTopicPageState extends State { color: Color(0xFFFFDB2D2D), height: rSize(28), minWidth: rSize(60), - onPressed: () { + onPressed: () async { if (TextUtil.isEmpty(_editingController.text)) { - GSDialog.of(context).showError(context, '话题不能为空'); - } else { - GSDialog.of(context).showLoadingDialog(context, '创建话题'); - HttpManager.post( + ReToast.err(text: '话题不能为空'); + return; + } + final cancel = ReToast.loading(text: '创建话题'); + try { + ResultData result = await HttpManager.post( LiveAPI.topicAddNew, {'title': _editingController.text}, - ).then((resultData) { - GSDialog.of(context).dismiss(context); - if (resultData.data['data']['topicId'] is int) - widget.onPick(TopicListModel( - title: _editingController.text, - id: resultData.data['data']['topicId'], - )); - Navigator.pop(context); - }).catchError((e) { - GSDialog.of(context).dismiss(context); - GSDialog.of(context).showError(context, '创建失败'); - }); + ); + cancel(); + if (result.data['data']['topicId'] is int) { + widget.onPick(TopicListModel( + title: _editingController.text, + id: result.data['data']['topicId'], + )); + return; + } + } catch (e) { + cancel(); + ReToast.err(text: '创建失败'); } + + Navigator.pop(context); }, child: Text('提交'), shape: RoundedRectangleBorder( diff --git a/lib/widgets/progress/re_toast.dart b/lib/widgets/progress/re_toast.dart new file mode 100644 index 0000000..5517daf --- /dev/null +++ b/lib/widgets/progress/re_toast.dart @@ -0,0 +1,23 @@ +import 'package:bot_toast/bot_toast.dart'; +import 'package:recook/widgets/progress/loading_dialog.dart'; + +class ReToast { + static Function loading({String text}) { + return BotToast.showCustomLoading( + toastBuilder: (func) { + return LoadingDialog(text: text ?? ''); + }, + ); + } + + static Function err({String text}) { + return BotToast.showCustomText( + toastBuilder: (func) { + return StatusDialog( + status: Status.error, + text: text ?? '', + ); + }, + ); + } +} diff --git a/pubspec.lock b/pubspec.lock index 7f065ba..1aa9b3c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -71,6 +71,13 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0-nullsafety.1" + bot_toast: + dependency: "direct main" + description: + name: bot_toast + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.5" build: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 22485aa..e88fdb5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -226,6 +226,8 @@ dependencies: git: url: http://159.75.73.143:8080/laiiihz/power_logger.git + bot_toast: ^3.0.5 + dev_dependencies: flutter_test: sdk: flutter