Sfoglia il codice sorgente

[!] 修复退出登录后, 房间的定时器还在执行的问题

SuperC 1 anno fa
parent
commit
b77458eeb4

BIN
MiMoLive/MiMoLive.xcworkspace/xcuserdata/yanxuyao.xcuserdatad/UserInterfaceState.xcuserstate


+ 10 - 0
MiMoLive/MiMoLive/Classes/Live/MOShowLiveVC.m

@@ -5084,11 +5084,21 @@ static int mainRTMJoinNum = 0;
 
 - (void)justLeaveAndNoLeaveAnimation{
     self.isNoLeaveAnimation = YES;
+    WEAKSELF
     NSString *openResult = [[NSUserDefaults standardUserDefaults] valueForKey:@"kLiveSetMinimizeKey"];
     if ([MOMinimizeManager shareManager].popLiveType == MOPopLiveTypeClose || [openResult isEqualToString:@"close"]) {
         [self toLeaveTheLive];
     } else {
         [[MOMinimizeManager shareManager] showMinimizeView];
+        [MOMinimizeManager shareManager].closeTheMiniViewBlock = ^{
+            
+            //关闭悬浮窗 - 需要置空的属性
+            if(weakSelf){
+                weakSelf.isJoinRoom = NO;
+                [weakSelf.liveTimer invalidate];
+            }
+            [MOSvgaSourceManage shareManager].countdownList = [NSArray array];//离开房间 - 倒计时数据清空
+        };
         [self captureAndAnimateLiveView];
     }
 }

+ 2 - 0
MiMoLive/MiMoLive/Classes/Live/Manage/MOMinimizeManager.h

@@ -32,6 +32,8 @@ typedef void(^MOMinimizeManagerEnterRoomBlock)(void);
 
 @property (nonatomic, assign) BOOL canShowLive;//是否能显示直播画面,默认NO(赋值为NO的话最小化成小圆圈状态)
 
+@property (nonatomic, copy) void (^closeTheMiniViewBlock)(void);
+
 ///单例
 + (MOMinimizeManager *)shareManager;
 

+ 4 - 0
MiMoLive/MiMoLive/Classes/Live/Manage/MOMinimizeManager.m

@@ -313,6 +313,10 @@ static MOMinimizeManager *_manager;
         return;
     }
     
+    self.closeTheMiniViewBlock ? self.closeTheMiniViewBlock() : nil;
+    
+    [[MOShowAgoraKitManager shareManager].exitFailedArr removeAllObjects];
+    
     NSInteger agoraId = GetAgoraId;
     [[MOShowAgoraKitManager shareManager] leaveAllChannel];
     [[MOShowAgoraKitManager shareManager] setupAudio:YES];