admin
2021-05-13 4a8f1bec26519a25f073739534e653a4f7c9e11d
app/src/main/java/com/tejia/lijin/app/ui/mine/LoginSelectActivity.java
@@ -4,6 +4,7 @@
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
@@ -15,8 +16,14 @@
import android.widget.TextView;
import android.widget.Toast;
import com.androidquery.AQuery;
import com.mobile.auth.gatewayauth.AuthUIConfig;
import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper;
import com.mobile.auth.gatewayauth.TokenResultListener;
import com.tejia.lijin.app.util.user.AliyunSmsOneKeyLoginManager;
import com.tencent.mm.opensdk.modelmsg.SendAuth;
import com.umeng.analytics.MobclickAgent;
import com.wpc.library.util.common.DimenUtils;
import com.wpc.library.util.common.StringUtils;
import com.wpc.library.widget.PhoneNumberClearEditText;
import com.tejia.lijin.app.BasicTextHttpResponseHandler;
@@ -47,13 +54,12 @@
    public final static int TYPE_LOGIN = 1;//登录
    public final static int TYPE_BIND = 2;//绑定
    public final static int TYPE_BIND_WITHOUT_LOGINED = 3;//未登录绑定
    private ImageView iv_close, iv_contact_kefu, iv_login_wechat;
    private TextView tv_user_agreement, tv_other_login, tv_mobile_hint, tv_privacy_policies,
            tv_login_top_hint, tv_mobile_type;
    FrameLayout fl_login_gain_sms;
    private TextView tv_login_gain_sms, tv_user_agreement, tv_other_login, tv_privacy_policies,
            tv_mobile_type;
    private PhoneNumberClearEditText et_mobile_num;
    LinearLayout ll_user_agreement;
    private ImageView et_mobile_numimg;
    private AQuery mAquery;
    String uid;
    boolean isWXLogin = false;
@@ -61,22 +67,93 @@
    int type;
    String key;//微信登录尚未绑定手机时回传的标识
    private static String TAG="LoginSelectActivity";
    private static String TAG = "LoginSelectActivity";
    private AliyunSmsOneKeyLoginManager aliyunSmsOneKeyLoginManager;
    private boolean showOnkeyLoginToast = true;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login_select);
        mAquery = new AQuery(this);
        TopStatusSettings.setStatusViewAndDeepColorNoView(this);
//        tv_user_agreement.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
        initData(getIntent());
        String from = getIntent().getStringExtra("from");
        UserCustomEvent.userLogin(this, StringUtils.isEmpty(from) ? "其它" : from);
        EventBus.getDefault().register(this);
        aliyunSmsOneKeyLoginManager = new AliyunSmsOneKeyLoginManager(this, null);
        aliyunSmsOneKeyLoginManager.init(new AliyunSmsOneKeyLoginManager.IOneKeyLoginListener() {
            @Override
            public void onFail(String st) {
                if (showOnkeyLoginToast) {
                    showOnkeyLoginToast = false;
                    android.widget.Toast.makeText(LoginSelectActivity.this, st, Toast.LENGTH_SHORT).show();
                }
            }
            @Override
            public void onCancel() {
                showOnkeyLoginToast = false;
            }
            @Override
            public void onEnvCheckSuccess() {
                showOnkeyLoginToast = false;
                //掉起授权框
                aliyunSmsOneKeyLoginManager.startGetLoginToken();
            }
            @Override
            public void onStartAuthPageSuccess() {
            }
            @Override
            public void onToken(String token) {
                //获取到Token
            }
        });
        openOneKeyLogin(showOnkeyLoginToast);
    }
    private synchronized void openOneKeyLogin(final boolean notify) {
        aliyunSmsOneKeyLoginManager.checkEnv();
        //TODO 一键登录权限请求
//        ShoppingApi.allowOneKeyLogin(this, UserUtil.getLoginUid(this), new BasicTextHttpResponseHandler() {
//
//            @Override
//            public void onStart() {
//                DialogUtil.show(loadingDialog);
//            }
//
//            @Override
//            public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
//                if (jsonObject.optBoolean("IsPost")) {
//                    aliyunSmsOneKeyLoginManager.checkEnv();
//                } else {
//                    if (notify) {
//                        Toast.makeText(PhoneLoginActivity.this, jsonObject.optString("Error"), Toast.LENGTH_SHORT).show();
//                    }
//                }
//            }
//
//            @Override
//            public void onFinish() {
//                DialogUtil.dismiss(loadingDialog);
//            }
//        });
    }
    private void initData(Intent intent) {
        type =intent.getIntExtra("type", TYPE_LOGIN);
        type = intent.getIntExtra("type", TYPE_LOGIN);
        init(intent);
        addListener();
    }
