package com.qxcm.qxlive; import android.Manifest; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; 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 android.widget.Toast; import androidx.annotation.NonNull; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import com.alibaba.fastjson.JSON; import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.ThreadUtils; import com.blankj.utilcode.util.ToastUtils; 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.location.LocationProvider; import com.qxcm.moduleutil.utils.location.LocationServiceFactory; 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 implements LaunchContacter.View { private Handler handler; public PhoneNumberAuthHelper phoneNumberAuthHelper; private TokenResultListener tokenResultListener; private boolean canOnePass; private boolean isCanOnePass = true; private String city1=""; @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() { EventBus.getDefault().register(this); initQuickLogin(); checkOnePass(); // } private void checkOnePass() { if (!TextUtils.isEmpty(AppContext.getInstance().getToken()) && !TextUtils.isEmpty(AppContext.getInstance().getUser().getTencent_im())) { 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()) || TextUtils.isEmpty(AppContext.getInstance().getUser().getTencent_im())) { 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(); // TUILogin.login(getBaseContext(), CommonAppContext.getInstance().getCurrentEnvironment().getSdkAppId(), "u"+userBean.getUser_id(), 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("@@@","成功"); // // } // }); 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 { EventBus.getDefault().post(userBean); 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); } // @Override // public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { // super.onRequestPermissionsResult(requestCode, permissions, grantResults); // // if (requestCode == 1001) { // LocationProvider provider = LocationServiceFactory.createBestProvider(this); // provider.getLastKnownLocation(this, new LocationProvider.LocationCallback() { // @Override // public void onLocationReceived(double latitude, double longitude, String city) { // ToastUtils.showShort("当前位置:" + city); // city1=city; // } // // @Override // public void onFailed(String errorMessage) { // ToastUtils.showShort("定位失败"); // } // }); // } // } }