فهرست منبع

[new]优化无会员时冷启动时进入会员页

zk 5 ماه پیش
والد
کامیت
12c607832a
2فایلهای تغییر یافته به همراه17 افزوده شده و 1 حذف شده
  1. 15 1
      lib/module/main/main_controller.dart
  2. 2 0
      lib/module/member/member_page.dart

+ 15 - 1
lib/module/main/main_controller.dart

@@ -83,7 +83,7 @@ class MainController extends BaseController {
 
   DateTime? _lastPressedAt;
   DateTime? _lastRequestFavor;
-
+  bool isFirstShowMemberPage = true;
   String? lastCheckFriendId;
   bool isExecuteAutoSelect = false;
 
@@ -147,9 +147,12 @@ class MainController extends BaseController {
         accountRepository.mineUserInfo.value.lastLocation.listen((location) {
       _updateMineLocation(location);
     });
+
+    _isShowAppStartMemberPage(accountRepository.memberStatusInfo.value);
     //根据会员状态刷新好友列表
     memberStatusInfoSubscription =
         accountRepository.memberStatusInfo.listen((memberStatus) {
+      _isShowAppStartMemberPage(memberStatus);
       if (memberStatus != null) {
         _updateFriendList(_friendsList);
       }
@@ -159,6 +162,17 @@ class MainController extends BaseController {
     _refreshTrackDailyDialogs();
   }
 
+  void _isShowAppStartMemberPage(MemberStatusInfo? memberInfo) async {
+    if (memberInfo == null) {
+      return;
+    }
+    if (memberInfo.expired && isFirstShowMemberPage == true) {
+      isFirstShowMemberPage = false;
+      await Future.delayed(Duration(milliseconds: 300));
+      MemberPage.start(enterTyp: MemberPageType.activity);
+    }
+  }
+
   void _updateMineLocation(LocationInfo? location) {
     final mineInfo = accountRepository.mineUserInfo.value;
     mapController.updateOrAddMarker(Location2MarkerUtil.userInfo2Marker(

+ 2 - 0
lib/module/member/member_page.dart

@@ -35,6 +35,8 @@ enum MemberPageType {
   afeterTrialMemberEnter,
   ///加好友进入
   addFriendToEnter,
+  //活动页
+  activity,
 }
 
 class MemberPage extends BasePage<MemberController> {