opt: login

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-01-05 15:40:49 +08:00
parent f47c500c5b
commit 78180a1dd1
4 changed files with 21 additions and 23 deletions

View File

@@ -6,7 +6,6 @@ import 'package:PiliPalaX/http/user.dart';
import 'package:PiliPalaX/utils/storage.dart'; import 'package:PiliPalaX/utils/storage.dart';
class MediaController extends CommonController { class MediaController extends CommonController {
RxBool userLogin = false.obs;
List list = [ List list = [
// { // {
// 'icon': Icons.file_download_outlined, // 'icon': Icons.file_download_outlined,
@@ -46,9 +45,8 @@ class MediaController extends CommonController {
@override @override
void onInit() { void onInit() {
super.onInit(); super.onInit();
userLogin.value = GStorage.isLogin; mid = GStorage.userInfo.get('userInfoCache')?.mid;
if (mid != null) {
if (userLogin.value) {
queryData(); queryData();
} }
} }
@@ -64,6 +62,6 @@ class MediaController extends CommonController {
Future<LoadingState> customGetData() => UserHttp.userfavFolder( Future<LoadingState> customGetData() => UserHttp.userfavFolder(
pn: 1, pn: 1,
ps: 5, ps: 5,
mid: mid ?? GStorage.userInfo.get('userInfoCache')?.mid, mid: mid,
); );
} }

View File

@@ -20,7 +20,6 @@ class MediaPage extends StatefulWidget {
class _MediaPageState extends State<MediaPage> class _MediaPageState extends State<MediaPage>
with AutomaticKeepAliveClientMixin { with AutomaticKeepAliveClientMixin {
late MediaController mediaController; late MediaController mediaController;
StreamSubscription? _listener;
@override @override
bool get wantKeepAlive => true; bool get wantKeepAlive => true;
@@ -32,9 +31,6 @@ class _MediaPageState extends State<MediaPage>
StreamController<bool> mainStream = StreamController<bool> mainStream =
Get.find<MainController>().bottomBarStream; Get.find<MainController>().bottomBarStream;
_listener = mediaController.userLogin.listen((status) {
mediaController.onReload();
});
mediaController.scrollController.addListener( mediaController.scrollController.addListener(
() { () {
final ScrollDirection direction = final ScrollDirection direction =
@@ -50,7 +46,6 @@ class _MediaPageState extends State<MediaPage>
@override @override
void dispose() { void dispose() {
_listener?.cancel();
mediaController.scrollController.removeListener(() {}); mediaController.scrollController.removeListener(() {});
super.dispose(); super.dispose();
} }
@@ -112,16 +107,18 @@ class _MediaPageState extends State<MediaPage>
), ),
), ),
], ],
Obx(() => mediaController.userLogin.value Obx(
? favFolder(mediaController, context) () => mediaController.loadingState.value is Loading
: const SizedBox(height: 0)) ? const SizedBox.shrink()
: favFolder(),
)
], ],
), ),
), ),
); );
} }
Widget favFolder(mediaController, context) { Widget favFolder() {
return Column( return Column(
children: [ children: [
Divider( Divider(
@@ -172,7 +169,7 @@ class _MediaPageState extends State<MediaPage>
), ),
trailing: IconButton( trailing: IconButton(
tooltip: '刷新', tooltip: '刷新',
onPressed: mediaController.onReload, onPressed: mediaController.onRefresh,
icon: const Icon( icon: const Icon(
Icons.refresh, Icons.refresh,
size: 20, size: 20,

View File

@@ -1,6 +1,7 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:math'; import 'dart:math';
import 'package:PiliPalaX/http/loading_state.dart';
import 'package:PiliPalaX/utils/extension.dart'; import 'package:PiliPalaX/utils/extension.dart';
import 'package:crypto/crypto.dart'; import 'package:crypto/crypto.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -14,9 +15,11 @@ import 'package:uuid/uuid.dart';
class LoginUtils { class LoginUtils {
static Future refreshLoginStatus(bool status) async { static Future refreshLoginStatus(bool status) async {
try { try {
// 更改我的页面登录状态 // logout
if (status.not) { if (status.not) {
// 更改我的页面登录状态
await Get.find<MineController>().resetUserInfo(); await Get.find<MineController>().resetUserInfo();
Get.find<MediaController>().loadingState.value = LoadingState.loading();
} }
// 更改主页登录状态 // 更改主页登录状态
@@ -25,8 +28,6 @@ class LoginUtils {
Get.find<MineController>().userLogin.value = status; Get.find<MineController>().userLogin.value = status;
Get.find<DynamicsController>().userLogin.value = status; Get.find<DynamicsController>().userLogin.value = status;
Get.find<MediaController>().userLogin.value = status;
} catch (err) { } catch (err) {
// SmartDialog.showToast('refreshLoginStatus error: ${err.toString()}'); // SmartDialog.showToast('refreshLoginStatus error: ${err.toString()}');
debugPrint('refreshLoginStatus error: $err'); debugPrint('refreshLoginStatus error: $err');

View File

@@ -105,11 +105,13 @@ class Utils {
'端」推荐'); '端」推荐');
await GStorage.userInfo.put('userInfoCache', result['data']); await GStorage.userInfo.put('userInfoCache', result['data']);
try { try {
final HomeController homeCtr = Get.find<HomeController>(); Get.find<HomeController>()
homeCtr.updateLoginStatus(true); ..updateLoginStatus(true)
homeCtr.userFace.value = result['data'].face; ..userFace.value = result['data'].face;
final MediaController mediaCtr = Get.find<MediaController>();
mediaCtr.mid = result['data'].mid; Get.find<MediaController>()
..mid = result['data'].mid
..onRefresh();
} catch (_) {} } catch (_) {}
await LoginUtils.refreshLoginStatus(true); await LoginUtils.refreshLoginStatus(true);
} else { } else {