diff --git a/lib/pages/home/controller.dart b/lib/pages/home/controller.dart index 36732b1c..c76b00ab 100644 --- a/lib/pages/home/controller.dart +++ b/lib/pages/home/controller.dart @@ -19,9 +19,10 @@ class HomeController extends GetxController { @override void onInit() { super.onInit(); - if(recVideo.get('cacheList') != null && recVideo.get('cacheList').isNotEmpty){ + if (recVideo.get('cacheList') != null && + recVideo.get('cacheList').isNotEmpty) { List list = []; - for(var i in recVideo.get('cacheList')){ + for (var i in recVideo.get('cacheList')) { list.add(i); } videoList.value = list; @@ -36,7 +37,11 @@ class HomeController extends GetxController { ); if (res['status']) { if (type == 'init') { - videoList.value = res['data']; + if (videoList.length > 1) { + videoList.addAll(res['data']); + } else { + videoList.value = res['data']; + } } else if (type == 'onRefresh') { videoList.insertAll(0, res['data']); } else if (type == 'onLoad') { diff --git a/lib/pages/home/view.dart b/lib/pages/home/view.dart index 5e3af8f7..18be42e2 100644 --- a/lib/pages/home/view.dart +++ b/lib/pages/home/view.dart @@ -90,12 +90,12 @@ class _HomePageState extends State } } else { // 缓存数据 - if(_homeController.videoList.isNotEmpty) { + if (_homeController.videoList.length > 1) { return contentGrid( _homeController, _homeController.videoList); } // 骨架屏 - else{ + else { return contentGrid(_homeController, []); } } diff --git a/lib/pages/mine/controller.dart b/lib/pages/mine/controller.dart index ccaaf06e..e069e237 100644 --- a/lib/pages/mine/controller.dart +++ b/lib/pages/mine/controller.dart @@ -25,14 +25,16 @@ class MineController extends GetxController { } onLogin() { - Get.toNamed( - '/webview', - parameters: { - 'url': 'https://passport.bilibili.com/h5-app/passport/login', - 'type': 'login', - 'pageTitle': '登录bilibili', - }, - ); + if (!userLogin.value) { + Get.toNamed( + '/webview', + parameters: { + 'url': 'https://passport.bilibili.com/h5-app/passport/login', + 'type': 'login', + 'pageTitle': '登录bilibili', + }, + ); + } } Future queryUserInfo() async { diff --git a/lib/utils/storage.dart b/lib/utils/storage.dart index af22869a..9860cb3f 100644 --- a/lib/utils/storage.dart +++ b/lib/utils/storage.dart @@ -14,14 +14,7 @@ class GStrorage { final dir = await getApplicationDocumentsDirectory(); final path = dir.path; await Hive.initFlutter('$path/hive'); - // 首页推荐视频 - Hive.registerAdapter(RecVideoItemModelAdapter()); - Hive.registerAdapter(RcmdReasonAdapter()); - Hive.registerAdapter(StatAdapter()); - Hive.registerAdapter(OwnerAdapter()); - Hive.registerAdapter(UserInfoDataAdapter()); - Hive.registerAdapter(LevelInfoAdapter()); - + regAdapter(); // 用户信息 user = await Hive.openBox('user'); // 首页推荐视频 @@ -29,6 +22,15 @@ class GStrorage { // 登录用户信息 userInfo = await Hive.openBox('userInfo'); } + + static regAdapter() { + Hive.registerAdapter(RecVideoItemModelAdapter()); + Hive.registerAdapter(RcmdReasonAdapter()); + Hive.registerAdapter(StatAdapter()); + Hive.registerAdapter(OwnerAdapter()); + Hive.registerAdapter(UserInfoDataAdapter()); + Hive.registerAdapter(LevelInfoAdapter()); + } } // 约定 key @@ -41,3 +43,7 @@ class UserBoxKey { // 登录状态 static const String userLogin = 'userLogin'; } + +class SettingBoxKey { + static const String themeMode = 'themeMode'; +}