Quellcode durchsuchen

fix:clearWhenExitRoom的时机,Activity不可见就需要清除掉了

XiaodongLin vor 7 Monaten
Ursprung
Commit
66c1c8183c

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

@@ -31,6 +31,10 @@ object HeadlineModule: BaseDynamicModule<IHeadlineService>(IHeadlineService::cla
             override fun removeListener(l: IHeadlineListener) {
             }
 
+            override fun clearWhenExitRoom() {
+
+            }
+
             override fun getService(): IHeadlineService? {
                 return null
             }
@@ -60,4 +64,8 @@ object HeadlineModule: BaseDynamicModule<IHeadlineService>(IHeadlineService::cla
     override fun removeListener(l: IHeadlineListener) {
         return getService().removeListener(l)
     }
+
+    override fun clearWhenExitRoom() {
+        return getService().clearWhenExitRoom()
+    }
 }

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

@@ -18,4 +18,7 @@ interface IHeadlineService: IService<IHeadlineService> {
     fun addListener(l: IHeadlineListener)
 
     fun removeListener(l: IHeadlineListener)
+
+    //退出房间时清除对应的横幅信息
+    fun clearWhenExitRoom()
 }

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

@@ -41,4 +41,8 @@ class HeadlineServiceImpl : IHeadlineService {
     override fun getService(): IHeadlineService {
         return this
     }
+
+    override fun clearWhenExitRoom() {
+        headlineManager.clearWhenExitRoom()
+    }
 }

+ 1 - 1
module/headline/src/main/java/com/adealink/weparty/headline/floatview/HeadlineFloatView.kt

@@ -106,7 +106,7 @@ class HeadlineFloatView(floatData: HeadlineFloatData) : BaseSlideFloatView(float
         }
 
         @JvmOverloads
-        fun clearWhenExitRoom(roomId: Long) {
+        fun clearWhenExitRoom() {
             WindowManagerProxy.getWindowManager().removeAllFloatViews(
                 type = FloatWindowType.GLOBAL_HEADLINE,
                 reason = "clearWhenExitRoom"

+ 1 - 1
module/headline/src/main/java/com/adealink/weparty/headline/fragment/HeadlineFragment.kt

@@ -87,7 +87,7 @@ class HeadlineFragment : BaseFragment(R.layout.fragment_healine), IRoomListener
 
     override fun onRoomLeaved(roomId: Long, flowStateInfo: FlowStateInfo) {
         super.onRoomLeaved(roomId, flowStateInfo)
-        headlineManager.clearWhenExitRoom(roomId)
+        headlineManager.clearWhenExitRoom()
     }
 
 

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

@@ -197,10 +197,10 @@ class HeadlineManager : BaseFrame<IHeadlineListener>(), IHeadlineManager {
         }
     }
 
-    override fun clearWhenExitRoom(roomId: Long) {
-        Log.d(TAG_HEADLINE, "clearWhenExitRoom: $roomId")
+    override fun clearWhenExitRoom() {
+        Log.i(TAG_HEADLINE, "clearWhenExitRoom:")
         runOnUiThread {
-            HeadlineFloatView.clearWhenExitRoom(roomId)
+            HeadlineFloatView.clearWhenExitRoom()
         }
     }
 

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

@@ -16,5 +16,5 @@ interface IHeadlineManager : IBaseFrame<IHeadlineListener> {
     fun addRocketHeadlineEffectEntity(notify: RocketUpgradeNotify)
 
     //退出房间时清除对应的横幅信息
-    fun clearWhenExitRoom(roomId: Long)
+    fun clearWhenExitRoom()
 }

+ 7 - 0
module/room/src/main/java/com/adealink/weparty/room/RoomActivity.kt

@@ -28,6 +28,7 @@ import com.adealink.weparty.hardware.Hardware
 import com.adealink.weparty.hardware.HardwareClient
 import com.adealink.weparty.hardware.HardwareClientId
 import com.adealink.weparty.hardware.HardwarePriority
+import com.adealink.weparty.module.headline.HeadlineModule
 import com.adealink.weparty.module.music.MusicModule
 import com.adealink.weparty.module.profile.ProfileModule
 import com.adealink.weparty.module.room.Room
@@ -503,4 +504,10 @@ class RoomActivity : BaseActivity(), IRoomOpListener {
         musicViewModel?.clearMusic()
     }
 
+    override fun onStop() {
+        super.onStop()
+        //页面不可见的时候,把房间内的横幅清掉,不然可能会在房间外展示
+        HeadlineModule.clearWhenExitRoom()
+    }
+
 }