diff --git a/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt b/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt index fc0753d277..9121aef1fc 100644 --- a/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt +++ b/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt @@ -52,6 +52,31 @@ object QuickLoginHelper { private const val ENTRANCE_PERMISSION_DIALOG = "一键登录权限弹窗" private const val AUTH_ACTIVITY_NAME = "com.cmic.sso.sdk.activity.LoginAuthActivity" + // 1.取号请求(可提前进行) + @JvmStatic + fun getPhoneInfo(context: Context) { + if (isPublishEnv()) { + AuthnHelper.setDebugMode(false) + } else { + AuthnHelper.setDebugMode(true) + } + + AuthnHelper.getInstance(context.applicationContext).getPhoneInfo( + Config.QUICK_LOGIN_APPID, + Config.QUICK_LOGIN_APPKEY, + { requestCode: Int, jsonObject: JSONObject -> + val code = jsonObject.optString("resultCode") + // “103000”为成功 + if (code == "103000") { + if (requestCode == REQUEST_GET_PHONE_INFO_CODE) { + SPUtils.setBoolean(Constants.SP_HAS_GET_PHONE_INFO, true) + } + } + }, + REQUEST_GET_PHONE_INFO_CODE + ) + } + @JvmStatic fun startLogin(context: Context, entrance: String) { // 防止短时间多次调用 @@ -64,10 +89,44 @@ object QuickLoginHelper { } else { AuthnHelper.setDebugMode(true) } + + if (mAuthnHelper == null) { + initSDK(context, entrance) + } + + if (mTokenListener == null) { + initTokenListener(context) + } + + if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { + loginAuth(context) + } else { + DialogUtils.showQuickLoginPermissionDialog( + context, + { + checkReadPhoneStatePermissionBeforeAction(context, object : EmptyCallback { + override fun onCallback() { + loginAuth(context) + } + }) + }, + { + startCodeLoginPage( + context, + entrance = ENTRANCE_PERMISSION_DIALOG, + isFinishAuth = false, + isFromPermission = true + ) + } + ) + } + } + + private fun initSDK(context: Context, entrance: String) { mAuthnHelper = AuthnHelper.getInstance(context.applicationContext) mAuthnHelper?.run { // 设置超时时间 - overTime = 1500 + overTime = 3000 authThemeConfig = getConfig(context, entrance) // 授权页面的回调方法 @@ -83,56 +142,27 @@ object QuickLoginHelper { startCodeLoginPage(context, true) } } + } + } - // token回调 - mTokenListener = TokenListener { requestCode: Int, jsonObject: JSONObject -> - val code = jsonObject.optString("resultCode") - // “103000”为成功 - if (code == "103000") { - when (requestCode) { - REQUEST_GET_PHONE_INFO_CODE -> { - SPUtils.setBoolean(Constants.SP_HAS_GET_PHONE_INFO, true) - // 2.授权请求 - mAuthnHelper!!.loginAuth(Config.QUICK_LOGIN_APPID, Config.QUICK_LOGIN_APPKEY, mTokenListener, REQUEST_LOGIN_AUTH_CODE) - } - - REQUEST_LOGIN_AUTH_CODE -> { - // 3.获取token - mToken = jsonObject.optString("token") - } - } - } else if (code != "200020") { // 不成功就调起验证码登录页(200020代表授权页关闭) - toastCode(code) - startCodeLoginPage(context, true) + private fun initTokenListener(context: Context) { + // token回调 + mTokenListener = TokenListener { requestCode: Int, jsonObject: JSONObject -> + val code = jsonObject.optString("resultCode") + // “103000”为成功 + if (code == "103000") { + if (requestCode == REQUEST_LOGIN_AUTH_CODE) { + // 3.获取token + mToken = jsonObject.optString("token") } - } - - if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { - getPhoneInfo(context) - } else { - DialogUtils.showQuickLoginPermissionDialog( - context, - { - checkReadPhoneStatePermissionBeforeAction(context, object : EmptyCallback { - override fun onCallback() { - getPhoneInfo(context) - } - }) - }, - { - startCodeLoginPage( - context, - entrance = ENTRANCE_PERMISSION_DIALOG, - isFinishAuth = false, - isFromPermission = true - ) - } - ) + } else if (code != "200020") { // 不成功就调起验证码登录页(200020代表授权页关闭) + toastCode(code) + startCodeLoginPage(context, true) } } } - private fun getPhoneInfo(context: Context) { + private fun loginAuth(context: Context) { mPreDialog = Dialog(context, R.style.DialogWindowTransparent).apply { val binding = SetWaitDialogBinding.inflate(LayoutInflater.from(context)).apply { setWaitMessage.text = "请求登录中" @@ -142,8 +172,8 @@ object QuickLoginHelper { setCanceledOnTouchOutside(false) show() } - // 1.取号请求 - mAuthnHelper!!.getPhoneInfo(Config.QUICK_LOGIN_APPID, Config.QUICK_LOGIN_APPKEY, mTokenListener, REQUEST_GET_PHONE_INFO_CODE) + // 2.授权请求 + mAuthnHelper?.loginAuth(Config.QUICK_LOGIN_APPID, Config.QUICK_LOGIN_APPKEY, mTokenListener, REQUEST_LOGIN_AUTH_CODE) } private fun getConfig(context: Context, entrance: String): AuthThemeConfig{ diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index ff2b3e7641..f685328163 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -59,6 +59,7 @@ import com.gh.common.util.NotificationHelper; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; import com.gh.common.util.PlatformUtils; +import com.gh.common.util.QuickLoginHelper; import com.gh.common.util.SPUtils; import com.gh.common.util.ShareUtils; import com.gh.common.util.ToastUtils; @@ -317,6 +318,8 @@ public class MainActivity extends BaseActivity { postAttentionVideoRecord(); deleteSimulatorGame(); + + QuickLoginHelper.getPhoneInfo(this); } //上传关注视频浏览记录