326 lines
13 KiB
Java
326 lines
13 KiB
Java
package com.qxcm.qxlive;
|
|
|
|
|
|
import android.content.Intent;
|
|
import android.graphics.Color;
|
|
import android.os.Build;
|
|
import android.os.Bundle;
|
|
import android.os.Handler;
|
|
import android.text.TextUtils;
|
|
import android.view.Gravity;
|
|
import android.view.View;
|
|
import android.widget.ImageView;
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.blankj.utilcode.util.LogUtils;
|
|
import com.blankj.utilcode.util.ThreadUtils;
|
|
import com.mobile.auth.gatewayauth.AuthUIConfig;
|
|
import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper;
|
|
import com.mobile.auth.gatewayauth.PreLoginResultListener;
|
|
import com.mobile.auth.gatewayauth.ResultCode;
|
|
import com.mobile.auth.gatewayauth.TokenResultListener;
|
|
import com.mobile.auth.gatewayauth.model.TokenRet;
|
|
import com.qxcm.modulelogin.activity.ImproveInfoActivity;
|
|
import com.qxcm.modulelogin.activity.LoginActivity;
|
|
import com.qxcm.modulelogin.activity.PasswordLoginActivity;
|
|
import com.qxcm.modulemain.activity.MainActivity;
|
|
import com.qxcm.moduleutil.activity.BaseMvpActivity;
|
|
import com.qxcm.moduleutil.base.CommonAppContext;
|
|
import com.qxcm.moduleutil.bean.UserBean;
|
|
import com.qxcm.moduleutil.dialog.PolicyDialog;
|
|
import com.qxcm.moduleutil.utils.SpUtil;
|
|
import com.qxcm.moduleutil.utils.logger.Logger;
|
|
import com.qxcm.qxlive.databinding.ActivityLaunchPageBinding;
|
|
import com.tencent.qcloud.tuicore.TUILogin;
|
|
import com.tencent.qcloud.tuicore.interfaces.TUICallback;
|
|
|
|
import org.greenrobot.eventbus.EventBus;
|
|
|
|
public class LaunchPageActivity extends BaseMvpActivity<LaunchPresenter, ActivityLaunchPageBinding> implements LaunchContacter.View {
|
|
private Handler handler;
|
|
public PhoneNumberAuthHelper phoneNumberAuthHelper;
|
|
private TokenResultListener tokenResultListener;
|
|
private boolean canOnePass;
|
|
private boolean isCanOnePass = true;
|
|
|
|
@Override
|
|
protected void initData() {
|
|
handler = new Handler();
|
|
// 定义一个Runnable
|
|
Runnable runnable = new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
initLogin();
|
|
}
|
|
};
|
|
// mBinding.tvVersionName.setText(BuildConfig.VERSION_NAME + "." + BuildConfig.VERSION_CODE);
|
|
if (SpUtil.isAgreePolicy()) {
|
|
// UtilConfig.checkInEmulator();
|
|
// BaseApplication.getInstance().checkInEmulator();
|
|
// BaseApplication.getInstance().initHeartBeat();
|
|
// //延迟1.5秒执行
|
|
handler.postDelayed(runnable, 100);
|
|
// initLogin();
|
|
} else {
|
|
PolicyDialog policyDialog = new PolicyDialog(this);
|
|
policyDialog.setCancelable(false);
|
|
policyDialog.setCanceledOnTouchOutside(false);
|
|
policyDialog.setPolicyClickListener(new PolicyDialog.PolicyClickListener() {
|
|
@Override
|
|
public void policyAgree() {
|
|
SpUtil.completeAgreePolicy();
|
|
// UtilConfig.checkInEmulator();
|
|
// BaseApplication.getInstance().checkInEmulator();
|
|
// RetrofitManager.getInstance().init(com.qpyy.libcommon.BuildConfig.BASE_URL);
|
|
// RetrofitManager.getInstance().init(com.qpyy.libcommon.BuildConfig.NEW_BASE_URL);
|
|
// BaseApplication.getInstance().initHeartBeat();
|
|
// BaseApplication.getInstance().initThirdPartySdk();
|
|
// BaseApplication.getInstance().initOkGo();
|
|
initLogin();
|
|
}
|
|
|
|
@Override
|
|
public void policyExit() {
|
|
finish();
|
|
}
|
|
});
|
|
policyDialog.show();
|
|
}
|
|
}
|
|
|
|
private void initLogin() {
|
|
|
|
initQuickLogin();
|
|
checkOnePass();
|
|
}
|
|
|
|
private void checkOnePass() {
|
|
if (!TextUtils.isEmpty(AppContext.getInstance().getToken())) {
|
|
isRoot();
|
|
return;
|
|
}
|
|
showLoadings();
|
|
if (phoneNumberAuthHelper != null) {
|
|
phoneNumberAuthHelper.accelerateLoginPage(3 * 1000, new PreLoginResultListener() {
|
|
@Override
|
|
public void onTokenSuccess(String s) {
|
|
Logger.e("onTokenSuccess", s);
|
|
canOnePass = true;
|
|
isRoot();
|
|
}
|
|
|
|
@Override
|
|
public void onTokenFailed(String s, String s1) {
|
|
Logger.e("onTokenFailed", "错误信息" + s, s1);
|
|
isRoot();
|
|
}
|
|
});
|
|
} else {
|
|
canOnePass = false;
|
|
isRoot();
|
|
}
|
|
}
|
|
|
|
private void isRoot() {
|
|
runOnUiThread(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
disLoadings();
|
|
if (!LaunchPageActivity.this.isTaskRoot()) {
|
|
Intent intent = getIntent();
|
|
if (intent != null) {
|
|
String action = intent.getAction();
|
|
if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) {
|
|
finish();
|
|
} else {
|
|
goNextActivity();
|
|
}
|
|
} else {
|
|
goNextActivity();
|
|
}
|
|
} else {
|
|
goNextActivity();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
private void goNextActivity() {
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
|
if (isFinishing() || isDestroyed()) {
|
|
return;
|
|
}
|
|
}
|
|
if (TextUtils.isEmpty(AppContext.getInstance().getToken())) {
|
|
Logger.e("SplashEnd", "ARouters.CODE_LOGIN");
|
|
if (canOnePass) {
|
|
phoneNumberAuthHelper.setAuthListener(tokenResultListener);
|
|
doOnePass();
|
|
} else {
|
|
go2Login();
|
|
}
|
|
} else {
|
|
Logger.e("SplashEnd", "ARouters.MAIN");
|
|
UserBean userBean = CommonAppContext.getInstance().getUser();
|
|
if (userBean.getSex() == 0) {
|
|
Intent intent = new Intent(this, ImproveInfoActivity.class);
|
|
Bundle bundle = new Bundle();
|
|
bundle.putSerializable("userBean", userBean);
|
|
intent.putExtras(bundle);
|
|
startActivity(intent);
|
|
} else {
|
|
TUILogin.login(getBaseContext(), CommonAppContext.getInstance().getCurrentEnvironment().getSdkAppId(), String.valueOf(userBean.getUser_code()), userBean.getTencent_im(), new TUICallback() {
|
|
@Override
|
|
public void onError(final int code, final String desc) {
|
|
LogUtils.e("@@@",code,"描述:",desc);
|
|
}
|
|
@Override
|
|
public void onSuccess() {
|
|
LogUtils.e("@@@","成功");
|
|
}
|
|
});
|
|
startActivity(new Intent(this, MainActivity.class));
|
|
}
|
|
finish();
|
|
}
|
|
}
|
|
|
|
private void doOnePass() {
|
|
AuthUIConfig authUIConfig = new AuthUIConfig.Builder()
|
|
//导航栏
|
|
.setNavColor(Color.TRANSPARENT)
|
|
.setNavReturnHidden(true)
|
|
.setNavHidden(true)
|
|
.setNavText("")
|
|
.setNavTextColor(Color.BLACK)
|
|
.setWebNavColor(Color.TRANSPARENT)
|
|
.setWebNavTextColor(Color.BLACK)
|
|
.setWebNavReturnImgPath("ic_topbar_back_dark")
|
|
//状态栏区
|
|
.setStatusBarColor(Color.TRANSPARENT)
|
|
.setLightColor(false)
|
|
.setWebViewStatusBarColor(Color.TRANSPARENT)
|
|
.setStatusBarUIFlag(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
|
|
//logo区
|
|
.setLogoImgPath("login_log")
|
|
.setLogoWidth(142)
|
|
.setLogoHeight(142)
|
|
.setLogoOffsetY(54)
|
|
.setLogoHidden(false)
|
|
.setLogoScaleType(ImageView.ScaleType.FIT_XY)
|
|
//Slogan
|
|
.setSloganText("本机号码")
|
|
.setSloganTextColor(Color.parseColor("#A8A8A8"))
|
|
.setSloganTextSize(12)
|
|
.setSloganOffsetY(236)
|
|
//掩码栏
|
|
.setNumberColor(Color.BLACK)
|
|
.setNumberSize(30)
|
|
.setNumFieldOffsetY(263)
|
|
.setNumberLayoutGravity(Gravity.CENTER_HORIZONTAL)
|
|
//登录按钮
|
|
.setLogBtnText("本机号码一键登录")
|
|
.setLogBtnWidth(300)
|
|
.setLogBtnHeight(42)
|
|
.setLogBtnOffsetY(325)
|
|
.setLogBtnTextSize(14)
|
|
.setLogBtnTextColor(getResources().getColor(R.color.black))
|
|
.setLogBtnBackgroundPath("cs")
|
|
//切换到其他方式
|
|
.setSwitchAccText("其他登录方式")
|
|
.setSwitchAccTextColor(Color.parseColor("#333333"))
|
|
.setSwitchAccTextSize(12)
|
|
.setSwitchOffsetY(390)
|
|
//协议栏
|
|
.setAppPrivacyOne("《用户协议》", "")
|
|
.setAppPrivacyTwo("《隐私协议》", "")
|
|
.setAppPrivacyColor(Color.parseColor("#A8A8A8"), Color.parseColor("#FFBC00"))
|
|
.setPrivacyBefore("登录即代表同意")
|
|
.setPrivacyEnd("并授权获得号码")
|
|
.setPrivacyTextSize(11)
|
|
.setPrivacyMargin(39)
|
|
.setPrivacyState(true)
|
|
.setCheckboxHidden(false)
|
|
.setCheckedImgPath("ic_agreement_selected")
|
|
.setUncheckedImgPath("ic_agreement_unselect")
|
|
.setPrivacyOffsetX(2)
|
|
.setVendorPrivacyPrefix("《")
|
|
.setVendorPrivacySuffix("》")
|
|
//全页面属性
|
|
.setAuthPageActIn("in_activity", "out_activity")
|
|
.setAuthPageActOut("in_activity", "out_activity")
|
|
.setPageBackgroundPath("log_bj")
|
|
.create();
|
|
phoneNumberAuthHelper.setAuthUIConfig(authUIConfig);
|
|
phoneNumberAuthHelper.getLoginToken(getApplicationContext(), 5000);
|
|
}
|
|
|
|
private void initQuickLogin() {
|
|
tokenResultListener = new TokenResultListener() {
|
|
@Override
|
|
public void onTokenSuccess(String s) {
|
|
Logger.e("onTokenSuccess", s);
|
|
ThreadUtils.runOnUiThread(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
TokenRet tokenRet = null;
|
|
try {
|
|
tokenRet = JSON.parseObject(s, TokenRet.class);
|
|
if (tokenRet != null && ("600000").equals(tokenRet.getCode())) {
|
|
phoneNumberAuthHelper.hideLoginLoading();
|
|
//获取成功 dimiss就去登录、登录成功
|
|
phoneNumberAuthHelper.quitLoginPage();
|
|
LogUtils.e("@@@",tokenRet.getToken());
|
|
MvpPre.oauthLogin(tokenRet.getToken());
|
|
}
|
|
} catch (Exception e) {
|
|
go2Login();
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
@Override
|
|
public void onTokenFailed(String s) {
|
|
Logger.e("onTokenFailed", s);
|
|
ThreadUtils.runOnUiThread(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
phoneNumberAuthHelper.hideLoginLoading();
|
|
phoneNumberAuthHelper.quitLoginPage();
|
|
go2Login();
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
try {
|
|
phoneNumberAuthHelper = PhoneNumberAuthHelper.getInstance(getApplicationContext(), null);
|
|
phoneNumberAuthHelper.getReporter().setLoggerEnable(true);
|
|
// phoneNumberAuthHelper.setAuthSDKInfo("6rdWuz058oq5OahdbFiGEybUcdahd12J83L34Uc7MrPIrxtFG+rXiwDvRcqNvjwbClbbmvMrmxKVkIysFByBsl0Qe9kqd2w8T/nhK5G6eXXlk2V9AjYCieIU+jRnjZBB+Cfechr6rCGJ2aeBARIsXcRPW7wm9WFK9euh5T+v6Pyte68yNaNdcYCll3+U4/uCEog7HygCnMIbAU+kqoPdmn2H+51YOHW+VsnsHd4w1+I3f8Tt0xLIXGM4GWnQueZ5GR46GTWiSYMy8dCIh9SPIMRyC91GosVcfGPMJSdcXqc=");
|
|
phoneNumberAuthHelper.setAuthSDKInfo(((AppContext) getApplication()).getCurrentEnvironment().getALI_AUTH_KEY());
|
|
phoneNumberAuthHelper.checkEnvAvailable(2);
|
|
|
|
} catch (Throwable ignored) {
|
|
Logger.e("initAuthSDK", ignored);
|
|
}
|
|
}
|
|
|
|
private void go2Login() {
|
|
startActivity(new Intent(this, PasswordLoginActivity.class));
|
|
finish();
|
|
}
|
|
|
|
@Override
|
|
protected int getLayoutId() {
|
|
return R.layout.activity_launch_page;
|
|
}
|
|
|
|
@Override
|
|
protected LaunchPresenter bindPresenter() {
|
|
return new LaunchPresenter(this, this);
|
|
}
|
|
|
|
|
|
} |