package com.tejia.lijin.app.util.user;
|
|
import android.app.Activity;
|
import android.content.Context;
|
import android.graphics.Color;
|
import android.util.Log;
|
import android.widget.ImageView;
|
|
import com.mobile.auth.gatewayauth.AuthUIConfig;
|
import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper;
|
import com.mobile.auth.gatewayauth.ResultCode;
|
import com.mobile.auth.gatewayauth.TokenResultListener;
|
import com.mobile.auth.gatewayauth.model.TokenRet;
|
import com.tejia.lijin.app.util.Constant;
|
import com.wpc.library.util.common.DimenUtils;
|
|
public class AliyunSmsOneKeyLoginManager {
|
|
static final String TAG = "AliyunSmsOneKeyLogin";
|
private Activity activity;
|
private PhoneNumberAuthHelper mPhoneNumberAuthHelper;
|
private String secretInfo;
|
private IOneKeyLoginListener tokenResultListener;
|
|
public AliyunSmsOneKeyLoginManager(Activity context, String secretInfo) {
|
this.activity = context;
|
this.secretInfo = secretInfo;
|
}
|
|
private void sdkInit() {
|
mPhoneNumberAuthHelper = PhoneNumberAuthHelper.getInstance(activity, new TokenResultListener() {
|
@Override
|
public void onTokenSuccess(String s) {
|
Log.i(TAG, "onTokenSuccess:" + s);
|
TokenRet tokenRet = null;
|
try {
|
tokenRet = TokenRet.fromJson(s);
|
|
switch (tokenRet.getCode()) {
|
case ResultCode.CODE_ERROR_ENV_CHECK_SUCCESS:
|
Log.i(TAG, "终端环境校验成功:" + s);
|
|
tokenResultListener.onEnvCheckSuccess();
|
break;
|
|
case ResultCode.CODE_START_AUTHPAGE_SUCCESS:
|
Log.i(TAG, "唤起授权页成功:" + s);
|
tokenResultListener.onStartAuthPageSuccess();
|
break;
|
|
case ResultCode.CODE_SUCCESS:
|
Log.i(TAG, "获取token成功:" + s);
|
tokenResultListener.onToken(tokenRet.getToken());
|
mPhoneNumberAuthHelper.setAuthListener(null);
|
break;
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void onTokenFailed(String s) {
|
Log.i(TAG, "onTokenFailed:" + s);
|
TokenRet tokenRet = null;
|
try {
|
tokenRet = TokenRet.fromJson(s);
|
|
switch (tokenRet.getCode()) {
|
//用户主动取消
|
case ResultCode.CODE_ERROR_USER_CANCEL:
|
tokenResultListener.onCancel();
|
break;
|
case ResultCode.CODE_ERROR_NO_SIM_FAIL:
|
case ResultCode.CODE_ERROR_NO_MOBILE_NETWORK_FAIL:
|
tokenResultListener.onFail("请打开移动网络");
|
break;
|
default:
|
tokenResultListener.onFail("暂无法使用手机号一键登录");
|
break;
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
mPhoneNumberAuthHelper.setAuthListener(null);
|
}
|
});
|
mPhoneNumberAuthHelper.getReporter().setLoggerEnable(true);
|
mPhoneNumberAuthHelper.setAuthSDKInfo(secretInfo);
|
}
|
|
/**
|
* 开始获取token
|
*/
|
public void startGetLoginToken() {
|
mPhoneNumberAuthHelper.getLoginToken(activity, 5000);
|
}
|
|
public void quitLoginPage() {
|
mPhoneNumberAuthHelper.quitLoginPage();
|
}
|
|
|
private void initUI(Activity activity) {
|
|
int width = DimenUtils.getScreenWidth(activity);
|
int widthDP = DimenUtils.px2dip(activity, width);
|
AuthUIConfig uiCOnfig = new AuthUIConfig.Builder()
|
.setPageBackgroundPath("shape_login_onekey_bg")
|
|
.setNavText("")
|
.setNavColor(Color.WHITE)
|
.setNavHidden(false)
|
.setNavReturnImgPath("icon_one_key_login_close")
|
.setNavReturnImgWidth(22)
|
.setNavReturnImgHeight(22)
|
.setNavReturnScaleType(ImageView.ScaleType.FIT_XY)
|
.setWebNavColor(Color.WHITE)
|
.setWebNavTextColor(Color.BLACK)
|
// .setWebNavReturnImgPath("ic_back")
|
// .setWebViewStatusBarColor(Color.BLACK)
|
.setStatusBarColor(Color.WHITE)
|
|
// .setLogoWidth(147)
|
// .setLogoHeight(36)
|
//// .setLogoImgPath("ic_login_logo")
|
// .setLogoOffsetY(24 - 10)
|
.setLogoHidden(true)
|
|
.setSloganOffsetY(50)
|
.setSloganTextSize(12)
|
.setSloganTextColor(Color.parseColor("#999999"))
|
|
.setLogBtnText("⼀键登录")
|
.setLogBtnTextSize(17)
|
.setLogBtnTextColor(Color.parseColor("#FFFFFF"))
|
.setLogBtnBackgroundPath("selector_login_btn")
|
.setLogBtnOffsetY(50+45)
|
.setLogBtnHeight(44)
|
|
|
.setDialogWidth(305 * widthDP / 375)
|
.setDialogHeight(242)
|
.setNavColor(Color.parseColor("#999999"))
|
.setSwitchAccHidden(true)
|
.setNumberColor(Color.parseColor("#FF2B4B"))
|
.setNumberSize(36)
|
.setNumFieldOffsetY(0)
|
|
.setAppPrivacyOne("《用户协议》", activity.getSharedPreferences("user", Context.MODE_PRIVATE).getString("service", ""))
|
.setAppPrivacyTwo("《隐私政策》","http://www.baidu.com")
|
.setAppPrivacyColor(Color.parseColor("#999999"), Color.parseColor("#3A7CFF"))
|
.setPrivacyBefore("登录即表示同意")
|
.setPrivacyEnd("")
|
.setCheckedImgPath("icon_login_agreement_check_highlight")
|
.setCheckBoxHeight(20)
|
.setCheckBoxWidth(20)
|
.setUncheckedImgPath("icon_login_agreement_check")
|
.setPrivacyTextSize(11)
|
.setPrivacyOffsetY(150)
|
.setPrivacyState(false)
|
.setVendorPrivacyPrefix("《")
|
.setVendorPrivacySuffix("》")
|
.create();
|
|
mPhoneNumberAuthHelper.setAuthUIConfig(uiCOnfig);
|
}
|
|
|
public void init(IOneKeyLoginListener tokenResultListener) {
|
this.tokenResultListener = tokenResultListener;
|
sdkInit();
|
initUI(activity);
|
}
|
|
public void checkEnv() {
|
//检测环境
|
sdkInit();
|
mPhoneNumberAuthHelper.checkEnvAvailable(2);
|
}
|
|
|
public interface IOneKeyLoginListener {
|
public void onFail(String st);
|
|
public void onCancel();
|
|
public void onEnvCheckSuccess();
|
|
public void onStartAuthPageSuccess();
|
|
public void onToken(String token);
|
|
|
}
|
|
|
}
|