diff --git a/app/src/main/java/com/gh/common/DefaultJsApi.kt b/app/src/main/java/com/gh/common/DefaultJsApi.kt index 64f0941b93..2968755cac 100644 --- a/app/src/main/java/com/gh/common/DefaultJsApi.kt +++ b/app/src/main/java/com/gh/common/DefaultJsApi.kt @@ -45,7 +45,6 @@ import com.gh.gamecenter.login.user.LoginTag import com.gh.gamecenter.login.user.UserManager import com.gh.gamecenter.login.user.UserRepository import com.gh.gamecenter.login.utils.LoginHelper -import com.gh.gamecenter.login.utils.QuickLoginHelper import com.gh.gamecenter.login.view.LoginActivity import com.gh.gamecenter.personalhome.border.AvatarBorderActivity import com.gh.gamecenter.setting.SettingBridge @@ -130,12 +129,12 @@ class DefaultJsApi( @JavascriptInterface fun login(msg: Any) { - if (SPUtils.getBoolean(Constants.SP_HAS_GET_PHONE_INFO) || NetworkUtils.isOpenMobileData(context)) { - QuickLoginHelper.startLogin(context, "浏览器") - } else { +// if (SPUtils.getBoolean(Constants.SP_HAS_GET_PHONE_INFO) || NetworkUtils.isOpenMobileData(context)) { +// QuickLoginHelper.startLogin(context, "浏览器") +// } else { val intent = LoginActivity.getIntent(context, "浏览器") context.startActivity(intent) - } +// } } @JavascriptInterface diff --git a/app/src/main/java/com/gh/common/util/CheckLoginUtils.java b/app/src/main/java/com/gh/common/util/CheckLoginUtils.java index cff1fd0924..0e9510cc84 100644 --- a/app/src/main/java/com/gh/common/util/CheckLoginUtils.java +++ b/app/src/main/java/com/gh/common/util/CheckLoginUtils.java @@ -1,17 +1,11 @@ package com.gh.common.util; -import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.text.TextUtils; import com.gh.gamecenter.common.constant.EntranceConsts; -import com.gh.gamecenter.core.utils.CurrentActivityHolder; -import com.gh.gamecenter.common.constant.Constants; -import com.gh.gamecenter.login.utils.QuickLoginHelper; import com.gh.gamecenter.login.view.LoginActivity; -import com.gh.gamecenter.common.utils.NetworkUtils; -import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.login.user.UserManager; import com.lightgame.utils.Utils; @@ -28,15 +22,15 @@ public class CheckLoginUtils { LogUtils.login("dialog", null, entrance); LogUtils.login("activity", null, entrance); - if (SPUtils.getBoolean(Constants.SP_HAS_GET_PHONE_INFO) || NetworkUtils.isOpenMobileData(context)) { - startQuickLogin(context, entrance); - } else { - // 有可能App未启动 - Bundle bundle = new Bundle(); - bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); - bundle.putString(EntranceConsts.KEY_TO, LoginActivity.class.getName()); - EntranceUtils.jumpActivity(context, bundle); - } +// if (SPUtils.getBoolean(Constants.SP_HAS_GET_PHONE_INFO) || NetworkUtils.isOpenMobileData(context)) { +// startQuickLogin(context, entrance); +// } else { + // 有可能App未启动 + Bundle bundle = new Bundle(); + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); + bundle.putString(EntranceConsts.KEY_TO, LoginActivity.class.getName()); + EntranceUtils.jumpActivity(context, bundle); +// } } else { if (listener != null) { listener.onLogin(); @@ -44,16 +38,16 @@ public class CheckLoginUtils { } } - private static void startQuickLogin(Context context, String entrance) { - // 需要确保传入的 context 不为 application - if (!(context instanceof Activity)) { - context = CurrentActivityHolder.getCurrentActivity(); - } - - if (context != null) { - QuickLoginHelper.startLogin(context, entrance); - } - } +// private static void startQuickLogin(Context context, String entrance) { +// // 需要确保传入的 context 不为 application +// if (!(context instanceof Activity)) { +// context = CurrentActivityHolder.getCurrentActivity(); +// } +// +// if (context != null) { +// QuickLoginHelper.startLogin(context, entrance); +// } +// } public static void checkLogin(final Context context, Bundle nextToBundle, boolean isTriggerNextStep, String entrance, OnLoginListener listener) { if (!isLogin()) { diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index c90f04f7b1..66ed092dda 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -98,7 +98,6 @@ import com.gh.gamecenter.feature.utils.PlatformUtils; import com.gh.gamecenter.home.custom.model.CustomPageShareRepository; import com.gh.gamecenter.home.skip.PackageSkipActivity; import com.gh.gamecenter.login.user.UserManager; -import com.gh.gamecenter.login.utils.QuickLoginHelper; import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.packagehelper.PackageViewModel; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -319,8 +318,7 @@ public class MainActivity extends BaseActivity { mMainWrapperViewModel.requestAllDialogData(); - // TODO 去掉一键登录? - QuickLoginHelper.getPhoneInfo(); +// QuickLoginHelper.getPhoneInfo(); // TODO 搞清楚为什么这里要获取微信相关配置 WechatBindHelper.getWechatConfig(null); diff --git a/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java b/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java index c8fbb08660..f1fd4a9d4c 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java @@ -421,14 +421,14 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements IBus , () -> { } , () -> { - if (SPUtils.getBoolean(Constants.SP_HAS_GET_PHONE_INFO) || NetworkUtils.isOpenMobileData(BaseActivity.this)) { - IQuickLoginProvider quickLoginConfig = (IQuickLoginProvider) ARouter.getInstance().build(RouteConsts.provider.quickLogin).navigation(); - quickLoginConfig.startLogin(BaseActivity.this, "你的账号已在另外一台设备登录多设备-重新登录"); - } else { - ARouter.getInstance().build(RouteConsts.activity.loginActivity) - .withString(EntranceConsts.KEY_ENTRANCE, "你的账号已在另外一台设备登录多设备-重新登录") - .navigation(); - } +// if (SPUtils.getBoolean(Constants.SP_HAS_GET_PHONE_INFO) || NetworkUtils.isOpenMobileData(BaseActivity.this)) { +// IQuickLoginProvider quickLoginConfig = (IQuickLoginProvider) ARouter.getInstance().build(RouteConsts.provider.quickLogin).navigation(); +// quickLoginConfig.startLogin(BaseActivity.this, "你的账号已在另外一台设备登录多设备-重新登录"); +// } else { + ARouter.getInstance().build(RouteConsts.activity.loginActivity) + .withString(EntranceConsts.KEY_ENTRANCE, "你的账号已在另外一台设备登录多设备-重新登录") + .navigation(); +// } } ); IQGameProvider qProvider = (IQGameProvider) ARouter diff --git a/module_login/build.gradle b/module_login/build.gradle index 0e06f28f5f..3b24419121 100644 --- a/module_login/build.gradle +++ b/module_login/build.gradle @@ -54,5 +54,5 @@ dependencies { implementation(project(path: ":module_common")) implementation(project(path: ":module_core_feature")) - api project(":module_lib") +// api project(":module_lib") } \ No newline at end of file diff --git a/module_login/src/main/AndroidManifest.xml b/module_login/src/main/AndroidManifest.xml index 652b72a149..6dade13227 100644 --- a/module_login/src/main/AndroidManifest.xml +++ b/module_login/src/main/AndroidManifest.xml @@ -20,16 +20,16 @@ android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden" /> - + + + + - + + + + + > getLoginUserInfo() { diff --git a/module_login/src/main/java/com/gh/gamecenter/login/utils/QuickLoginHelper.kt b/module_login/src/main/java/com/gh/gamecenter/login/utils/QuickLoginHelper.kt index 0dc7e57b02..3350f4cc71 100644 --- a/module_login/src/main/java/com/gh/gamecenter/login/utils/QuickLoginHelper.kt +++ b/module_login/src/main/java/com/gh/gamecenter/login/utils/QuickLoginHelper.kt @@ -1,518 +1,518 @@ -package com.gh.gamecenter.login.utils - -import android.annotation.SuppressLint -import android.app.Activity -import android.app.Dialog -import android.content.Context -import android.content.Intent -import android.graphics.Color -import android.text.* -import android.text.style.ClickableSpan -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.view.Window -import android.widget.CheckBox -import android.widget.TextView -import androidx.appcompat.content.res.AppCompatResources -import androidx.core.text.getSpans -import androidx.core.view.doOnAttach -import com.alibaba.android.arouter.launcher.ARouter -import com.cmic.gen.sdk.auth.GenAuthnHelper -import com.cmic.gen.sdk.auth.GenTokenListener -import com.cmic.gen.sdk.view.GenAuthThemeConfig -import com.cmic.gen.sdk.view.GenLoginClickListener -import com.gh.gamecenter.common.constant.Constants -import com.gh.gamecenter.common.constant.EntranceConsts -import com.gh.gamecenter.common.constant.RouteConsts -import com.gh.gamecenter.common.databinding.SetWaitDialogBinding -import com.gh.gamecenter.common.utils.* -import com.gh.gamecenter.core.provider.IConfigProvider -import com.gh.gamecenter.core.runOnUiThread -import com.gh.gamecenter.core.utils.* -import com.gh.gamecenter.login.HaloApp -import com.gh.gamecenter.login.R -import com.gh.gamecenter.login.databinding.LayoutQuickLoginBinding -import com.gh.gamecenter.login.user.LoginTag -import com.gh.gamecenter.login.view.LoginActivity -import com.gh.gamecenter.login.view.QuickLoginHelperActivity -import com.lightgame.utils.AppManager -import com.lightgame.utils.Utils -import org.json.JSONObject - -/** - * 一键登录辅助类 - * 1.取号请求 - * 2.授权请求 - * 3.获取token - * 4.请求登录接口 - * - * 一键登录SDK对接文档:http://dev.10086.cn/docInside?contentId=10000067541479 - */ -@SuppressLint("StaticFieldLeak") -object QuickLoginHelper { - - private var mAuthnHelper: GenAuthnHelper? = null - private var mTokenListener: GenTokenListener? = null - private var mPreDialog: Dialog? = null - private var mLoggingDialog: Dialog? = null - private var mToken: String = "" - private var mEntrance: String = "" - private var mOpenAuthPageSuccess = false - private var mPrivacyCheckBox: CheckBox? = null - private var mOperatorText: CharSequence = "" - private var mLoginBtn: View? = null - private const val REQUEST_GET_PHONE_INFO_CODE = 100 - private const val REQUEST_LOGIN_AUTH_CODE = 101 - private const val ENTRANCE_DEFAULT = "一键登录" - private const val AUTH_ACTIVITY_NAME = "com.cmic.gen.sdk.view.GenLoginAuthActivity" - - // 1.取号请求(可提前进行) - @JvmStatic - fun getPhoneInfo() { - if (isPublishEnv()) { - GenAuthnHelper.setDebugMode(false) - } else { - GenAuthnHelper.setDebugMode(true) - } - - val config = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider - GenAuthnHelper.getInstance(HaloApp.getInstance().applicationContext).getPhoneInfo( - config?.getQuickLoginAppId(), - config?.getQuickLoginAppKey(), - { 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) { - // 防止短时间多次调用 - if (ClickUtils.isFastDoubleClick(991)) return - - mEntrance = entrance - mOpenAuthPageSuccess = false - - if (isPublishEnv()) { - GenAuthnHelper.setDebugMode(false) - } else { - GenAuthnHelper.setDebugMode(true) - } - - if (mAuthnHelper == null) { - initSDK(context) - } - - if (mTokenListener == null) { - initTokenListener() - } - - loginAuth(context) - } - - private fun initSDK(context: Context) { - mAuthnHelper = GenAuthnHelper.getInstance(HaloApp.getInstance().applicationContext) - mAuthnHelper?.run { - // 设置超时时间 - overTime = 3000 - - authThemeConfig = getConfig(context) - // 授权页面的回调方法 - setPageInListener { code, _ -> - // 返回码200087代表授权页成功拉起 - if (code == "200087") { - if (mPreDialog != null && mPreDialog!!.isShowing) { - mPreDialog?.dismiss() - } - mOpenAuthPageSuccess = true - AppManager.getInstance().recentActiveActivity?.run { - DisplayUtils.setStatusBarColor(this, R.color.transparent, !DarkModeUtils.isDarkModeOn(context)) - } - } else { // 不成功就调起验证码登录页 - toastCode(code) - startCodeLoginPage(true) - } - } - } - } - - private fun initTokenListener() { - // token回调 - mTokenListener = GenTokenListener { 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") - } - } else if (code != "200020") { // 不成功就调起验证码登录页(200020代表授权页关闭) - toastCode(code) - startCodeLoginPage(true) - } - } - } - - private fun loginAuth(context: Context) { - runOnUiThread { - val dialogContext = com.gh.gamecenter.common.utils.DialogHelper.checkDialogContext(context) - if (dialogContext is Activity && dialogContext.isFinishing) return@runOnUiThread - mPreDialog = dialogContext?.let { - Dialog(it, R.style.DialogWindowTransparent).apply { - val binding = SetWaitDialogBinding.inflate(LayoutInflater.from(dialogContext)).apply { - setWaitMessage.text = "请求登录中" - } - requestWindowFeature(Window.FEATURE_NO_TITLE) - setContentView(binding.root) - setCanceledOnTouchOutside(false) - show() - } - } - } - // 2.授权请求 - val config = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider - mAuthnHelper?.loginAuth( - config?.getQuickLoginAppId(), - config?.getQuickLoginAppKey(), - mTokenListener, - REQUEST_LOGIN_AUTH_CODE - ) - } - - private fun getConfig(context: Context): GenAuthThemeConfig { - return GenAuthThemeConfig.Builder() - .setStatusBar(Color.TRANSPARENT, !DarkModeUtils.isDarkModeOn(context)) //状态栏颜色、是否高亮 - .setAuthContentView(getCustomView(context)) //自定义布局 - // 服务条款标题栏 - .setClauseLayoutResID(R.layout.layout_quick_login_navigation, "backIv") //服务条款标题栏 - .setNavTextColor(Color.BLACK) //服务条款标题颜色 - .setNavTextSize(18) //服务条款标题字体大小 - // 手机号码 - .setNumberSize(28, true) //手机号码字体大小 - .setNumberColor(R.color.text_primary.toColor(context)) //手机号码字体颜色 - .setNumFieldOffsetY(440) //号码栏Y偏移量 - // 登录按钮 - .setLogBtnImgPath("download_button_normal_style") //登录按钮背景 - .setLogBtnText("一键登录", Color.WHITE, 16, false) //登录按钮相关 - .setLogBtnOffsetY(522) //登录按钮Y偏移量 - .setLogBtn(1000, 44) //登录按钮相关宽高 - .setLogBtnMargin(40, 40) //登录按钮相对于屏幕左右边缘边距 - // 回调 - .setGenBackPressedListener { - dismissDialog() - release() - } //返回键回调 - .setLogBtnClickListener(object : GenLoginClickListener { - override fun onLoginClickStart(oauthContext: Context, jsonObj: JSONObject?) { - runOnUiThread { - val dialogContext = com.gh.gamecenter.common.utils.DialogHelper.checkDialogContext(oauthContext) - if (dialogContext is Activity && dialogContext.isFinishing) return@runOnUiThread - mLoggingDialog = Dialog(oauthContext, R.style.DialogWindowTransparent).apply { - val binding = SetWaitDialogBinding.inflate(LayoutInflater.from(oauthContext)).apply { - root.background = R.drawable.background_shape_white_radius_8.toDrawable(context) - setWaitMessage.setTextColor(R.color.text_primary.toColor(context)) - setWaitMessage.text = R.string.logging.toResString() - } - requestWindowFeature(Window.FEATURE_NO_TITLE) - setContentView(binding.root) - setCanceledOnTouchOutside(false) - show() - } - NewFlatLogUtils.logFastLoginChoice("一键登录") - } - } - - override fun onLoginClickComplete(oauthContext: Context, jsonObj: JSONObject?) { - if (mToken.isNotBlank()) { - // 4.请求登录接口 - startQuickLoginHelperPage(LoginTag.oauth) - } - } - }) //登录按钮回调 - .setGenCheckBoxListener { oauthContext: Context, _: JSONObject? -> - showLoginPolicyDialog(oauthContext, context) { - mLoginBtn?.performClick() - } - } //勾选回调 - // 勾选框 - .setCheckTipText("") //设置未勾选时弹出提示 - .setCheckBoxImgPath("ic_selector_selected", "ic_selector_default", 16, 16) //勾选图片 - // 服务条款、用户协议、隐私政策 - .setPrivacyState(false) //默认不勾选 - .setPrivacyAlignment( - "阅读并同意 " + "用户协议、隐私政策、" + GenAuthThemeConfig.PLACEHOLDER, - "用户协议", R.string.disclaimer_url.toResString(), - "隐私政策", R.string.privacy_policy_url.toResString(), - "", "", "", "" - ) //隐私条款的协议文本,自定义条款,自定义条款链接(支持四份条款) - .setPrivacyText( - 12, - R.color.text_tertiary.toColor(context), - R.color.text_secondary.toColor(context), - true, - false - ) //条款文本设置 - .setPrivacyMargin(40, 40) //隐私条款距离手机左右边缘的边距 - .setPrivacyOffsetY(596) //隐私条款Y偏移量 - .setCheckBoxLocation(0) - // 语言 - .setAppLanguageType(0) //0.中文简体1.中文繁体2.英文 - // 转场动画 -// .setAuthPageActIn("anim_auth_in", "anim_auth_out") -// .setAuthPageActOut("anim_auth_in","anim_auth_out") - // 整体布局 - .setAuthPageWindowMode(0, 0) //授权页窗口宽高比例 - .setWindowBottom(0) //授权页是否居于底部,0=居中;1=底部,设置为1Y轴的偏移 失效 - .setFitsSystemWindows(false) -// .setThemeId(-1) //授权页弹窗主题 - .build() - } - - // 获取自定义布局View - @SuppressLint("SetTextI18n") - private fun getCustomView(context: Context): View { - return LayoutQuickLoginBinding.inflate(LayoutInflater.from(context)).apply { - descTv.text = "${getOperatorType()}提供认证服务" - closeBtn.setOnClickListener { - finishAuthActivity() - } - changeLoginBtn.setOnClickListener { - checkPolicyAndContinue(context) { - startCodeLoginPage(false) - NewFlatLogUtils.logFastLoginRelatedShow("mobile_number_verification_show") - } - } - qqBtn.setOnClickListener { - checkPolicyAndContinue(context) { - startQuickLoginHelperPage(LoginTag.qq) - NewFlatLogUtils.logFastLoginChoice("QQ") - } - } - wechatBtn.setOnClickListener { - checkPolicyAndContinue(context) { - startQuickLoginHelperPage(LoginTag.wechat) - NewFlatLogUtils.logFastLoginChoice("微信") - } - } - weiboBtn.setOnClickListener { - checkPolicyAndContinue(context) { - startQuickLoginHelperPage(LoginTag.weibo) - NewFlatLogUtils.logFastLoginChoice("微博") - } - } - root.doOnAttach { - initView(context, root) - } - privacyCheckboxClickView.setOnClickListener { - mPrivacyCheckBox?.performClick() - } - }.root - } - - private fun checkPolicyAndContinue(context: Context, callback: (() -> Unit)) { - if (mPrivacyCheckBox?.isChecked == false) { - AppManager.getInstance().recentActiveActivity?.run { - showLoginPolicyDialog(this, context, callback) - } - } else { - callback.invoke() - } - } - - private fun showLoginPolicyDialog(oauthContext: Context, context: Context, callback: (() -> Unit)) { - DialogHelper.showLoginPolicyDialog( - oauthContext, - context, - true, - mOperatorText - ) { - mPrivacyCheckBox?.isChecked = true - callback.invoke() - } - NewFlatLogUtils.logFastLoginRelatedShow("login_privacy_policy_pop_show") - } - - private fun initView(context: Context, root: View) { - NewFlatLogUtils.logFastLoginRelatedShow("fast_login_show") - - (root.parent as? ViewGroup)?.run { - setBackgroundColor(R.color.ui_surface.toColor(context)) - - val phoneNumTv = (getChildAt(1) as? ViewGroup)?.getChildAt(0) as? TextView - phoneNumTv?.run { - includeFontPadding = false - text = text.toString().replace("*", "・") - } - - mLoginBtn = getChildAt(2) - mLoginBtn?.background = R.drawable.download_button_normal_style.toDrawable(context) - - val privacyContainer = getChildAt(3) as? ViewGroup - privacyContainer?.run { - mPrivacyCheckBox = (getChildAt(0) as? ViewGroup)?.getChildAt(0) as? CheckBox - mPrivacyCheckBox?.run { - setOnCheckedChangeListener { buttonView, isChecked -> - if (isChecked) { - buttonView.background = - AppCompatResources.getDrawable(context, R.drawable.ic_selector_selected) - } else { - buttonView.background = - AppCompatResources.getDrawable(context, R.drawable.ic_selector_default) - } - } - background = AppCompatResources.getDrawable(context, R.drawable.ic_selector_default) - } - - val privacyTv = getChildAt(1) as? TextView - privacyTv?.run { - layoutParams = (layoutParams as ViewGroup.MarginLayoutParams).apply { - leftMargin = 4F.dip2px() - } - includeFontPadding = false - val index = text.indexOfLast { it == '、' } + 1 - mOperatorText = text.substring(index, text.length) - val spans = (text as SpannableString).getSpans(0, text.length) - text = getPrivacyContent(text.replace(" ".toRegex(), ""), spans) - } - } - } - - root.bringToFront() - } - - private fun getPrivacyContent(content: CharSequence, spans: Array): SpannableStringBuilder? { - return SpannableStringBuilder(content).apply { - val hypertextList = arrayListOf( - mOperatorText.toString(), - "《用户协议》", - "《隐私政策》", - ) - val positionListPairList = arrayListOf>() - - for (hypertext in hypertextList) { - val index = indexOf(hypertext, 0) - if (index != -1) { - positionListPairList.add(Pair(index, index + hypertext.length)) - } - } - - for ((index, hypertextPositionPair) in positionListPairList.withIndex()) { - setSpan(object : ClickableSpan() { - override fun updateDrawState(ds: TextPaint) { - super.updateDrawState(ds) - spans[index].updateDrawState(ds) - ds.isUnderlineText = true - } - - override fun onClick(widget: View) { - spans[index].onClick(widget) - } - }, hypertextPositionPair.first, hypertextPositionPair.second, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) - } - } - } - - // 获取运营商名称 - private fun getOperatorType(): String { - mAuthnHelper?.run { - val jsonObject = getNetworkType(HaloApp.getInstance().applicationContext) - tryWithDefaultCatch { - return when (jsonObject.optString("operatortype").toInt()) { - 1 -> "中国移动" - 2 -> "中国联通" - 3 -> "中国电信" - else -> "" - } - } - } - return "" - } - - // 打开验证码登录页 - private fun startCodeLoginPage(isFinishAuth: Boolean) { - if (mPreDialog != null && mPreDialog!!.isShowing) { - tryWithDefaultCatch { - mPreDialog?.dismiss() - } - } - - if (isFinishAuth) { - finishAuthActivity() - } - - AppManager.getInstance().recentActiveActivity?.run { - startActivity( - LoginActivity.getIntent( - this, - if (mOpenAuthPageSuccess) ENTRANCE_DEFAULT else mEntrance, - mOpenAuthPageSuccess - ) - ) - } - } - - // 打开快速登录辅助页 - private fun startQuickLoginHelperPage(loginTag: LoginTag) { - AppManager.getInstance().recentActiveActivity?.run { - val intent = Intent(this, QuickLoginHelperActivity::class.java).apply { - putExtra(EntranceConsts.KEY_ENTRANCE, mEntrance) - putExtra(EntranceConsts.KET_TYPE, loginTag) - if (loginTag == LoginTag.oauth) { - putExtra(EntranceConsts.KEY_DATA, mToken) - } - } - startActivity(intent) - } - } - - @JvmStatic - fun finishAuthActivity() { - dismissDialog() - mAuthnHelper?.quitAuthActivity() - // 调用quitAuthActivity()方法有概率会关不掉授权页,所以使用在调用quitAuthActivity()方法后,判断当前Activity是否还是AuthActivity,如果是则finish - AppManager.getInstance().recentActiveActivity?.run { - if (localClassName == AUTH_ACTIVITY_NAME) { - finish() - } - } - release() - } - - private fun toastCode(code: String) { - debugOnly { - Utils.log("QuickLoginHelper -> code = $code") - } - -// if (code == "200023" || code == "200028") { -// toast("验证码登录") +//package com.gh.gamecenter.login.utils +// +//import android.annotation.SuppressLint +//import android.app.Activity +//import android.app.Dialog +//import android.content.Context +//import android.content.Intent +//import android.graphics.Color +//import android.text.* +//import android.text.style.ClickableSpan +//import android.view.LayoutInflater +//import android.view.View +//import android.view.ViewGroup +//import android.view.Window +//import android.widget.CheckBox +//import android.widget.TextView +//import androidx.appcompat.content.res.AppCompatResources +//import androidx.core.text.getSpans +//import androidx.core.view.doOnAttach +//import com.alibaba.android.arouter.launcher.ARouter +//import com.cmic.gen.sdk.auth.GenAuthnHelper +//import com.cmic.gen.sdk.auth.GenTokenListener +//import com.cmic.gen.sdk.view.GenAuthThemeConfig +//import com.cmic.gen.sdk.view.GenLoginClickListener +//import com.gh.gamecenter.common.constant.Constants +//import com.gh.gamecenter.common.constant.EntranceConsts +//import com.gh.gamecenter.common.constant.RouteConsts +//import com.gh.gamecenter.common.databinding.SetWaitDialogBinding +//import com.gh.gamecenter.common.utils.* +//import com.gh.gamecenter.core.provider.IConfigProvider +//import com.gh.gamecenter.core.runOnUiThread +//import com.gh.gamecenter.core.utils.* +//import com.gh.gamecenter.login.HaloApp +//import com.gh.gamecenter.login.R +//import com.gh.gamecenter.login.databinding.LayoutQuickLoginBinding +//import com.gh.gamecenter.login.user.LoginTag +//import com.gh.gamecenter.login.view.LoginActivity +//import com.gh.gamecenter.login.view.QuickLoginHelperActivity +//import com.lightgame.utils.AppManager +//import com.lightgame.utils.Utils +//import org.json.JSONObject +// +///** +// * 一键登录辅助类 +// * 1.取号请求 +// * 2.授权请求 +// * 3.获取token +// * 4.请求登录接口 +// * +// * 一键登录SDK对接文档:http://dev.10086.cn/docInside?contentId=10000067541479 +// */ +//@SuppressLint("StaticFieldLeak") +//object QuickLoginHelper { +// +// private var mAuthnHelper: GenAuthnHelper? = null +// private var mTokenListener: GenTokenListener? = null +// private var mPreDialog: Dialog? = null +// private var mLoggingDialog: Dialog? = null +// private var mToken: String = "" +// private var mEntrance: String = "" +// private var mOpenAuthPageSuccess = false +// private var mPrivacyCheckBox: CheckBox? = null +// private var mOperatorText: CharSequence = "" +// private var mLoginBtn: View? = null +// private const val REQUEST_GET_PHONE_INFO_CODE = 100 +// private const val REQUEST_LOGIN_AUTH_CODE = 101 +// private const val ENTRANCE_DEFAULT = "一键登录" +// private const val AUTH_ACTIVITY_NAME = "com.cmic.gen.sdk.view.GenLoginAuthActivity" +// +// // 1.取号请求(可提前进行) +// @JvmStatic +// fun getPhoneInfo() { +// if (isPublishEnv()) { +// GenAuthnHelper.setDebugMode(false) // } else { -// toast(code) +// GenAuthnHelper.setDebugMode(true) // } - } - - private fun dismissDialog() { - if (mPreDialog != null && mPreDialog!!.isShowing) { - mPreDialog?.dismiss() - } - if (mLoggingDialog != null && mLoggingDialog!!.isShowing) { - mLoggingDialog?.dismiss() - } - } - - private fun release() { - mAuthnHelper = null - mTokenListener = null - mPreDialog = null - mLoggingDialog = null - mPrivacyCheckBox = null - mLoginBtn = null - } -} \ No newline at end of file +// +// val config = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider +// GenAuthnHelper.getInstance(HaloApp.getInstance().applicationContext).getPhoneInfo( +// config?.getQuickLoginAppId(), +// config?.getQuickLoginAppKey(), +// { 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) { +// // 防止短时间多次调用 +// if (ClickUtils.isFastDoubleClick(991)) return +// +// mEntrance = entrance +// mOpenAuthPageSuccess = false +// +// if (isPublishEnv()) { +// GenAuthnHelper.setDebugMode(false) +// } else { +// GenAuthnHelper.setDebugMode(true) +// } +// +// if (mAuthnHelper == null) { +// initSDK(context) +// } +// +// if (mTokenListener == null) { +// initTokenListener() +// } +// +// loginAuth(context) +// } +// +// private fun initSDK(context: Context) { +// mAuthnHelper = GenAuthnHelper.getInstance(HaloApp.getInstance().applicationContext) +// mAuthnHelper?.run { +// // 设置超时时间 +// overTime = 3000 +// +// authThemeConfig = getConfig(context) +// // 授权页面的回调方法 +// setPageInListener { code, _ -> +// // 返回码200087代表授权页成功拉起 +// if (code == "200087") { +// if (mPreDialog != null && mPreDialog!!.isShowing) { +// mPreDialog?.dismiss() +// } +// mOpenAuthPageSuccess = true +// AppManager.getInstance().recentActiveActivity?.run { +// DisplayUtils.setStatusBarColor(this, R.color.transparent, !DarkModeUtils.isDarkModeOn(context)) +// } +// } else { // 不成功就调起验证码登录页 +// toastCode(code) +// startCodeLoginPage(true) +// } +// } +// } +// } +// +// private fun initTokenListener() { +// // token回调 +// mTokenListener = GenTokenListener { 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") +// } +// } else if (code != "200020") { // 不成功就调起验证码登录页(200020代表授权页关闭) +// toastCode(code) +// startCodeLoginPage(true) +// } +// } +// } +// +// private fun loginAuth(context: Context) { +// runOnUiThread { +// val dialogContext = com.gh.gamecenter.common.utils.DialogHelper.checkDialogContext(context) +// if (dialogContext is Activity && dialogContext.isFinishing) return@runOnUiThread +// mPreDialog = dialogContext?.let { +// Dialog(it, R.style.DialogWindowTransparent).apply { +// val binding = SetWaitDialogBinding.inflate(LayoutInflater.from(dialogContext)).apply { +// setWaitMessage.text = "请求登录中" +// } +// requestWindowFeature(Window.FEATURE_NO_TITLE) +// setContentView(binding.root) +// setCanceledOnTouchOutside(false) +// show() +// } +// } +// } +// // 2.授权请求 +// val config = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider +// mAuthnHelper?.loginAuth( +// config?.getQuickLoginAppId(), +// config?.getQuickLoginAppKey(), +// mTokenListener, +// REQUEST_LOGIN_AUTH_CODE +// ) +// } +// +// private fun getConfig(context: Context): GenAuthThemeConfig { +// return GenAuthThemeConfig.Builder() +// .setStatusBar(Color.TRANSPARENT, !DarkModeUtils.isDarkModeOn(context)) //状态栏颜色、是否高亮 +// .setAuthContentView(getCustomView(context)) //自定义布局 +// // 服务条款标题栏 +// .setClauseLayoutResID(R.layout.layout_quick_login_navigation, "backIv") //服务条款标题栏 +// .setNavTextColor(Color.BLACK) //服务条款标题颜色 +// .setNavTextSize(18) //服务条款标题字体大小 +// // 手机号码 +// .setNumberSize(28, true) //手机号码字体大小 +// .setNumberColor(R.color.text_primary.toColor(context)) //手机号码字体颜色 +// .setNumFieldOffsetY(440) //号码栏Y偏移量 +// // 登录按钮 +// .setLogBtnImgPath("download_button_normal_style") //登录按钮背景 +// .setLogBtnText("一键登录", Color.WHITE, 16, false) //登录按钮相关 +// .setLogBtnOffsetY(522) //登录按钮Y偏移量 +// .setLogBtn(1000, 44) //登录按钮相关宽高 +// .setLogBtnMargin(40, 40) //登录按钮相对于屏幕左右边缘边距 +// // 回调 +// .setGenBackPressedListener { +// dismissDialog() +// release() +// } //返回键回调 +// .setLogBtnClickListener(object : GenLoginClickListener { +// override fun onLoginClickStart(oauthContext: Context, jsonObj: JSONObject?) { +// runOnUiThread { +// val dialogContext = com.gh.gamecenter.common.utils.DialogHelper.checkDialogContext(oauthContext) +// if (dialogContext is Activity && dialogContext.isFinishing) return@runOnUiThread +// mLoggingDialog = Dialog(oauthContext, R.style.DialogWindowTransparent).apply { +// val binding = SetWaitDialogBinding.inflate(LayoutInflater.from(oauthContext)).apply { +// root.background = R.drawable.background_shape_white_radius_8.toDrawable(context) +// setWaitMessage.setTextColor(R.color.text_primary.toColor(context)) +// setWaitMessage.text = R.string.logging.toResString() +// } +// requestWindowFeature(Window.FEATURE_NO_TITLE) +// setContentView(binding.root) +// setCanceledOnTouchOutside(false) +// show() +// } +// NewFlatLogUtils.logFastLoginChoice("一键登录") +// } +// } +// +// override fun onLoginClickComplete(oauthContext: Context, jsonObj: JSONObject?) { +// if (mToken.isNotBlank()) { +// // 4.请求登录接口 +// startQuickLoginHelperPage(LoginTag.oauth) +// } +// } +// }) //登录按钮回调 +// .setGenCheckBoxListener { oauthContext: Context, _: JSONObject? -> +// showLoginPolicyDialog(oauthContext, context) { +// mLoginBtn?.performClick() +// } +// } //勾选回调 +// // 勾选框 +// .setCheckTipText("") //设置未勾选时弹出提示 +// .setCheckBoxImgPath("ic_selector_selected", "ic_selector_default", 16, 16) //勾选图片 +// // 服务条款、用户协议、隐私政策 +// .setPrivacyState(false) //默认不勾选 +// .setPrivacyAlignment( +// "阅读并同意 " + "用户协议、隐私政策、" + GenAuthThemeConfig.PLACEHOLDER, +// "用户协议", R.string.disclaimer_url.toResString(), +// "隐私政策", R.string.privacy_policy_url.toResString(), +// "", "", "", "" +// ) //隐私条款的协议文本,自定义条款,自定义条款链接(支持四份条款) +// .setPrivacyText( +// 12, +// R.color.text_tertiary.toColor(context), +// R.color.text_secondary.toColor(context), +// true, +// false +// ) //条款文本设置 +// .setPrivacyMargin(40, 40) //隐私条款距离手机左右边缘的边距 +// .setPrivacyOffsetY(596) //隐私条款Y偏移量 +// .setCheckBoxLocation(0) +// // 语言 +// .setAppLanguageType(0) //0.中文简体1.中文繁体2.英文 +// // 转场动画 +//// .setAuthPageActIn("anim_auth_in", "anim_auth_out") +//// .setAuthPageActOut("anim_auth_in","anim_auth_out") +// // 整体布局 +// .setAuthPageWindowMode(0, 0) //授权页窗口宽高比例 +// .setWindowBottom(0) //授权页是否居于底部,0=居中;1=底部,设置为1Y轴的偏移 失效 +// .setFitsSystemWindows(false) +//// .setThemeId(-1) //授权页弹窗主题 +// .build() +// } +// +// // 获取自定义布局View +// @SuppressLint("SetTextI18n") +// private fun getCustomView(context: Context): View { +// return LayoutQuickLoginBinding.inflate(LayoutInflater.from(context)).apply { +// descTv.text = "${getOperatorType()}提供认证服务" +// closeBtn.setOnClickListener { +// finishAuthActivity() +// } +// changeLoginBtn.setOnClickListener { +// checkPolicyAndContinue(context) { +// startCodeLoginPage(false) +// NewFlatLogUtils.logFastLoginRelatedShow("mobile_number_verification_show") +// } +// } +// qqBtn.setOnClickListener { +// checkPolicyAndContinue(context) { +// startQuickLoginHelperPage(LoginTag.qq) +// NewFlatLogUtils.logFastLoginChoice("QQ") +// } +// } +// wechatBtn.setOnClickListener { +// checkPolicyAndContinue(context) { +// startQuickLoginHelperPage(LoginTag.wechat) +// NewFlatLogUtils.logFastLoginChoice("微信") +// } +// } +// weiboBtn.setOnClickListener { +// checkPolicyAndContinue(context) { +// startQuickLoginHelperPage(LoginTag.weibo) +// NewFlatLogUtils.logFastLoginChoice("微博") +// } +// } +// root.doOnAttach { +// initView(context, root) +// } +// privacyCheckboxClickView.setOnClickListener { +// mPrivacyCheckBox?.performClick() +// } +// }.root +// } +// +// private fun checkPolicyAndContinue(context: Context, callback: (() -> Unit)) { +// if (mPrivacyCheckBox?.isChecked == false) { +// AppManager.getInstance().recentActiveActivity?.run { +// showLoginPolicyDialog(this, context, callback) +// } +// } else { +// callback.invoke() +// } +// } +// +// private fun showLoginPolicyDialog(oauthContext: Context, context: Context, callback: (() -> Unit)) { +// DialogHelper.showLoginPolicyDialog( +// oauthContext, +// context, +// true, +// mOperatorText +// ) { +// mPrivacyCheckBox?.isChecked = true +// callback.invoke() +// } +// NewFlatLogUtils.logFastLoginRelatedShow("login_privacy_policy_pop_show") +// } +// +// private fun initView(context: Context, root: View) { +// NewFlatLogUtils.logFastLoginRelatedShow("fast_login_show") +// +// (root.parent as? ViewGroup)?.run { +// setBackgroundColor(R.color.ui_surface.toColor(context)) +// +// val phoneNumTv = (getChildAt(1) as? ViewGroup)?.getChildAt(0) as? TextView +// phoneNumTv?.run { +// includeFontPadding = false +// text = text.toString().replace("*", "・") +// } +// +// mLoginBtn = getChildAt(2) +// mLoginBtn?.background = R.drawable.download_button_normal_style.toDrawable(context) +// +// val privacyContainer = getChildAt(3) as? ViewGroup +// privacyContainer?.run { +// mPrivacyCheckBox = (getChildAt(0) as? ViewGroup)?.getChildAt(0) as? CheckBox +// mPrivacyCheckBox?.run { +// setOnCheckedChangeListener { buttonView, isChecked -> +// if (isChecked) { +// buttonView.background = +// AppCompatResources.getDrawable(context, R.drawable.ic_selector_selected) +// } else { +// buttonView.background = +// AppCompatResources.getDrawable(context, R.drawable.ic_selector_default) +// } +// } +// background = AppCompatResources.getDrawable(context, R.drawable.ic_selector_default) +// } +// +// val privacyTv = getChildAt(1) as? TextView +// privacyTv?.run { +// layoutParams = (layoutParams as ViewGroup.MarginLayoutParams).apply { +// leftMargin = 4F.dip2px() +// } +// includeFontPadding = false +// val index = text.indexOfLast { it == '、' } + 1 +// mOperatorText = text.substring(index, text.length) +// val spans = (text as SpannableString).getSpans(0, text.length) +// text = getPrivacyContent(text.replace(" ".toRegex(), ""), spans) +// } +// } +// } +// +// root.bringToFront() +// } +// +// private fun getPrivacyContent(content: CharSequence, spans: Array): SpannableStringBuilder? { +// return SpannableStringBuilder(content).apply { +// val hypertextList = arrayListOf( +// mOperatorText.toString(), +// "《用户协议》", +// "《隐私政策》", +// ) +// val positionListPairList = arrayListOf>() +// +// for (hypertext in hypertextList) { +// val index = indexOf(hypertext, 0) +// if (index != -1) { +// positionListPairList.add(Pair(index, index + hypertext.length)) +// } +// } +// +// for ((index, hypertextPositionPair) in positionListPairList.withIndex()) { +// setSpan(object : ClickableSpan() { +// override fun updateDrawState(ds: TextPaint) { +// super.updateDrawState(ds) +// spans[index].updateDrawState(ds) +// ds.isUnderlineText = true +// } +// +// override fun onClick(widget: View) { +// spans[index].onClick(widget) +// } +// }, hypertextPositionPair.first, hypertextPositionPair.second, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) +// } +// } +// } +// +// // 获取运营商名称 +// private fun getOperatorType(): String { +// mAuthnHelper?.run { +// val jsonObject = getNetworkType(HaloApp.getInstance().applicationContext) +// tryWithDefaultCatch { +// return when (jsonObject.optString("operatortype").toInt()) { +// 1 -> "中国移动" +// 2 -> "中国联通" +// 3 -> "中国电信" +// else -> "" +// } +// } +// } +// return "" +// } +// +// // 打开验证码登录页 +// private fun startCodeLoginPage(isFinishAuth: Boolean) { +// if (mPreDialog != null && mPreDialog!!.isShowing) { +// tryWithDefaultCatch { +// mPreDialog?.dismiss() +// } +// } +// +// if (isFinishAuth) { +// finishAuthActivity() +// } +// +// AppManager.getInstance().recentActiveActivity?.run { +// startActivity( +// LoginActivity.getIntent( +// this, +// if (mOpenAuthPageSuccess) ENTRANCE_DEFAULT else mEntrance, +// mOpenAuthPageSuccess +// ) +// ) +// } +// } +// +// // 打开快速登录辅助页 +// private fun startQuickLoginHelperPage(loginTag: LoginTag) { +// AppManager.getInstance().recentActiveActivity?.run { +// val intent = Intent(this, QuickLoginHelperActivity::class.java).apply { +// putExtra(EntranceConsts.KEY_ENTRANCE, mEntrance) +// putExtra(EntranceConsts.KET_TYPE, loginTag) +// if (loginTag == LoginTag.oauth) { +// putExtra(EntranceConsts.KEY_DATA, mToken) +// } +// } +// startActivity(intent) +// } +// } +// +// @JvmStatic +// fun finishAuthActivity() { +// dismissDialog() +// mAuthnHelper?.quitAuthActivity() +// // 调用quitAuthActivity()方法有概率会关不掉授权页,所以使用在调用quitAuthActivity()方法后,判断当前Activity是否还是AuthActivity,如果是则finish +// AppManager.getInstance().recentActiveActivity?.run { +// if (localClassName == AUTH_ACTIVITY_NAME) { +// finish() +// } +// } +// release() +// } +// +// private fun toastCode(code: String) { +// debugOnly { +// Utils.log("QuickLoginHelper -> code = $code") +// } +// +//// if (code == "200023" || code == "200028") { +//// toast("验证码登录") +//// } else { +//// toast(code) +//// } +// } +// +// private fun dismissDialog() { +// if (mPreDialog != null && mPreDialog!!.isShowing) { +// mPreDialog?.dismiss() +// } +// if (mLoggingDialog != null && mLoggingDialog!!.isShowing) { +// mLoggingDialog?.dismiss() +// } +// } +// +// private fun release() { +// mAuthnHelper = null +// mTokenListener = null +// mPreDialog = null +// mLoggingDialog = null +// mPrivacyCheckBox = null +// mLoginBtn = null +// } +//} \ No newline at end of file diff --git a/module_login/src/main/java/com/gh/gamecenter/login/view/LoginFragment.java b/module_login/src/main/java/com/gh/gamecenter/login/view/LoginFragment.java index d8019718d5..4f8e992c04 100644 --- a/module_login/src/main/java/com/gh/gamecenter/login/view/LoginFragment.java +++ b/module_login/src/main/java/com/gh/gamecenter/login/view/LoginFragment.java @@ -56,7 +56,6 @@ import com.gh.gamecenter.login.utils.DialogHelper; import com.gh.gamecenter.login.utils.LoginHelper; import com.gh.gamecenter.login.utils.LoginUtils; import com.gh.gamecenter.login.utils.NewFlatLogUtils; -import com.gh.gamecenter.login.utils.QuickLoginHelper; import org.greenrobot.eventbus.EventBus; import org.jetbrains.annotations.NotNull; @@ -466,10 +465,10 @@ public class LoginFragment if (getActivity() != null && UserManager.getInstance().isLoggedIn()) { getActivity().finish(); - // 如果是从一键登录页跳转过来的,登录成功后也要finish一键登录页 - if (mIsFromQuickLogin) { - QuickLoginHelper.finishAuthActivity(); - } +// // 如果是从一键登录页跳转过来的,登录成功后也要finish一键登录页 +// if (mIsFromQuickLogin) { +// QuickLoginHelper.finishAuthActivity(); +// } } } } diff --git a/module_login/src/main/java/com/gh/gamecenter/login/view/QuickLoginHelperActivity.kt b/module_login/src/main/java/com/gh/gamecenter/login/view/QuickLoginHelperActivity.kt index 8080695673..56be98e576 100644 --- a/module_login/src/main/java/com/gh/gamecenter/login/view/QuickLoginHelperActivity.kt +++ b/module_login/src/main/java/com/gh/gamecenter/login/view/QuickLoginHelperActivity.kt @@ -1,142 +1,142 @@ -package com.gh.gamecenter.login.view - -import android.content.Intent -import android.os.Build -import android.os.Bundle -import android.text.TextUtils -import androidx.activity.viewModels -import androidx.lifecycle.Observer -import com.alibaba.android.arouter.launcher.ARouter -import com.gh.gamecenter.common.base.activity.BaseActivity -import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment -import com.gh.gamecenter.common.constant.Constants -import com.gh.gamecenter.common.constant.EntranceConsts -import com.gh.gamecenter.common.constant.RouteConsts -import com.gh.gamecenter.common.retrofit.ApiResponse -import com.gh.gamecenter.core.provider.ILogUtilsProvider -import com.gh.gamecenter.core.utils.SPUtils -import com.gh.gamecenter.login.HaloApp -import com.gh.gamecenter.login.R -import com.gh.gamecenter.login.entity.UserInfoEntity -import com.gh.gamecenter.login.user.LoginTag -import com.gh.gamecenter.login.user.UserManager -import com.gh.gamecenter.login.user.UserViewModel -import com.gh.gamecenter.login.utils.LoginHelper -import com.gh.gamecenter.login.utils.NewFlatLogUtils -import com.gh.gamecenter.login.utils.QuickLoginHelper -import org.json.JSONObject - -/** - * 快速登录辅助页,此页面为透明页面,用于执行各快速登录流程 - */ -class QuickLoginHelperActivity : BaseActivity(), LoginHelper.LoginCallback, Observer> { - - private var mLoginTag: LoginTag? = null - private var mLoginDialog: WaitingDialogFragment? = null - private val mUserViewModel: UserViewModel by viewModels { UserViewModel.Factory(HaloApp.getInstance()) } - - override fun getLayoutId() = 0 - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - mUserViewModel.loginObsUserinfo.observe(this, this) - handleLoginType() - } - - private fun handleLoginType() { - mLoginTag = if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { - intent?.getSerializableExtra(EntranceConsts.KET_TYPE) as? LoginTag - } else { - intent?.getSerializableExtra(EntranceConsts.KET_TYPE, LoginTag::class.java) - } - when (mLoginTag ?: finish()) { - LoginTag.qq -> LoginHelper.loginWithQQ(this, this) - LoginTag.wechat -> LoginHelper.loginWithWechat(this) - LoginTag.weibo -> LoginHelper.loginWithWeibo(this, this) - LoginTag.oauth -> { - val token = intent.getStringExtra(EntranceConsts.KEY_DATA) ?: finish() - login(JSONObject(mapOf("token" to token)), LoginTag.oauth) - } - } - } - - private fun login(content: JSONObject, loginTag: LoginTag) { - val logUtils = ARouter.getInstance().build(RouteConsts.provider.logUtils).navigation() as? ILogUtilsProvider - logUtils?.login("logging", loginTag.name, mEntrance) - if (loginTag != LoginTag.oauth) { - mLoginDialog = WaitingDialogFragment.newInstance(getString(R.string.logging)) - mLoginDialog?.show(supportFragmentManager, null) - } - mUserViewModel.login(content, loginTag) - } - - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - super.onActivityResult(requestCode, resultCode, data) - when (requestCode) { - // QQ Login callback - com.tencent.connect.common.Constants.REQUEST_LOGIN -> LoginHelper.onQQLoginCallback( - requestCode, - resultCode, - data - ) - // WeiBo Login callback - 32973 -> LoginHelper.onWeiboLoginCallback(this, requestCode, resultCode, data) - } - } - - override fun onLoginSuccess(loginType: LoginTag, jsonContent: JSONObject) { - login(jsonContent, loginType) - } - - override fun onLoginFailure(loginType: LoginTag, error: String) { - toast(error) - finish() - } - - override fun onChanged(response: ApiResponse?) { - if (response != null && mLoginDialog != null) { - mLoginDialog?.dismissAllowingStateLoss() - mLoginDialog = null - } - - if (response?.data != null) { - val loginTokenEntity = UserManager.getInstance().loginTokenEntity - if (loginTokenEntity != null) { - - val loginType = loginTokenEntity.loginType - val logUtils = - ARouter.getInstance().build(RouteConsts.provider.logUtils).navigation() as? ILogUtilsProvider - logUtils?.login("success", loginType, mEntrance) - - if (loginType == LoginTag.oauth.name) { - SPUtils.setBoolean(Constants.SP_HAS_GET_PHONE_INFO, false) - NewFlatLogUtils.logFastLoginResult("成功") - } - - // 第三方登录方式登录后跳转绑定手机页面(https://gitlab.ghzs.com/pm/halo-app-issues/-/issues/1206) - val isThirdPartyLogin = - LoginTag.qq.name == loginType || LoginTag.wechat.name == loginType || LoginTag.weibo.name == loginType || LoginTag.douyin.name == loginType - if (isThirdPartyLogin - && TextUtils.isEmpty(response.data.loginMobile) - ) { - ARouter.getInstance().build(RouteConsts.activity.bindPhoneActivity) - .withBoolean(EntranceConsts.KEY_FROM_LOGIN, true) - .withBoolean(EntranceConsts.KEY_CHANGE_PHONE, false) - .navigation() - } - } - - // 防止UserManager数据丢失后重复登录 - if (TextUtils.isEmpty(UserManager.getInstance().token)) { - mUserViewModel.retryCheckLogin() - } - - finish() - if (UserManager.getInstance().isLoggedIn) { - QuickLoginHelper.finishAuthActivity() - } - } else if ((response?.httpException != null || response?.throwable != null) && mLoginTag == LoginTag.oauth) { - NewFlatLogUtils.logFastLoginResult("失败") - } - } -} \ No newline at end of file +//package com.gh.gamecenter.login.view +// +//import android.content.Intent +//import android.os.Build +//import android.os.Bundle +//import android.text.TextUtils +//import androidx.activity.viewModels +//import androidx.lifecycle.Observer +//import com.alibaba.android.arouter.launcher.ARouter +//import com.gh.gamecenter.common.base.activity.BaseActivity +//import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment +//import com.gh.gamecenter.common.constant.Constants +//import com.gh.gamecenter.common.constant.EntranceConsts +//import com.gh.gamecenter.common.constant.RouteConsts +//import com.gh.gamecenter.common.retrofit.ApiResponse +//import com.gh.gamecenter.core.provider.ILogUtilsProvider +//import com.gh.gamecenter.core.utils.SPUtils +//import com.gh.gamecenter.login.HaloApp +//import com.gh.gamecenter.login.R +//import com.gh.gamecenter.login.entity.UserInfoEntity +//import com.gh.gamecenter.login.user.LoginTag +//import com.gh.gamecenter.login.user.UserManager +//import com.gh.gamecenter.login.user.UserViewModel +//import com.gh.gamecenter.login.utils.LoginHelper +//import com.gh.gamecenter.login.utils.NewFlatLogUtils +//import com.gh.gamecenter.login.utils.QuickLoginHelper +//import org.json.JSONObject +// +///** +// * 快速登录辅助页,此页面为透明页面,用于执行各快速登录流程 +// */ +//class QuickLoginHelperActivity : BaseActivity(), LoginHelper.LoginCallback, Observer> { +// +// private var mLoginTag: LoginTag? = null +// private var mLoginDialog: WaitingDialogFragment? = null +// private val mUserViewModel: UserViewModel by viewModels { UserViewModel.Factory(HaloApp.getInstance()) } +// +// override fun getLayoutId() = 0 +// +// override fun onCreate(savedInstanceState: Bundle?) { +// super.onCreate(savedInstanceState) +// mUserViewModel.loginObsUserinfo.observe(this, this) +// handleLoginType() +// } +// +// private fun handleLoginType() { +// mLoginTag = if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { +// intent?.getSerializableExtra(EntranceConsts.KET_TYPE) as? LoginTag +// } else { +// intent?.getSerializableExtra(EntranceConsts.KET_TYPE, LoginTag::class.java) +// } +// when (mLoginTag ?: finish()) { +// LoginTag.qq -> LoginHelper.loginWithQQ(this, this) +// LoginTag.wechat -> LoginHelper.loginWithWechat(this) +// LoginTag.weibo -> LoginHelper.loginWithWeibo(this, this) +// LoginTag.oauth -> { +// val token = intent.getStringExtra(EntranceConsts.KEY_DATA) ?: finish() +// login(JSONObject(mapOf("token" to token)), LoginTag.oauth) +// } +// } +// } +// +// private fun login(content: JSONObject, loginTag: LoginTag) { +// val logUtils = ARouter.getInstance().build(RouteConsts.provider.logUtils).navigation() as? ILogUtilsProvider +// logUtils?.login("logging", loginTag.name, mEntrance) +// if (loginTag != LoginTag.oauth) { +// mLoginDialog = WaitingDialogFragment.newInstance(getString(R.string.logging)) +// mLoginDialog?.show(supportFragmentManager, null) +// } +// mUserViewModel.login(content, loginTag) +// } +// +// override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { +// super.onActivityResult(requestCode, resultCode, data) +// when (requestCode) { +// // QQ Login callback +// com.tencent.connect.common.Constants.REQUEST_LOGIN -> LoginHelper.onQQLoginCallback( +// requestCode, +// resultCode, +// data +// ) +// // WeiBo Login callback +// 32973 -> LoginHelper.onWeiboLoginCallback(this, requestCode, resultCode, data) +// } +// } +// +// override fun onLoginSuccess(loginType: LoginTag, jsonContent: JSONObject) { +// login(jsonContent, loginType) +// } +// +// override fun onLoginFailure(loginType: LoginTag, error: String) { +// toast(error) +// finish() +// } +// +// override fun onChanged(response: ApiResponse?) { +// if (response != null && mLoginDialog != null) { +// mLoginDialog?.dismissAllowingStateLoss() +// mLoginDialog = null +// } +// +// if (response?.data != null) { +// val loginTokenEntity = UserManager.getInstance().loginTokenEntity +// if (loginTokenEntity != null) { +// +// val loginType = loginTokenEntity.loginType +// val logUtils = +// ARouter.getInstance().build(RouteConsts.provider.logUtils).navigation() as? ILogUtilsProvider +// logUtils?.login("success", loginType, mEntrance) +// +// if (loginType == LoginTag.oauth.name) { +// SPUtils.setBoolean(Constants.SP_HAS_GET_PHONE_INFO, false) +// NewFlatLogUtils.logFastLoginResult("成功") +// } +// +// // 第三方登录方式登录后跳转绑定手机页面(https://gitlab.ghzs.com/pm/halo-app-issues/-/issues/1206) +// val isThirdPartyLogin = +// LoginTag.qq.name == loginType || LoginTag.wechat.name == loginType || LoginTag.weibo.name == loginType || LoginTag.douyin.name == loginType +// if (isThirdPartyLogin +// && TextUtils.isEmpty(response.data.loginMobile) +// ) { +// ARouter.getInstance().build(RouteConsts.activity.bindPhoneActivity) +// .withBoolean(EntranceConsts.KEY_FROM_LOGIN, true) +// .withBoolean(EntranceConsts.KEY_CHANGE_PHONE, false) +// .navigation() +// } +// } +// +// // 防止UserManager数据丢失后重复登录 +// if (TextUtils.isEmpty(UserManager.getInstance().token)) { +// mUserViewModel.retryCheckLogin() +// } +// +// finish() +// if (UserManager.getInstance().isLoggedIn) { +// QuickLoginHelper.finishAuthActivity() +// } +// } else if ((response?.httpException != null || response?.throwable != null) && mLoginTag == LoginTag.oauth) { +// NewFlatLogUtils.logFastLoginResult("失败") +// } +// } +//} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 7113d63aea..117d8d4a10 100644 --- a/settings.gradle +++ b/settings.gradle @@ -10,12 +10,12 @@ include ':module_setting' include ':module_setting_compose' include ':ndownload' include ':module_core_feature' -include ':module_lib' +//include ':module_lib' include ':module_sensors_data' -include ':feature:vpn' +//include ':feature:vpn' include ':feature:pkg' include ':feature:floating-window' -include ':feature:beizi_startup_ad' +//include ':feature:beizi_startup_ad' include ':feature:csj_ad' include ':feature:oaid_lib' include ':feature:oaid'