diff --git a/lib/http/init.dart b/lib/http/init.dart index b75d0dc3..767de50f 100644 --- a/lib/http/init.dart +++ b/lib/http/init.dart @@ -62,7 +62,10 @@ class Request { // for (var i in cookies) { // print(i); // } - var token = cookies.firstWhere((e) => e.name == 'bili_jct').value; + String token = ''; + if (cookies.where((e) => e.name == 'bili_jct').isNotEmpty) { + token = cookies.firstWhere((e) => e.name == 'bili_jct').value; + } return token; } @@ -91,8 +94,8 @@ class Request { ..add(ApiInterceptor()) // 日志拦截器 输出请求、响应内容 ..add(LogInterceptor( - request: true, - requestHeader: true, + request: false, + requestHeader: false, responseHeader: false, )); dio.transformer = BackgroundTransformer(); diff --git a/lib/pages/home/widgets/app_bar.dart b/lib/pages/home/widgets/app_bar.dart index eb93e87e..7d3d131e 100644 --- a/lib/pages/home/widgets/app_bar.dart +++ b/lib/pages/home/widgets/app_bar.dart @@ -3,7 +3,12 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:get/get.dart'; +import 'package:hive/hive.dart'; +import 'package:pilipala/common/widgets/network_img_layer.dart'; import 'package:pilipala/pages/mine/view.dart'; +import 'package:pilipala/utils/storage.dart'; + +Box userInfoCache = GStrorage.userInfo; class HomeAppBar extends StatelessWidget { const HomeAppBar({super.key}); @@ -49,21 +54,40 @@ class HomeAppBar extends StatelessWidget { // onPressed: () {}, // icon: const Icon(CupertinoIcons.bell, size: 22), // ), - IconButton( - onPressed: () { - Get.bottomSheet( - Builder(builder: (context) { - return const SizedBox( - height: 450, - child: MinePage(), - ); - }), + /// TODO + if (userInfoCache.get('userInfoCache') != null) ...[ + GestureDetector( + onTap: () => showModalBottomSheet( + context: context, + builder: (_) => const SizedBox( + height: 450, + child: MinePage(), + ), clipBehavior: Clip.hardEdge, isScrollControlled: true, - ); - }, - icon: const Icon(CupertinoIcons.person, size: 22), - ), + ), + child: NetworkImgLayer( + type: 'avatar', + width: 32, + height: 32, + src: userInfoCache.get('userInfoCache').face, + ), + ), + ] else ...[ + IconButton( + onPressed: () => showModalBottomSheet( + context: context, + builder: (_) => const SizedBox( + height: 450, + child: MinePage(), + ), + clipBehavior: Clip.hardEdge, + isScrollControlled: true, + ), + icon: const Icon(CupertinoIcons.person, size: 22), + ), + ], + const SizedBox(width: 10) ], elevation: 0, diff --git a/lib/pages/mine/controller.dart b/lib/pages/mine/controller.dart index e069e237..0be8fa8c 100644 --- a/lib/pages/mine/controller.dart +++ b/lib/pages/mine/controller.dart @@ -19,13 +19,15 @@ class MineController extends GetxController { super.onInit(); if (userInfoCache.get('userInfoCache') != null) { - print(userInfoCache.get('userInfoCache')); userInfo.value = userInfoCache.get('userInfoCache'); } } - onLogin() { + onLogin() async { if (!userLogin.value) { + /// TODO + Get.back(); + await Future.delayed(const Duration(milliseconds: 150)); Get.toNamed( '/webview', parameters: { diff --git a/lib/pages/setting/controller.dart b/lib/pages/setting/controller.dart index 9e4e6824..47819593 100644 --- a/lib/pages/setting/controller.dart +++ b/lib/pages/setting/controller.dart @@ -3,22 +3,22 @@ import 'package:hive/hive.dart'; import 'package:pilipala/http/init.dart'; import 'package:pilipala/pages/mine/controller.dart'; import 'package:pilipala/utils/storage.dart'; -import 'package:flutter_cache_manager/flutter_cache_manager.dart'; class SettingController extends GetxController { Box user = GStrorage.user; RxBool userLogin = false.obs; + Box userInfoCache = GStrorage.userInfo; @override void onInit() { super.onInit(); userLogin.value = user.get(UserBoxKey.userLogin) ?? false; - print(userLogin.value); } loginOut() async { await Request.removeCookie(); await Get.find().resetUserInfo(); userLogin.value = user.get(UserBoxKey.userLogin) ?? false; + userInfoCache.put('userInfoCache', null); } } diff --git a/lib/pages/video/detail/introduction/controller.dart b/lib/pages/video/detail/introduction/controller.dart index 40125e7b..7d072fc2 100644 --- a/lib/pages/video/detail/introduction/controller.dart +++ b/lib/pages/video/detail/introduction/controller.dart @@ -128,6 +128,10 @@ class VideoIntroController extends GetxController { // 一键三连 Future actionOneThree() async { + if (user.get(UserBoxKey.userMid) == null) { + SmartDialog.showToast('账号未登录'); + return; + } if (hasLike.value && hasCoin.value && hasFav.value) { // 已点赞、投币、收藏 SmartDialog.showToast('🙏 UP已经收到了~'); @@ -185,6 +189,10 @@ class VideoIntroController extends GetxController { // 投币 Future actionCoinVideo() async { + if (user.get(UserBoxKey.userMid) == null) { + SmartDialog.showToast('账号未登录'); + return; + } showDialog( context: Get.context!, builder: (context) { diff --git a/lib/pages/video/detail/introduction/view.dart b/lib/pages/video/detail/introduction/view.dart index bba8d137..f1e4340d 100644 --- a/lib/pages/video/detail/introduction/view.dart +++ b/lib/pages/video/detail/introduction/view.dart @@ -1,4 +1,5 @@ import 'package:flutter/cupertino.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:get/get.dart'; import 'package:flutter/material.dart'; @@ -12,6 +13,7 @@ import 'package:pilipala/common/widgets/stat/danmu.dart'; import 'package:pilipala/common/widgets/stat/view.dart'; import 'package:pilipala/models/video_detail_res.dart'; import 'package:pilipala/pages/video/detail/introduction/controller.dart'; +import 'package:pilipala/utils/storage.dart'; import 'package:pilipala/utils/utils.dart'; class VideoIntroPanel extends StatefulWidget { @@ -109,6 +111,10 @@ class _VideoInfoState extends State with TickerProviderStateMixin { } showFavBottomSheet() { + if (videoIntroController.user.get(UserBoxKey.userMid) == null) { + SmartDialog.showToast('账号未登录'); + return; + } Get.bottomSheet( useRootNavigator: true, isScrollControlled: true, diff --git a/lib/pages/webview/controller.dart b/lib/pages/webview/controller.dart index eac226e6..b7279108 100644 --- a/lib/pages/webview/controller.dart +++ b/lib/pages/webview/controller.dart @@ -67,7 +67,10 @@ class WebviewController extends GetxController { SmartDialog.showToast('登录成功'); Box user = GStrorage.user; user.put(UserBoxKey.userLogin, true); + Box userInfoCache = GStrorage.userInfo; + userInfoCache.put('userInfoCache', result['data']); Get.find().userInfo.value = result['data']; + Get.find().onInit(); Get.find().queryRcmdFeed('onRefresh'); Get.back(); }