王鹏鹏 2 лет назад
Родитель
Сommit
56ba0b636a

+ 16 - 0
app/src/main/java/com/yingyangfly/MyApplication.kt

@@ -10,6 +10,10 @@ import com.tencent.rtmp.TXLiveBase
 import com.tencent.rtmp.TXLiveBaseListener
 import com.yingyangfly.baselib.BaseApplication
 import com.yingyangfly.baselib.config.AccountConfig
+import com.yingyangfly.baselib.utils.LiveEventBusUtil
+import com.yingyangfly.baselib.utils.RxBusCodes
+import java.util.Timer
+import java.util.TimerTask
 
 
 class MyApplication : BaseApplication() {
@@ -48,13 +52,25 @@ class MyApplication : BaseApplication() {
             }
 
             override fun onKickedOffline() {
+                timer()
                 Log.e("wpp", "IM onKickedOffline")
             }
 
             override fun onUserSigExpired() {
+                timer()
                 Log.e("wpp", "IM onUserSigExpired")
             }
         })
         V2TIMManager.getInstance().initSDK(this, AccountConfig.TENCENT_IM_APPID, config)
     }
+
+    private fun timer() {
+        val task = object : TimerTask() {
+            override fun run() {
+                LiveEventBusUtil.send(RxBusCodes.ONKICKEDOFFLINE, "")
+            }
+        }
+        val timer = Timer()
+        timer.schedule(task, 3000)
+    }
 }

+ 14 - 0
home/src/main/java/com/yingyangfly/home/activity/HomeActivity.kt

@@ -18,6 +18,7 @@ import com.yingyangfly.baselib.bean.MessageBean
 import com.yingyangfly.baselib.bean.PurchaseConsultationEvent
 import com.yingyangfly.baselib.bean.Record
 import com.yingyangfly.baselib.db.VoicePlayerBean
+import com.yingyangfly.baselib.dialog.MessageDialog
 import com.yingyangfly.baselib.dialog.TipsDialog
 import com.yingyangfly.baselib.ext.getEndAnimation
 import com.yingyangfly.baselib.ext.getScaleAnimation
@@ -573,6 +574,19 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>(), Vie
                 finish()
             }
         }
+
+        //IM被踢下线
+        LiveEventBusUtil.observer<String>(this, RxBusCodes.ONKICKEDOFFLINE) {
+            runOnUiThread {
+                val messageDialog = MessageDialog()
+                messageDialog.setContent("", "您已经在其他端登录了当前账号,是否重新登录?", "提示")
+                messageDialog.onDialogClickListener = {
+                    JumpUtil.jumpActivity(RouterUrlCommon.login, mContext)
+                    finish()
+                }
+                messageDialog.show(supportFragmentManager, "messageDialog")
+            }
+        }
     }
 
     /**