@@ -84,7 +161,7 @@
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        Log.i(TAG,"onNewIntent");
        Log.i(TAG, "onNewIntent");
        initData(intent);
    }
@@ -92,30 +169,19 @@
        初始化控件
         */
    private void init(Intent intent) {
        iv_close = findViewById(R.id.iv_close);
        iv_contact_kefu = findViewById(R.id.iv_contact_kefu);
        tv_mobile_hint = findViewById(R.id.tv_mobile_hint);
        tv_user_agreement = findViewById(R.id.tv_user_agreement);
        iv_login_wechat = findViewById(R.id.iv_login_wechat);
        fl_login_gain_sms = findViewById(R.id.fl_login_gain_sms);
        tv_login_gain_sms = findViewById(R.id.tv_login_gain_sms);
        et_mobile_num = findViewById(R.id.et_mobile_num);
        tv_other_login = findViewById(R.id.tv_other_login);
        tv_privacy_policies = findViewById(R.id.tv_privacy_policies);
        tv_login_top_hint = findViewById(R.id.tv_login_top_hint);
        tv_mobile_type = findViewById(R.id.tv_mobile_type);
        ll_user_agreement = findViewById(R.id.ll_user_agreement);
        et_mobile_numimg = findViewById(R.id.et_mobile_numimg);
        et_mobile_numimg.setColorFilter(getResources().getColor(R.color.black));
        tv_mobile_hint.setTextColor(getResources().getColor(R.color.gray));
        tv_mobile_hint.setText(String.format("新的手机号必须没有绑定过其他%s帐号",getResources().getString(R.string.app_name)));
        fl_login_gain_sms.setEnabled(false);
        fl_login_gain_sms.setBackgroundResource(R.drawable.shape_login_gain_sms);
        SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE);
        sp.edit().putBoolean("first", true).commit();
        uid = intent.getStringExtra("uid");
        key =intent.getStringExtra("key");
        key = intent.getStringExtra("key");
        getUserConfig();
    }
@@ -124,10 +190,6 @@
     */
    private void addListener() {
        tv_user_agreement.setOnClickListener(this);
        iv_close.setOnClickListener(this);
        iv_contact_kefu.setOnClickListener(this);
        fl_login_gain_sms.setOnClickListener(this);
        iv_login_wechat.setOnClickListener(this);
        tv_other_login.setOnClickListener(this);
        tv_privacy_policies.setOnClickListener(this);
        et_mobile_num.addTextChangedListener(new TextWatcher() {
@@ -145,10 +207,6 @@
                        canSend = true;
                    }
                }
                fl_login_gain_sms.setEnabled(canSend);
                fl_login_gain_sms.setBackgroundResource(canSend ?
                        R.drawable.shape_mobile_login_light : R.drawable.shape_login_gain_sms);
            }
            @Override
