admin
2021-05-28 5965c01b38a2e83cecd7616daa11185fc2499303
app/src/main/java/com/tejia/lijin/app/ui/mine/LoginSelectActivity.java
@@ -1,46 +1,56 @@
package com.tejia.lijin.app.ui.mine;
import android.app.Activity;
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;
import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.LinearLayout;
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.google.gson.Gson;
import com.tejia.lijin.app.BasicTextHttpResponseHandler;
import com.tejia.lijin.app.R;
import com.tejia.lijin.app.ShoppingApi;
import com.tejia.lijin.app.ShoppingApplication;
import com.tejia.lijin.app.entity.UserInfo;
import com.tejia.lijin.app.entity.eventbus.WXLoginEvent;
import com.tejia.lijin.app.ui.BaseActivity;
import com.tejia.lijin.app.ui.dialog.AddZFBInfoDialog;
import com.tejia.lijin.app.ui.dialog.ShapeLoadingDialog;
import com.tejia.lijin.app.ui.dialog.VerifyMobileDialog;
import com.tejia.lijin.app.ui.invite.ShareBrowserActivity;
import com.tejia.lijin.app.util.Constant;
import com.tejia.lijin.app.util.KeFuUtil;
import com.tejia.lijin.app.util.TopStatusSettings;
import com.tejia.lijin.app.util.ui.dialog.DialogUtil;
import com.tejia.lijin.app.util.umengCustomEvent.UserCustomEvent;
import com.tejia.lijin.app.util.user.AccountBindManager;
import com.tejia.lijin.app.util.user.AliyunSmsOneKeyLoginManager;
import com.tejia.lijin.app.util.user.LoginManager;
import com.tejia.lijin.app.util.user.QQLoginManager;
import com.tejia.lijin.app.util.user.UserUtil;
import com.tejia.lijin.wxapi.WXEntryActivity;
import com.tencent.connect.auth.QQToken;
import com.tencent.mm.opensdk.modelmsg.SendAuth;
import com.tencent.tauth.DefaultUiListener;
import com.tencent.tauth.IUiListener;
import com.tencent.tauth.Tencent;
import com.tencent.tauth.UiError;
import com.umeng.analytics.MobclickAgent;
import com.wpc.library.util.SingleToast;
import com.wpc.library.util.common.StringUtils;
import com.wpc.library.widget.PhoneNumberClearEditText;
import org.apache.http.Header;
import org.json.JSONException;
import org.json.JSONObject;
import de.greenrobot.event.EventBus;
@@ -49,7 +59,7 @@
 * Created by weikou2015 on 2017/12/15.
 */
