package com.tejia.lijin.app.util.user;
|
|
import android.app.Activity;
|
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.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_onkey_bg")
|
|
.setNavText("")
|
.setNavColor(Color.WHITE)
|
.setNavHidden(false)
|
.setNavReturnImgPath("ic_login_close")
|
.setNavReturnImgWidth(22)
|
.setNavReturnImgHeight(22)
|
.setNavReturnScaleType(ImageView.ScaleType.FIT_XY)
|
.setWebNavColor(Color.BLACK)
|
.setWebNavReturnImgPath("ic_back_two")
|
.setWebViewStatusBarColor(Color.WHITE)
|
.setStatusBarColor(Color.WHITE)
|
|
.setLogoWidth(147)
|
.setLogoHeight(36)
|
.setLogoImgPath("ic_login_logo")
|
.setLogoOffsetY(24 - 10)
|
|
.setSloganOffsetY(171 - 10)
|
.setSloganTextSize(12)
|
.setSloganTextColor(Color.parseColor("#F804F5"))
|
|
.setLogBtnText("⼀键登录")
|
.setLogBtnTextSize(17)
|
.setLogBtnTextColor(Color.parseColor("#F4DE4A"))
|
.setLogBtnBackgroundPath("shape_login_btn")
|
.setLogBtnOffsetY(229 - 10)
|
.setLogBtnHeight(44)
|
|
|
.setDialogWidth(305 * widthDP / 375)
|
.setDialogHeight(454)
|
.setNavColor(Color.RED)
|
.setSwitchAccHidden(true)
|
.setNumberColor(Color.parseColor("#0052F6"))
|
.setNumberSize(36)
|
.setNumFieldOffsetY(128 - 10)
|
|
// .setAppPrivacyOne("《用户服务协议》", "")
|
// .setAppPrivacyTwo("《隐私政策》", BeibeiConstant.PRIVACY_POLICY)
|
.setAppPrivacyColor(Color.parseColor("#B3B8D3"), Color.parseColor("#51B3FF"))
|
.setPrivacyBefore("登录即表示同意")
|
.setPrivacyEnd("")
|
.setCheckedImgPath("ic_login_privacy_checked")
|
.setPrivacyTextSize(11)
|
.setPrivacyState(true)
|
.setVendorPrivacyPrefix("《")
|
.setVendorPrivacySuffix("》")
|
.create();
|
|
mPhoneNumberAuthHelper.setAuthUIConfig(uiCOnfig);
|
}
|
|
|
public void init(IOneKeyLoginListener tokenResultListener) {
|
this.tokenResultListener = tokenResultListener;
|
sdkInit();
|
initUI(activity);
|
}
|
|
public void checkEnv() {
|
//检测环境
|
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);
|
|
|
}
|
|
|
}
|