@@ -163,37 +221,42 @@
    @Override
    protected void onResume() {
        super.onResume();
        Log.i(TAG,"onResume");
        Log.i(TAG, "onResume");
        MobclickAgent.onResume(this);
        SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE);
        boolean isLogin = sp.getBoolean("isLogin", false);
        boolean isLogin = UserUtil.isLogin(getApplicationContext());
        if (isLogin) {//用户已经登录
            if (isWXLogin) {
                finish();
                return;
            }
            tv_login_top_hint.setText("请绑定你的常用手机号");
//            tv_login_top_hint.setVisibility(View.INVISIBLE);
            ll_user_agreement.setVisibility(View.INVISIBLE);
            tv_other_login.setVisibility(View.INVISIBLE);
            iv_login_wechat.setVisibility(View.INVISIBLE);
            tv_mobile_type.setText("绑定"+getResources().getString(R.string.app_name));
            tv_mobile_hint.setText(String.format("新的手机号必须没有绑定过其他%s帐号",getResources().getString(R.string.app_name)));
            tv_mobile_hint.setVisibility(View.INVISIBLE);
        } else {
            if (type == TYPE_BIND_WITHOUT_LOGINED) {//用户尚未登录绑定电话号码
                tv_login_top_hint.setText("请绑定你的常用手机号");
//                tv_login_top_hint.setVisibility(View.INVISIBLE);
//                ll_user_agreement.setVisibility(View.INVISIBLE);
                tv_other_login.setVisibility(View.INVISIBLE);
                iv_login_wechat.setVisibility(View.INVISIBLE);
                ll_user_agreement.setVisibility(View.INVISIBLE);
                tv_mobile_type.setText("绑定"+getResources().getString(R.string.app_name));
                tv_mobile_hint.setText(String.format("新的手机号必须没有绑定过其他%s帐号",getResources().getString(R.string.app_name)));
                tv_mobile_hint.setVisibility(View.INVISIBLE);
            }
        }
        initView(type);
    }
    private void initView(int type) {
        switch (type) {
            case TYPE_LOGIN:
                mAquery.id(R.id.iv_login_mark).visibility(View.VISIBLE);
                mAquery.id(R.id.tv_bind_mark).visibility(View.GONE);
                mAquery.id(R.id.tv_other_login).visibility(View.VISIBLE);
                mAquery.id(R.id.ll_other_login).visibility(View.VISIBLE);
                mAquery.id(R.id.tv_login_onekey).text("本机号码一键登录");
                mAquery.id(R.id.tv_mobile_hint).text(String.format("新的手机号必须没有绑定过其他%s帐号", getResources().getString(R.string.app_name)));
                break;
            case TYPE_BIND:
            case TYPE_BIND_WITHOUT_LOGINED:
                mAquery.id(R.id.iv_login_mark).visibility(View.GONE);
                mAquery.id(R.id.tv_bind_mark).visibility(View.VISIBLE);
                mAquery.id(R.id.tv_other_login).visibility(View.GONE);
                mAquery.id(R.id.ll_other_login).visibility(View.GONE);
                mAquery.id(R.id.tv_login_onekey).text("本机号码一键绑定");
                mAquery.id(R.id.tv_mobile_hint).text(String.format("新的手机号必须没有绑定过其他%s帐号", getResources().getString(R.string.app_name)));
                break;
        }
    }
    @Override
    public void onClick(View view) {
@@ -204,14 +267,7 @@
            case R.id.iv_contact_kefu:
                KeFuUtil.jumpKeFu(LoginSelectActivity.this, "登录");
                break;
            case R.id.tv_other_login:
                tv_other_login.setCompoundDrawablesWithIntrinsicBounds(0, 0,
                        iv_login_wechat.getVisibility() == View.VISIBLE ?
                                R.drawable.ic_other_login_close :
                                R.drawable.ic_other_login_open, 0);
                iv_login_wechat.setVisibility(iv_login_wechat.getVisibility() == View.VISIBLE
                        ? View.INVISIBLE : View.VISIBLE);
                break;
            case R.id.tv_user_agreement:
                UserCustomEvent.userLoginProtocol(LoginSelectActivity.this);
                if (StringUtils.isEmpty(serviceProtocolLink))
@@ -220,9 +276,6 @@
                intent.putExtra("url", serviceProtocolLink);
                startActivity(intent);
                break;
            //隐私政策
//            serviceProtocolLink = jsonObject.optJSONObject("data").optString("serviceProtocolLink");
//            privacyProtocolLink = jsonObject.optJSONObject("data").optString("privacyProtocolLink");
            case R.id.tv_privacy_policies:
                UserCustomEvent.userLoginProtocol(LoginSelectActivity.this);
                if (StringUtils.isEmpty(privacyProtocolLink))
@@ -231,7 +284,7 @@
                intent1.putExtra("url", privacyProtocolLink);
                startActivity(intent1);
                break;
            case R.id.iv_login_wechat:
            case R.id.tv_login_wx:
                UserCustomEvent.userLoginWeixin(LoginSelectActivity.this);
                if (ShoppingApplication.application.mWxApi.isWXAppInstalled()) {
                    isWXLogin = true;
@@ -243,8 +296,12 @@
                    Toast.makeText(LoginSelectActivity.this, "请先安装微信客户端", Toast.LENGTH_SHORT).show();
                }
                break;
            case R.id.fl_login_gain_sms:
                fl_login_gain_sms.setEnabled(false);
            case R.id.tv_login_qq:
                //TODO QQ登录
                break;
            case R.id.tv_login_gain_sms:
                tv_login_gain_sms.setEnabled(false);
                UserCustomEvent.userLoginSms(LoginSelectActivity.this);
                isWXLogin = false;
                if (type == TYPE_BIND || type == TYPE_BIND_WITHOUT_LOGINED) {
@@ -252,6 +309,11 @@
                } else if (type == TYPE_LOGIN) {
                    getVerificationCode();
                }
                break;
            case R.id.tv_login_onekey:
                //TODO 一键登录
                openOneKeyLogin(true)
                break;
        }
    }
