diff --git a/lib/pages/media/controller.dart b/lib/pages/media/controller.dart index 2109162a..af2e0137 100644 --- a/lib/pages/media/controller.dart +++ b/lib/pages/media/controller.dart @@ -6,7 +6,6 @@ import 'package:PiliPalaX/http/user.dart'; import 'package:PiliPalaX/utils/storage.dart'; class MediaController extends CommonController { - RxBool userLogin = false.obs; List list = [ // { // 'icon': Icons.file_download_outlined, @@ -46,9 +45,8 @@ class MediaController extends CommonController { @override void onInit() { super.onInit(); - userLogin.value = GStorage.isLogin; - - if (userLogin.value) { + mid = GStorage.userInfo.get('userInfoCache')?.mid; + if (mid != null) { queryData(); } } @@ -64,6 +62,6 @@ class MediaController extends CommonController { Future customGetData() => UserHttp.userfavFolder( pn: 1, ps: 5, - mid: mid ?? GStorage.userInfo.get('userInfoCache')?.mid, + mid: mid, ); } diff --git a/lib/pages/media/view.dart b/lib/pages/media/view.dart index 02a8540d..f3c4909e 100644 --- a/lib/pages/media/view.dart +++ b/lib/pages/media/view.dart @@ -20,7 +20,6 @@ class MediaPage extends StatefulWidget { class _MediaPageState extends State with AutomaticKeepAliveClientMixin { late MediaController mediaController; - StreamSubscription? _listener; @override bool get wantKeepAlive => true; @@ -32,9 +31,6 @@ class _MediaPageState extends State StreamController mainStream = Get.find().bottomBarStream; - _listener = mediaController.userLogin.listen((status) { - mediaController.onReload(); - }); mediaController.scrollController.addListener( () { final ScrollDirection direction = @@ -50,7 +46,6 @@ class _MediaPageState extends State @override void dispose() { - _listener?.cancel(); mediaController.scrollController.removeListener(() {}); super.dispose(); } @@ -112,16 +107,18 @@ class _MediaPageState extends State ), ), ], - Obx(() => mediaController.userLogin.value - ? favFolder(mediaController, context) - : const SizedBox(height: 0)) + Obx( + () => mediaController.loadingState.value is Loading + ? const SizedBox.shrink() + : favFolder(), + ) ], ), ), ); } - Widget favFolder(mediaController, context) { + Widget favFolder() { return Column( children: [ Divider( @@ -172,7 +169,7 @@ class _MediaPageState extends State ), trailing: IconButton( tooltip: '刷新', - onPressed: mediaController.onReload, + onPressed: mediaController.onRefresh, icon: const Icon( Icons.refresh, size: 20, diff --git a/lib/utils/login.dart b/lib/utils/login.dart index 5ea6c41e..90037cc2 100644 --- a/lib/utils/login.dart +++ b/lib/utils/login.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'dart:math'; +import 'package:PiliPalaX/http/loading_state.dart'; import 'package:PiliPalaX/utils/extension.dart'; import 'package:crypto/crypto.dart'; import 'package:flutter/material.dart'; @@ -14,9 +15,11 @@ import 'package:uuid/uuid.dart'; class LoginUtils { static Future refreshLoginStatus(bool status) async { try { - // 更改我的页面登录状态 + // logout if (status.not) { + // 更改我的页面登录状态 await Get.find().resetUserInfo(); + Get.find().loadingState.value = LoadingState.loading(); } // 更改主页登录状态 @@ -25,8 +28,6 @@ class LoginUtils { Get.find().userLogin.value = status; Get.find().userLogin.value = status; - - Get.find().userLogin.value = status; } catch (err) { // SmartDialog.showToast('refreshLoginStatus error: ${err.toString()}'); debugPrint('refreshLoginStatus error: $err'); diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart index 6529507f..2933b813 100644 --- a/lib/utils/utils.dart +++ b/lib/utils/utils.dart @@ -105,11 +105,13 @@ class Utils { '端」推荐'); await GStorage.userInfo.put('userInfoCache', result['data']); try { - final HomeController homeCtr = Get.find(); - homeCtr.updateLoginStatus(true); - homeCtr.userFace.value = result['data'].face; - final MediaController mediaCtr = Get.find(); - mediaCtr.mid = result['data'].mid; + Get.find() + ..updateLoginStatus(true) + ..userFace.value = result['data'].face; + + Get.find() + ..mid = result['data'].mid + ..onRefresh(); } catch (_) {} await LoginUtils.refreshLoginStatus(true); } else {