| | |
| | | package com.fuban.user.ui |
| | | |
| | | import android.graphics.Color |
| | | import android.os.Bundle |
| | | import android.os.Environment |
| | | import android.util.Log |
| | | import android.view.View |
| | | import cn.sinata.xldutils.R |
| | | import cn.sinata.xldutils.activity.TitleActivity |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import cn.sinata.xldutils.utils.optInt |
| | | import cn.sinata.xldutils.utils.optString |
| | | import cn.sinata.xldutils.view.TitleBar |
| | | import com.github.zackratos.ultimatebar.UltimateBar |
| | | import com.fuban.user.network.HttpManager |
| | | import com.fuban.user.network.request |
| | | import com.fuban.user.ui.login.BindPhoneActivity |
| | | import com.fuban.user.ui.login.LoginActivity |
| | | import com.fuban.user.utils.Const |
| | | import com.umeng.umverify.UMResultCode |
| | | import com.umeng.umverify.UMVerifyHelper |
| | | import com.umeng.umverify.listener.UMTokenResultListener |
| | | import com.umeng.umverify.model.UMTokenRet |
| | | import com.umeng.umverify.view.UMAbstractPnsViewDelegate |
| | | import com.umeng.umverify.view.UMAuthRegisterXmlConfig |
| | | import com.umeng.umverify.view.UMAuthUIConfig |
| | | import org.jetbrains.anko.backgroundColorResource |
| | | import org.jetbrains.anko.find |
| | | import org.jetbrains.anko.startActivity |
| | | import java.io.File |
| | | |
| | | abstract class TransparentStatusBarActivity : |
| | | TitleActivity() { |
| | | private var mTokenResultListener: UMTokenResultListener? = null |
| | | private var mPhoneNumberAuthHelper: UMVerifyHelper? = null |
| | | abstract class TransparentStatusBarActivity : TitleActivity() { |
| | | |
| | | override fun onCreate(savedInstanceState: Bundle?) { |
| | | super.onCreate(savedInstanceState) |
| | |
| | | fun checkLogin(isLogin:Boolean = true):Boolean{ |
| | | return if (SPUtils.instance().getInt(Const.User.USER_ID) == -1){ |
| | | if (isLogin) |
| | | gotoLogin() |
| | | startActivity<LoginActivity>() |
| | | false |
| | | } else true |
| | | } |
| | |
| | | } else path |
| | | } |
| | | |
| | | private fun sdkInit() { |
| | | mTokenResultListener = object : UMTokenResultListener { |
| | | override fun onTokenSuccess(s: String) { |
| | | dismissDialog() |
| | | var tokenRet: UMTokenRet? = null |
| | | try { |
| | | tokenRet = UMTokenRet.fromJson(s) |
| | | if (UMResultCode.CODE_START_AUTHPAGE_SUCCESS == tokenRet.code) { |
| | | Log.e(Const.Tag, "唤起授权页成功:$s") |
| | | } |
| | | if (UMResultCode.CODE_GET_TOKEN_SUCCESS == tokenRet.code) { |
| | | Log.e(Const.Tag, "获取token成功:$s") |
| | | getResultWithToken(tokenRet.token) |
| | | // mUIConfig.release() |
| | | } |
| | | } catch (e: Exception) { |
| | | e.printStackTrace() |
| | | } |
| | | } |
| | | |
| | | override fun onTokenFailed(s: String) { |
| | | Log.e(Const.Tag, "获取token失败:$s") |
| | | dismissDialog() |
| | | var tokenRet: UMTokenRet? = null |
| | | mPhoneNumberAuthHelper?.quitLoginPage() |
| | | try { |
| | | tokenRet = UMTokenRet.fromJson(s) |
| | | if (UMResultCode.CODE_ERROR_USER_CANCEL == tokenRet?.getCode()) { |
| | | myToast("取消登录") |
| | | } else { |
| | | startActivity<LoginActivity>() |
| | | } |
| | | } catch (e: Exception) { |
| | | e.printStackTrace() |
| | | } |
| | | // mUIConfig.release() |
| | | } |
| | | } |
| | | mPhoneNumberAuthHelper = UMVerifyHelper.getInstance(this, mTokenResultListener) |
| | | mPhoneNumberAuthHelper?.removeAuthRegisterXmlConfig() |
| | | mPhoneNumberAuthHelper?.removeAuthRegisterViewConfig() |
| | | mPhoneNumberAuthHelper?.setAuthSDKInfo(Const.LOGIN_KEY) |
| | | val builder = object : UMAuthRegisterXmlConfig.Builder(){} |
| | | builder.setLayout(com.fuban.user.R.layout.activity_one_key_login,object :UMAbstractPnsViewDelegate(){ |
| | | override fun onViewCreated(v: View) { |
| | | v.find<TitleBar>(R.id.titleBar).apply { |
| | | titleView.text = "登录" |
| | | leftClick { |
| | | myToast("取消登录") |
| | | mPhoneNumberAuthHelper?.quitLoginPage() |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | mPhoneNumberAuthHelper?.addAuthRegisterXmlConfig(builder.build()) |
| | | mPhoneNumberAuthHelper?.setAuthUIConfig( |
| | | UMAuthUIConfig.Builder() |
| | | .setNavHidden(true) |
| | | .setLogoHidden(true) |
| | | .setPrivacyState(false) |
| | | .setLightColor(true) |
| | | .setStatusBarColor(Color.TRANSPARENT) |
| | | .setStatusBarUIFlag(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) |
| | | .setWebNavTextSize(20) |
| | | .setNumberSize(20) |
| | | .setNumberColor(Color.BLACK) |
| | | .setAuthPageActIn("in_activity", "out_activity") |
| | | .setAuthPageActOut("in_activity", "out_activity") |
| | | .setVendorPrivacyPrefix("《") |
| | | .setVendorPrivacySuffix("》") |
| | | .setPageBackgroundPath("page_background_color") |
| | | .setLogoImgPath("mytel_app_launcher") |
| | | .setLogBtnBackgroundPath("bg_dark_4dp") |
| | | .create() |
| | | ) |
| | | } |
| | | |
| | | override fun gotoLogin(){ |
| | | sdkInit() |
| | | oneKeyLogin() |
| | | } |
| | | |
| | | private fun oneKeyLogin() { |
| | | mPhoneNumberAuthHelper = |
| | | UMVerifyHelper.getInstance(applicationContext, mTokenResultListener) |
| | | // mUIConfig.configAuthPage() |
| | | getLoginToken(5000) |
| | | } |
| | | |
| | | fun getResultWithToken(token: String?) { |
| | | HttpManager.oneClickLogin(token?:"").request(this,false, {_,data-> |
| | | data?.let { |
| | | SPUtils.instance().put(Const.User.APP_ID,it.optString("appid")) |
| | | .put(Const.User.TOKEN,it.optString("token")) |
| | | .put(Const.User.USER_ID,it.optInt("id")) |
| | | .apply() |
| | | mPhoneNumberAuthHelper!!.quitLoginPage() |
| | | if (this is MainActivity){ |
| | | refreshInfo() |
| | | } |
| | | } |
| | | }){_,_-> |
| | | mPhoneNumberAuthHelper!!.hideLoginLoading() |
| | | myToast("登录失败,请选择其他登录方式") |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 拉起授权页 |
| | | * @param timeout 超时时间 |
| | | */ |
| | | fun getLoginToken(timeout: Int) { |
| | | mPhoneNumberAuthHelper!!.getLoginToken(this, timeout) |
| | | showDialog("正在唤起授权页") |
| | | } |
| | | } |