@@ -287,8 +349,8 @@
            @Override
            public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
                if (jsonObject.optString("code").equalsIgnoreCase("0")) {
                    tv_mobile_hint.setTextColor(getResources().getColor(R.color.gray));
                    tv_mobile_hint.setText(String.format("新的手机号必须没有绑定过其他%s帐号",getResources().getString(R.string.app_name)));
                    mAquery.id(R.id.tv_mobile_hint).textColorId(R.color.gray);
                    mAquery.id(R.id.tv_mobile_hint).text(String.format("新的手机号必须没有绑定过其他%s帐号", getResources().getString(R.string.app_name)));
                    Intent intent = new Intent(LoginSelectActivity.this, LoginVerifyCodeActivity.class);
                    intent.putExtra("title", "登录");
@@ -320,8 +382,8 @@
                        }
                    }).create().show();
                } else {
                    tv_mobile_hint.setTextColor(getResources().getColor(R.color.detail_sharelist_reward_num));
                    tv_mobile_hint.setText(jsonObject.optString("msg"));
                    mAquery.id(R.id.tv_mobile_hint).textColorId(R.color.detail_sharelist_reward_num);
                    mAquery.id(R.id.tv_mobile_hint).text(jsonObject.optString("msg"));
                    Toast.makeText(LoginSelectActivity.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
                }
            }
@@ -329,7 +391,7 @@
            @Override
            public void onFinish() {
                super.onFinish();
                fl_login_gain_sms.setEnabled(true);
                tv_login_gain_sms.setEnabled(true);
                pd.dismiss();
            }
        });
@@ -344,12 +406,12 @@
        }
        pd.show();
        final String mobileNum = et_mobile_num.getText().toString().trim();
        ShoppingApi.sendMSMBind(LoginSelectActivity.this, slideVerify + "", mobileNum,UserUtil.getUid(getApplicationContext()), new BasicTextHttpResponseHandler() {
        ShoppingApi.sendMSMBind(LoginSelectActivity.this, slideVerify + "", mobileNum, UserUtil.getUid(getApplicationContext()), new BasicTextHttpResponseHandler() {
            @Override
            public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
                if (jsonObject.optString("code").equalsIgnoreCase("0")) {
                    tv_mobile_hint.setTextColor(getResources().getColor(R.color.gray));
                    tv_mobile_hint.setText(String.format("新的手机号必须没有绑定过其他%s帐号",getResources().getString(R.string.app_name)));
                    mAquery.id(R.id.tv_mobile_hint).textColorId(R.color.gray);
                    mAquery.id(R.id.tv_mobile_hint).text(String.format("新的手机号必须没有绑定过其他%s帐号", getResources().getString(R.string.app_name)));
                    Intent intent = new Intent(LoginSelectActivity.this, LoginVerifyCodeActivity.class);
                    intent.putExtra("title", "绑定");
                    intent.putExtra("uid", uid);
@@ -392,8 +454,8 @@
                                }
                            }).create().show();
                } else {
                    tv_mobile_hint.setTextColor(getResources().getColor(R.color.detail_sharelist_reward_num));
                    tv_mobile_hint.setText(jsonObject.optString("msg"));
                    mAquery.id(R.id.tv_mobile_hint).textColorId(R.color.detail_sharelist_reward_num);
                    mAquery.id(R.id.tv_mobile_hint).text(jsonObject.optString("msg"));
                    Toast.makeText(LoginSelectActivity.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
                }
            }
@@ -401,7 +463,7 @@
            @Override
            public void onFinish() {
                super.onFinish();
                fl_login_gain_sms.setEnabled(true);
                tv_login_gain_sms.setEnabled(true);
                if (pd.isShowing())
                    pd.dismiss();
            }