mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-16 22:24:04 +08:00
@@ -1,26 +1,17 @@
|
||||
import 'dart:async';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:PiliPlus/models/common/home_tab_type.dart';
|
||||
import 'package:PiliPlus/pages/common/common_controller.dart';
|
||||
import 'package:PiliPlus/pages/main/controller.dart';
|
||||
import 'package:PiliPlus/services/account_service.dart';
|
||||
import 'package:PiliPlus/utils/storage.dart';
|
||||
import 'package:PiliPlus/utils/storage_key.dart';
|
||||
import 'package:PiliPlus/utils/storage_pref.dart';
|
||||
import 'package:flutter/foundation.dart' show kDebugMode;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class HomeController extends GetxController
|
||||
with GetSingleTickerProviderStateMixin, ScrollOrRefreshMixin {
|
||||
late List<HomeTabType> tabs;
|
||||
late TabController tabController;
|
||||
|
||||
RxBool? showTopBar;
|
||||
late final bool hideTopBar;
|
||||
|
||||
ScrollOrRefreshMixin get controller => tabs[tabController.index].ctr();
|
||||
ScrollOrRefreshMixin get controller =>
|
||||
HomeTabType.values[tabController.index].ctr();
|
||||
|
||||
@override
|
||||
ScrollController get scrollController => controller.scrollController;
|
||||
@@ -30,41 +21,16 @@ class HomeController extends GetxController
|
||||
@override
|
||||
void onInit() {
|
||||
super.onInit();
|
||||
|
||||
hideTopBar = Pref.hideTopBar;
|
||||
if (hideTopBar) {
|
||||
final mainCtr = Get.find<MainController>();
|
||||
switch (mainCtr.barHideType) {
|
||||
case .instant:
|
||||
showTopBar = RxBool(true);
|
||||
case .sync:
|
||||
mainCtr.barOffset ??= RxDouble(0.0);
|
||||
}
|
||||
}
|
||||
|
||||
setTabConfig();
|
||||
tabController = TabController(
|
||||
initialIndex: HomeTabType.rcmd.index,
|
||||
length: HomeTabType.values.length,
|
||||
vsync: this,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> onRefresh() {
|
||||
return controller.onRefresh().catchError((e) {
|
||||
if (kDebugMode) debugPrint(e.toString());
|
||||
});
|
||||
}
|
||||
|
||||
void setTabConfig() {
|
||||
final tabs = GStorage.setting.get(SettingBoxKey.tabBarSort) as List?;
|
||||
if (tabs != null) {
|
||||
this.tabs = tabs.map((i) => HomeTabType.values[i]).toList();
|
||||
} else {
|
||||
this.tabs = HomeTabType.values;
|
||||
}
|
||||
|
||||
tabController = TabController(
|
||||
initialIndex: max(0, this.tabs.indexOf(HomeTabType.rcmd)),
|
||||
length: this.tabs.length,
|
||||
vsync: this,
|
||||
);
|
||||
return controller.onRefresh();
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
Reference in New Issue
Block a user