public class LoginSelectActivity extends Activity implements View.OnClickListener {
public class LoginSelectActivity extends BaseActivity implements View.OnClickListener {
    public final static int TYPE_LOGIN = 1;//登录
    public final static int TYPE_BIND = 2;//绑定
@@ -84,7 +94,9 @@
        String from = getIntent().getStringExtra("from");
        UserCustomEvent.userLogin(this, StringUtils.isEmpty(from) ? "其它" : from);
        EventBus.getDefault().register(this);
        aliyunSmsOneKeyLoginManager = new AliyunSmsOneKeyLoginManager(this, "zTsQ9uC74C7EsD4h1II3+0CsxtXbz8VikP//49QvybqgZLOsv4pCQ4yW5fz1Ogt4QFuTqHdictmxHm7KvMAd+dl8peJL+xpGFZjjAMcqNkqcSLptS358E+EpbITK4yYjDS1gbQQKuPiODw88UUWlhcCMye7gm3eF9AWNuZ7fQKVONWl/0wube5iXegJ6ZOfhJiYQDZqsKzgmxU/MdPKWOlKCS9NtefDmgCYMM9S6GQODkxPZm+wDqJ89dXMtU5ejBhMMv63t7eug9SfEGfmEnG31JXD9MCQ00t7e8VLeCfanFoZTquLD5w==");
        String secretInfo = "rb6R3o8sx4BVXzip2GLC27gDVtY8EWD3BHYM8dAuvCE1e7Ux/6jHkaZjgOStr/EGvyH0Q2XHZnM6u0tp7mXY3wsHv6+bJaB6hsgzYEu1up3UgmIIrGwNOkDInWe5n6QOnNN+XSc4oF3Od1AJtAgd6oun7JkrbdJCqDN5qTPXF7rS44sYGlh7apz+fJAU9Nn1/Jzt5qdqEWsjmqu07Z3Gasrl+cEeBC9li2+5yqAnnXB+PflFHd/kdN9iCHRuY99qBVUizej95oL/jRMzw4SQKgWDW2PF9llOcSyYWivRGeFAaDISQSmc4g==";
        aliyunSmsOneKeyLoginManager = new AliyunSmsOneKeyLoginManager(this, secretInfo);
        aliyunSmsOneKeyLoginManager.init(new AliyunSmsOneKeyLoginManager.IOneKeyLoginListener() {
            @Override
@@ -114,10 +126,104 @@
            @Override
            public void onToken(String token) {
                //获取到Token
                aliyunSmsOneKeyLoginManager.quitLoginPage();
                //登录
                if (type == TYPE_LOGIN) {
                    LoginManager.loginByPhone(null, null, token, new LoginManager.LoginAndBindListener() {
                        @Override
                        public void onLoginStart() {
                            DialogUtil.show(loadingDialog);
                        }
                        @Override
                        public void onLoginFinish() {
                            DialogUtil.dismiss(loadingDialog);
                        }
                        @Override
                        public void onLoginSuccess(UserInfo user) {
                            UserUtil.loginSuccess(getApplicationContext(), user);
                            Toast.makeText(getApplicationContext(), "恭喜你,登录成功", Toast.LENGTH_SHORT).show();
                            finish();
                        }
                        @Override
                        public void onLoginFail(int code, String msg) {
                            Toast.makeText(LoginSelectActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
        });
                } else if (type == TYPE_BIND_WITHOUT_LOGINED) {
                    LoginManager.loginWithPhone(null, null, token, key, new LoginManager.LoginAndBindListener() {
                        @Override
                        public void onBindStart() {
                            DialogUtil.show(loadingDialog);
                        }
                        @Override
                        public void onBindFinish() {
                            DialogUtil.dismiss(loadingDialog);
                        }
                        @Override
                        public void onBindSuccess(UserInfo user) {
                            UserUtil.loginSuccess(getApplicationContext(), user);
                            Toast.makeText(getApplicationContext(), "恭喜你,登录成功", Toast.LENGTH_SHORT).show();
                            finish();
                        }
                        @Override
                        public void onBindFail(int code, String msg) {
                            Toast.makeText(LoginSelectActivity.this, msg, Toast.LENGTH_SHORT).show();
                        }
                    });
                } else {
                    //电话号码绑定
                    AccountBindManager.bindPhone(getApplicationContext(), null, null, token, new LoginManager.LoginAndBindListener() {
                        @Override
                        public void onBindFail(int code, String msg) {
                            super.onBindFail(code, msg);
                            if (code == 2) {
                                AddZFBInfoDialog.Builder builder = new AddZFBInfoDialog.Builder(LoginSelectActivity.this);
                                builder.setTitle("号码已占用提示").setMessage("很抱歉,该手机号已被其他帐号占用," +
                                        "若要继续完成本帐号手机号更换,请去取消占用或更换其他手机号,谢谢。\n")
                                        .setPositiveButton("知道了", new DialogInterface.OnClickListener() {
                                            @Override
                                            public void onClick(DialogInterface dialog, int which) {
                                                dialog.dismiss();
                                            }
                                        }).create().show();
                                setResult(100);
                            } else {
                                Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
                            }
                        }
                        @Override
                        public void onBindFinish() {
                            super.onBindFinish();
                        }
                        @Override
                        public void onBindStart() {
                            super.onBindStart();
                        }
                        @Override
                        public void onBindSuccess(UserInfo user) {
                            super.onBindSuccess(user);
                            UserUtil.loginSuccess(getApplicationContext(), user);
                            Toast.makeText(getApplicationContext(), "绑定成功", Toast.LENGTH_SHORT).show();
                            finish();
                        }
                    });
                }
            }
        });
        openOneKeyLogin(showOnkeyLoginToast);
    }
    private synchronized void openOneKeyLogin(final boolean notify) {
@@ -193,6 +299,15 @@
        tv_user_agreement.setOnClickListener(this);
        tv_other_login.setOnClickListener(this);
        tv_privacy_policies.setOnClickListener(this);
        mAquery.id(R.id.tv_login_onekey).clicked(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openOneKeyLogin(true);
            }
        });
        mAquery.id(R.id.iv_close).clicked(this);
        mAquery.id(R.id.tv_login_wx).clicked(this);
        mAquery.id(R.id.tv_login_qq).clicked(this);
        et_mobile_num.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
@@ -286,6 +401,9 @@
                startActivity(intent1);
                break;
            case R.id.tv_login_wx:
                if (!isAgreed()) {
                    return;
                }
                UserCustomEvent.userLoginWeixin(LoginSelectActivity.this);
                if (ShoppingApplication.application.mWxApi.isWXAppInstalled()) {
                    isWXLogin = true;
@@ -298,10 +416,102 @@
                }
                break;
            case R.id.tv_login_qq:
                //TODO QQ登录
                if (!isAgreed()) {
                    return;
                }
                //QQ登录开始
                DialogUtil.show(loadingDialog);
                QQLoginManager.getInstance(getApplicationContext()).startLogin(this, new QQLoginManager.QQLoginListener() {
                    @Override
                    public void onAuthCancel() {
                        DialogUtil.dismiss(loadingDialog);
                    }
                    @Override
                    public void onAuthSuccess(String openId) {
                    }
                    @Override
                    public void onAuthFail(int code, String msg) {
                        DialogUtil.dismiss(loadingDialog);
                        SingleToast.showToast(getApplicationContext(), "QQ授权失败,请稍后再试");
                    }
                    @Override
                    public void onGetUserInfoSuccess(final QQLoginManager.QQUserInfo user) {
                        Log.i(TAG, new Gson().toJson(user));
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                DialogUtil.dismiss(loadingDialog);
                                //TODO 做QQ登录
                                LoginManager.loginByQQ(user, new LoginManager.LoginAndBindListener() {
                                    @Override
                                    public void onLoginStart() {
                                        super.onLoginStart();
                                        DialogUtil.show(loadingDialog);
                                    }
                                    @Override
                                    public void onLoginFinish() {
                                        super.onLoginFinish();
                                        DialogUtil.dismiss(loadingDialog);
                                    }
                                    @Override
                                    public void onLoginFail(int code, String msg) {
                                        super.onLoginFail(code, msg);
                                        Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
                                    }
                                    @Override
                                    public void onLoginSuccess(UserInfo user) {
                                        super.onLoginSuccess(user);
                                        UserUtil.loginSuccess(getApplicationContext(), user);
                                        Toast.makeText(getApplicationContext(), "恭喜你,登录成功", Toast.LENGTH_SHORT).show();
                                        finish();
                                    }
                                    @Override
                                    public void bindPhone(String key) {
                                        super.bindPhone(key);
                                        Intent intent = new Intent(getApplicationContext(), LoginSelectActivity.class);
                                        intent.putExtra("type", LoginSelectActivity.TYPE_BIND_WITHOUT_LOGINED);
                                        intent.putExtra("key", key);
                                        startActivity(intent);
//                                        finish();
                                    }
                                });
                            }
                        });
                    }
                    @Override
                    public void onGetUserInfoFail(int code, String msg) {
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                SingleToast.showToast(getApplicationContext(), "用户信息获取失败,请稍后再试");
                                DialogUtil.dismiss(loadingDialog);
                            }
                        });
                    }
                });
                break;
            case R.id.tv_login_gain_sms:
                if (!isAgreed()) {
                    return;
                }
                tv_login_gain_sms.setEnabled(false);
                UserCustomEvent.userLoginSms(LoginSelectActivity.this);
                isWXLogin = false;
@@ -312,11 +522,17 @@
                }
                break;
            case R.id.tv_login_onekey:
                //TODO 一键登录
                openOneKeyLogin(true);
                break;
        }
    }
    private boolean isAgreed() {
        if (!mAquery.id(R.id.cb_agree).isChecked()) {
            LinearLayout ll_user_agreement = (LinearLayout) mAquery.id(R.id.ll_user_agreement).getView();
            ll_user_agreement.startAnimation(AnimationUtils.loadAnimation(this, R.anim.user_agreement));
            SingleToast.showToast(getApplicationContext(), "请同意用户协议与隐私政策");
            return false;
        }
        return true;
    }
    private boolean isIntent = false;
@@ -491,10 +707,11 @@
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 99 && resultCode == 100) {
            finish();
        }
        QQLoginManager.getInstance(getApplicationContext()).onActivityResult(requestCode, resultCode, data);
        super.onActivityResult(requestCode, resultCode, data);
    }
    public void onEventMainThread(WXLoginEvent event) {