From c567122d84e13f40fb72ee4cbe5a6ac615ad7387 Mon Sep 17 00:00:00 2001 From: debuggerx Date: Tue, 18 Jan 2022 18:58:18 +0800 Subject: [PATCH] feat: fix some bugs. --- app/3rd_party/cherry_toast/lib/cherry_toast.dart | 12 ++++++++++-- app/lib/http/api.dart | 2 ++ app/lib/widgets/dde_markdown_field.dart | 1 - app/lib/widgets/market.dart | 1 - app/lib/widgets/table_cell_shortcut_listener.dart | 7 +++---- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/3rd_party/cherry_toast/lib/cherry_toast.dart b/app/3rd_party/cherry_toast/lib/cherry_toast.dart index 58e1d9f..048f494 100755 --- a/app/3rd_party/cherry_toast/lib/cherry_toast.dart +++ b/app/3rd_party/cherry_toast/lib/cherry_toast.dart @@ -287,6 +287,8 @@ class _CherryToastState extends State with TickerProviderStateMixin late Animation offsetAnimation; late AnimationController slideController; late BoxDecoration toastDecoration; + + bool _dismissed = false; @override void initState() { @@ -311,7 +313,10 @@ class _CherryToastState extends State with TickerProviderStateMixin Timer(this.widget.toastDuration, () { slideController.reverse(); Timer(this.widget.animationDuration, () { - if (mounted) Navigator.pop(context); + if (mounted && !_dismissed) { + _dismissed = true; + Navigator.pop(context); + } }); }); } @@ -463,7 +468,10 @@ class _CherryToastState extends State with TickerProviderStateMixin onTap: () { slideController.reverse(); Timer(this.widget.animationDuration, () { - if (mounted) Navigator.pop(context); + if (mounted && !_dismissed) { + _dismissed = true; + Navigator.pop(context); + } }); }, child: Icon(Icons.close, color: Colors.grey[500], size: CLOSE_BUTTON_SIZE), diff --git a/app/lib/http/api.dart b/app/lib/http/api.dart index 274c862..215d6ea 100644 --- a/app/lib/http/api.dart +++ b/app/lib/http/api.dart @@ -52,6 +52,8 @@ class Api { if (builder is GetStatusCodeFunc) return builder({"statusCode": resp.statusCode}); T? res; try { + if (resp.statusCode != HttpStatus.ok && resp.bodyBytes.length == 0) + throw HttpErrorCode(resp.statusCode, message: 'No resp body'); var decodeBody = json.decode(utf8.decode(resp.bodyBytes)); res = decodeBody is Map ? builder(decodeBody) : builder({'list': decodeBody}); } catch (e) { diff --git a/app/lib/widgets/dde_markdown_field.dart b/app/lib/widgets/dde_markdown_field.dart index 0dc0edb..cb3b5ae 100644 --- a/app/lib/widgets/dde_markdown_field.dart +++ b/app/lib/widgets/dde_markdown_field.dart @@ -6,7 +6,6 @@ import 'package:dde_gesture_manager/utils/helper.dart'; import 'package:dde_gesture_manager/utils/notificator.dart'; import 'package:flutter/material.dart'; import 'package:markdown_editor_ot/markdown_editor.dart'; -import 'package:url_launcher/url_launcher.dart'; class DMarkdownField extends StatefulWidget { const DMarkdownField({ diff --git a/app/lib/widgets/market.dart b/app/lib/widgets/market.dart index 816bdc2..2d89144 100644 --- a/app/lib/widgets/market.dart +++ b/app/lib/widgets/market.dart @@ -34,7 +34,6 @@ class _MarketWidgetState extends State { MarketSortType _type = MarketSortType.recommend; String? _selected; String? _hovering; - int _refreshKey = 0; List _likedSchemes = []; @override diff --git a/app/lib/widgets/table_cell_shortcut_listener.dart b/app/lib/widgets/table_cell_shortcut_listener.dart index 7d6e1fe..db18ed1 100644 --- a/app/lib/widgets/table_cell_shortcut_listener.dart +++ b/app/lib/widgets/table_cell_shortcut_listener.dart @@ -23,8 +23,7 @@ class TableCellShortcutListener extends StatefulWidget { class _TableCellShortcutListenerState extends State { List _shortcut = []; - bool inputMode = false; - FocusNode _focusNode = FocusNode(); + final FocusNode _focusNode = FocusNode(); _handleFocusChange() { if (!_focusNode.hasFocus) { @@ -43,6 +42,7 @@ class _TableCellShortcutListenerState extends State { @override void initState() { + super.initState(); var __shortcut = widget.initShortcut.split('+'); __shortcut.forEach((name) { var keyNames = getPhysicalKeyNamesByRealName(name); @@ -50,7 +50,6 @@ class _TableCellShortcutListenerState extends State { }); _shortcut.sort(); _focusNode.addListener(_handleFocusChange); - super.initState(); } @override @@ -70,8 +69,8 @@ class _TableCellShortcutListenerState extends State { onTap: () { setState(() { _shortcut = []; - inputMode = true; }); + _focusNode.requestFocus(); }, child: Focus( autofocus: true,