|
|
@@ -1,6 +1,7 @@
|
|
|
package com.adealink.weparty.im.manager.login
|
|
|
|
|
|
import android.app.Application
|
|
|
+import com.adealink.frame.aab.util.getCompatString
|
|
|
import com.adealink.frame.base.CommonDataNullError
|
|
|
import com.adealink.frame.base.Rlt
|
|
|
import com.adealink.frame.base.fastLazy
|
|
|
@@ -9,6 +10,8 @@ import com.adealink.frame.log.Log
|
|
|
import com.adealink.frame.util.AppUtil
|
|
|
import com.adealink.weparty.App
|
|
|
import com.adealink.weparty.commonui.ext.isFailure
|
|
|
+import com.adealink.weparty.commonui.toast.util.showToast
|
|
|
+import com.adealink.weparty.im.R
|
|
|
import com.adealink.weparty.im.constant.TAG_IM_LOGIN
|
|
|
import com.adealink.weparty.im.data.UserInfo.Companion.loginUserInfo
|
|
|
import com.adealink.weparty.im.datasource.remote.IMHttpService
|
|
|
@@ -64,14 +67,19 @@ class LoginManager : BaseFrame<ILoginListener>(),
|
|
|
login(true)
|
|
|
}
|
|
|
|
|
|
+ private var isIMLogin = false
|
|
|
override fun login(reLogin: Boolean) {
|
|
|
launch {
|
|
|
+ if (isIMLogin) {
|
|
|
+ Log.d(TAG_IM_LOGIN, "handleLogin, return, for im is login-ing")
|
|
|
+ return@launch
|
|
|
+ }
|
|
|
if (!AccountModule.isLogin()) {
|
|
|
Log.d(TAG_IM_LOGIN, "login return, Account is not Login")
|
|
|
return@launch
|
|
|
}
|
|
|
if (TUILogin.isUserLogined()) {
|
|
|
- Log.d(TAG_IM_LOGIN, "login return, TUILogin.isUserLogined")
|
|
|
+ Log.d(TAG_IM_LOGIN, "login return, TUILogin.isUserLogin")
|
|
|
return@launch
|
|
|
}
|
|
|
val uid = AccountModule.uid
|
|
|
@@ -87,6 +95,7 @@ class LoginManager : BaseFrame<ILoginListener>(),
|
|
|
}
|
|
|
val userSign = (userSignRlt as Rlt.Success).data
|
|
|
val tuiLoginConfig: TUILoginConfig = TUIUtils.getLoginConfig()
|
|
|
+ isIMLogin = true
|
|
|
LoginWrapper.loginIMSDK(
|
|
|
AppUtil.appContext,
|
|
|
IMConfig.APP_ID,
|
|
|
@@ -94,6 +103,7 @@ class LoginManager : BaseFrame<ILoginListener>(),
|
|
|
userSign, tuiLoginConfig,
|
|
|
object : TUICallback() {
|
|
|
override fun onSuccess() {
|
|
|
+ isIMLogin = false
|
|
|
Log.i(TAG_IM_LOGIN, "login onSuccess, uid: $uid")
|
|
|
TUILogin.addLoginListener(mLoginListener)
|
|
|
|
|
|
@@ -101,10 +111,18 @@ class LoginManager : BaseFrame<ILoginListener>(),
|
|
|
}
|
|
|
|
|
|
override fun onError(errorCode: Int, errorMessage: String?) {
|
|
|
+ isIMLogin = false
|
|
|
Log.e(
|
|
|
TAG_IM_LOGIN,
|
|
|
"login fail errorCode: $errorCode errorMessage:$errorMessage"
|
|
|
)
|
|
|
+ showToast(
|
|
|
+ getCompatString(
|
|
|
+ R.string.im_login_fail,
|
|
|
+ errorCode.toString(),
|
|
|
+ errorMessage ?: ""
|
|
|
+ )
|
|
|
+ )
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
@@ -156,6 +174,17 @@ class LoginManager : BaseFrame<ILoginListener>(),
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ override fun checkLogin() {
|
|
|
+ launch {
|
|
|
+ val isLogin = isLogin()
|
|
|
+ if (isLogin) {
|
|
|
+ Log.d(TAG_IM_LOGIN, "checkLogin return, for user already login")
|
|
|
+ return@launch
|
|
|
+ }
|
|
|
+ reLogin()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
private fun logout() {
|
|
|
try {
|