Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-07-28 20:42:07 +08:00
parent e5c86e1d2e
commit 2325814f6d
2 changed files with 25 additions and 24 deletions

View File

@@ -36,15 +36,13 @@ class MainController extends GetxController
late bool checkDynamic = Pref.checkDynamic; late bool checkDynamic = Pref.checkDynamic;
late int dynamicPeriod = Pref.dynamicPeriod * 60 * 1000; late int dynamicPeriod = Pref.dynamicPeriod * 60 * 1000;
late int _lastCheckDynamicAt = 0; late int _lastCheckDynamicAt = 0;
late int dynIndex = -1; late bool hasDyn = false;
late final DynamicsController dynamicController = Get.put( late final DynamicsController dynamicController = Get.put(
DynamicsController(), DynamicsController(),
); );
late int homeIndex = -1; late bool hasHome = false;
late final HomeController? homeController = homeIndex == -1 late final HomeController homeController = Get.put(HomeController());
? null
: Get.put(HomeController());
late DynamicBadgeMode msgBadgeMode = Pref.msgBadgeMode; late DynamicBadgeMode msgBadgeMode = Pref.msgBadgeMode;
late Set<MsgUnReadType> msgUnReadTypes = Pref.msgUnReadTypeV2; late Set<MsgUnReadType> msgUnReadTypes = Pref.msgUnReadTypeV2;
@@ -84,9 +82,9 @@ class MainController extends GetxController
} }
dynamicBadgeMode = DynamicBadgeMode.values[Pref.dynamicBadgeMode]; dynamicBadgeMode = DynamicBadgeMode.values[Pref.dynamicBadgeMode];
dynIndex = navigationBars.indexOf(NavigationBarType.dynamics); hasDyn = navigationBars.contains(NavigationBarType.dynamics);
if (dynamicBadgeMode != DynamicBadgeMode.hidden) { if (dynamicBadgeMode != DynamicBadgeMode.hidden) {
if (dynIndex != -1) { if (hasDyn) {
if (checkDynamic) { if (checkDynamic) {
_lastCheckDynamicAt = DateTime.now().millisecondsSinceEpoch; _lastCheckDynamicAt = DateTime.now().millisecondsSinceEpoch;
} }
@@ -94,9 +92,9 @@ class MainController extends GetxController
} }
} }
homeIndex = navigationBars.indexOf(NavigationBarType.home); hasHome = navigationBars.contains(NavigationBarType.home);
if (msgBadgeMode != DynamicBadgeMode.hidden) { if (msgBadgeMode != DynamicBadgeMode.hidden) {
if (homeIndex != -1) { if (hasHome) {
lastCheckUnreadAt = DateTime.now().millisecondsSinceEpoch; lastCheckUnreadAt = DateTime.now().millisecondsSinceEpoch;
queryUnreadMsg(); queryUnreadMsg();
} }
@@ -152,7 +150,7 @@ class MainController extends GetxController
Future<void> queryUnreadMsg([bool isChangeType = false]) async { Future<void> queryUnreadMsg([bool isChangeType = false]) async {
if (!accountService.isLogin.value || if (!accountService.isLogin.value ||
homeIndex == -1 || !hasHome ||
msgUnReadTypes.isEmpty || msgUnReadTypes.isEmpty ||
msgBadgeMode == DynamicBadgeMode.hidden) { msgBadgeMode == DynamicBadgeMode.hidden) {
msgUnReadCount.value = ''; msgUnReadCount.value = '';
@@ -178,7 +176,7 @@ class MainController extends GetxController
} }
void getUnreadDynamic() { void getUnreadDynamic() {
if (!accountService.isLogin.value || dynIndex == -1) { if (!accountService.isLogin.value || !hasDyn) {
return; return;
} }
DynGrpc.dynRed().then((res) { DynGrpc.dynRed().then((res) {
@@ -189,12 +187,12 @@ class MainController extends GetxController
} }
void setDynCount([int count = 0]) { void setDynCount([int count = 0]) {
if (dynIndex == -1) return; if (!hasDyn) return;
dynCount.value = count; dynCount.value = count;
} }
void checkUnreadDynamic() { void checkUnreadDynamic() {
if (dynIndex == -1 || if (!hasDyn ||
!accountService.isLogin.value || !accountService.isLogin.value ||
dynamicBadgeMode == DynamicBadgeMode.hidden || dynamicBadgeMode == DynamicBadgeMode.hidden ||
!checkDynamic) { !checkDynamic) {
@@ -227,14 +225,14 @@ class MainController extends GetxController
} }
void checkDefaultSearch([bool shouldCheck = false]) { void checkDefaultSearch([bool shouldCheck = false]) {
if (homeController?.enableSearchWord == true) { if (hasHome && homeController.enableSearchWord) {
if (shouldCheck && if (shouldCheck &&
navigationBars[selectedIndex.value] != NavigationBarType.home) { navigationBars[selectedIndex.value] != NavigationBarType.home) {
return; return;
} }
int now = DateTime.now().millisecondsSinceEpoch; int now = DateTime.now().millisecondsSinceEpoch;
if (now - homeController!.lateCheckSearchAt >= _period) { if (now - homeController.lateCheckSearchAt >= _period) {
homeController! homeController
..lateCheckSearchAt = now ..lateCheckSearchAt = now
..querySearchDefault(); ..querySearchDefault();
} }
@@ -243,7 +241,7 @@ class MainController extends GetxController
void checkUnread([bool shouldCheck = false]) { void checkUnread([bool shouldCheck = false]) {
if (accountService.isLogin.value && if (accountService.isLogin.value &&
homeIndex != -1 && hasHome &&
msgBadgeMode != DynamicBadgeMode.hidden) { msgBadgeMode != DynamicBadgeMode.hidden) {
if (shouldCheck && if (shouldCheck &&
navigationBars[selectedIndex.value] != NavigationBarType.home) { navigationBars[selectedIndex.value] != NavigationBarType.home) {
@@ -289,7 +287,7 @@ class MainController extends GetxController
const Duration(milliseconds: 500), const Duration(milliseconds: 500),
() { () {
if (currentNav == NavigationBarType.home) { if (currentNav == NavigationBarType.home) {
homeController!.onRefresh(); homeController.onRefresh();
} else if (currentNav == NavigationBarType.dynamics) { } else if (currentNav == NavigationBarType.dynamics) {
dynamicController.onRefresh(); dynamicController.onRefresh();
} }
@@ -297,7 +295,7 @@ class MainController extends GetxController
); );
} else { } else {
if (currentNav == NavigationBarType.home) { if (currentNav == NavigationBarType.home) {
homeController!.toTopOrRefresh(); homeController.toTopOrRefresh();
} else if (currentNav == NavigationBarType.dynamics) { } else if (currentNav == NavigationBarType.dynamics) {
dynamicController.toTopOrRefresh(); dynamicController.toTopOrRefresh();
} }
@@ -306,6 +304,12 @@ class MainController extends GetxController
} }
} }
void setSearchBar() {
if (hasHome) {
homeController.searchBarStream?.add(true);
}
}
@override @override
void onClose() { void onClose() {
bottomBarStream?.close(); bottomBarStream?.close();

View File

@@ -5,7 +5,6 @@ import 'package:PiliPlus/common/widgets/tabs.dart';
import 'package:PiliPlus/models/common/dynamic/dynamic_badge_mode.dart'; import 'package:PiliPlus/models/common/dynamic/dynamic_badge_mode.dart';
import 'package:PiliPlus/models/common/image_type.dart'; import 'package:PiliPlus/models/common/image_type.dart';
import 'package:PiliPlus/models/common/nav_bar_config.dart'; import 'package:PiliPlus/models/common/nav_bar_config.dart';
import 'package:PiliPlus/pages/home/controller.dart';
import 'package:PiliPlus/pages/home/view.dart'; import 'package:PiliPlus/pages/home/view.dart';
import 'package:PiliPlus/pages/main/controller.dart'; import 'package:PiliPlus/pages/main/controller.dart';
import 'package:PiliPlus/pages/mine/controller.dart'; import 'package:PiliPlus/pages/mine/controller.dart';
@@ -101,10 +100,8 @@ class _MainAppState extends State<MainApp>
if (_mainController.selectedIndex.value != 0) { if (_mainController.selectedIndex.value != 0) {
_mainController _mainController
..setIndex(0) ..setIndex(0)
..bottomBarStream?.add(true); ..bottomBarStream?.add(true)
try { ..setSearchBar();
Get.find<HomeController>().searchBarStream?.add(true);
} catch (_) {}
} else { } else {
onBack(); onBack();
} }