Переглянути джерело

fix: HeadlineModule补充logout清除时机

XiaodongLin 7 місяців тому
батько
коміт
911e1de5ff

+ 8 - 0
app/src/main/java/com/adealink/weparty/module/headline/HeadlineModule.kt

@@ -50,6 +50,10 @@ object HeadlineModule: BaseDynamicModule<IHeadlineService>(IHeadlineService::cla
             override fun removeOutSideRoomHeadLineFloatView() {
 
             }
+
+            override fun logout() {
+
+            }
         }
     }
 
@@ -92,4 +96,8 @@ object HeadlineModule: BaseDynamicModule<IHeadlineService>(IHeadlineService::cla
     override fun removeOutSideRoomHeadLineFloatView() {
         getService().removeOutSideRoomHeadLineFloatView()
     }
+
+    override fun logout() {
+        getService().logout()
+    }
 }

+ 1 - 0
app/src/main/java/com/adealink/weparty/module/headline/IHeadlineService.kt

@@ -28,4 +28,5 @@ interface IHeadlineService: IService<IHeadlineService> {
     fun getRecentHeadLineDataAndShowFloatView()
     fun removeRecentHeadLineDataAndHideFloatView()
     fun removeOutSideRoomHeadLineFloatView()
+    fun logout()
 }

+ 2 - 0
module/account/src/main/java/com/adealink/weparty/account/login/manager/LogoutCleaner.kt

@@ -11,6 +11,7 @@ import com.adealink.weparty.module.family.FamilyModule
 import com.adealink.weparty.module.follow.FollowModule
 import com.adealink.weparty.module.game.GameModule
 import com.adealink.weparty.module.gift.GiftModule
+import com.adealink.weparty.module.headline.HeadlineModule
 import com.adealink.weparty.module.message.MessageModule
 import com.adealink.weparty.module.operation.OperationModule
 import com.adealink.weparty.module.room.RoomModule
@@ -51,5 +52,6 @@ object LogoutCleaner {
         globalConfigManager.logout()
         DialogShowManager.logout()
         UserTaskManager.logout()
+        HeadlineModule.logout()
     }
 }

+ 4 - 0
module/headline/src/main/java/com/adealink/weparty/headline/HeadlineServiceImpl.kt

@@ -57,4 +57,8 @@ class HeadlineServiceImpl : IHeadlineService {
     override fun clearWhenExitRoom() {
         headlineManager.clearWhenExitRoom()
     }
+
+    override fun logout() {
+        headlineManager.logout()
+    }
 }

+ 6 - 0
module/headline/src/main/java/com/adealink/weparty/headline/manager/HeadlineManager.kt

@@ -257,4 +257,10 @@ class HeadlineManager : BaseFrame<IHeadlineListener>(), IHeadlineManager {
         }
     }
 
+    override fun logout() {
+        Log.i(TAG_HEADLINE, "logout:")
+        runOnUiThread {
+            HeadlineFloatView.removeByPredicate(predicate = { it.baseFloatData is HeadlineFloatData })
+        }
+    }
 }

+ 2 - 0
module/headline/src/main/java/com/adealink/weparty/headline/manager/IHeadlineManager.kt

@@ -25,4 +25,6 @@ interface IHeadlineManager : IBaseFrame<IHeadlineListener> {
 
     //退出房间时清除对应的横幅信息
     fun clearWhenExitRoom()
+
+    fun logout()
 }