diff --git a/lib/pages/dynamics/tab/controller.dart b/lib/pages/dynamics/tab/controller.dart index 25b9692d4..283ee94c2 100644 --- a/lib/pages/dynamics/tab/controller.dart +++ b/lib/pages/dynamics/tab/controller.dart @@ -23,9 +23,7 @@ class DynamicsTabController extends CommonController { @override Future onRefresh() async { if (dynamicsType == 'all') { - if (mainController.navigationBars[1]['count'] != 0) { - mainController.clearUnread(); - } + mainController.setCount(); } offset = ''; await queryData(); diff --git a/lib/pages/main/controller.dart b/lib/pages/main/controller.dart index b42f5a638..fdb732f49 100644 --- a/lib/pages/main/controller.dart +++ b/lib/pages/main/controller.dart @@ -49,34 +49,30 @@ class MainController extends GetxController { _lastCheckAt = DateTime.now().millisecondsSinceEpoch; } getUnreadDynamic(); - } else { - checkDynamic = false; } } } void getUnreadDynamic() async { - if (!userLogin.value || dynIndex == null || dynIndex == -1) { + if (!userLogin.value || dynIndex == -1) { return; } await GrpcRepo.dynRed().then((res) { if (res['status']) { - navigationBars[dynIndex!]['count'] = res['data']; + setCount(res['data']); } }); + } + + void setCount([int count = 0]) async { + dynIndex ??= navigationBars.indexWhere((e) => e['id'] == 1); + if (dynIndex == -1 || navigationBars[dynIndex!]['count'] == count) return; + navigationBars[dynIndex!]['count'] = count; // 修改 count 属性为新的值 navigationBars.refresh(); } - void clearUnread() async { - if (dynamicBadgeType != DynamicBadgeMode.hidden) { - navigationBars[dynIndex!]['count'] = 0; // 修改 count 属性为新的值 - navigationBars.refresh(); - } - } - void checkUnreadDynamic() { - if (dynIndex == null || - dynIndex == -1 || + if (dynIndex == -1 || !userLogin.value || dynamicBadgeType == DynamicBadgeMode.hidden || !checkDynamic) return; diff --git a/lib/pages/main/view.dart b/lib/pages/main/view.dart index 43a365874..651e8b91e 100644 --- a/lib/pages/main/view.dart +++ b/lib/pages/main/view.dart @@ -110,7 +110,7 @@ class _MainAppState extends State _lastSelectTime = DateTime.now().millisecondsSinceEpoch; } _dynamicController.flag = true; - _mainController.clearUnread(); + _mainController.setCount(); } else { _dynamicController.flag = false; }