| | |
| | | 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; |
| | |
| | | * 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;//绑定 |
| | |
| | | |
| | | private AliyunSmsOneKeyLoginManager aliyunSmsOneKeyLoginManager; |
| | | |
| | | private boolean showOnkeyLoginToast = false; |
| | | |
| | | |
| | | @Override |
| | | protected void onCreate(Bundle savedInstanceState) { |
| | |
| | | String from = getIntent().getStringExtra("from"); |
| | | UserCustomEvent.userLogin(this, StringUtils.isEmpty(from) ? "其它" : from); |
| | | EventBus.getDefault().register(this); |
| | | aliyunSmsOneKeyLoginManager = new AliyunSmsOneKeyLoginManager(this, null); |
| | | |
| | | 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 |
| | | 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 = true; |
| | | } |
| | | |
| | | @Override |
| | | public void onEnvCheckSuccess() { |
| | | |
| | | showOnkeyLoginToast = false; |
| | | //掉起授权框 |
| | | aliyunSmsOneKeyLoginManager.startGetLoginToken(); |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | public void onToken(String 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); |
| | | } |
| | | |
| | | private synchronized void openOneKeyLogin(final boolean notify) { |
| | | ShoppingApi.allowOneKeyLogin(this, UserUtil.getLoginUid(this), new BasicTextHttpResponseHandler() { |
| | | @Override |
| | | public void onLoginSuccess(UserInfo user) { |
| | | UserUtil.loginSuccess(getApplicationContext(), user); |
| | | Toast.makeText(getApplicationContext(), "恭喜你,登录成功", Toast.LENGTH_SHORT).show(); |
| | | finish(); |
| | | } |
| | | |
| | | @Override |
| | | public void onStart() { |
| | | DialogUtil.show(loadingDialog); |
| | | } |
| | | @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 onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { |
| | | if (jsonObject.optBoolean("IsPost")) { |
| | | aliyunSmsOneKeyLoginManager.checkEnv(); |
| | | @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 { |
| | | if (notify) { |
| | | Toast.makeText(PhoneLoginActivity.this, jsonObject.optString("Error"), Toast.LENGTH_SHORT).show(); |
| | | } |
| | | //电话号码绑定 |
| | | 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(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onFinish() { |
| | | DialogUtil.dismiss(loadingDialog); |
| | | } |
| | | }); |
| | | |
| | | 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 addListener() { |
| | | tv_login_gain_sms.setOnClickListener(this); |
| | | 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) { |
| | |
| | | |
| | | @Override |
| | | public void afterTextChanged(Editable editable) { |
| | | // fl_login_gain_sms.setEnabled(editable.length() == 13 ? true : false); |
| | | // fl_login_gain_sms.setBackgroundResource(editable.length() == 13 ? |
| | | tv_login_gain_sms.setEnabled(editable.length() == 13 ? true : false); |
| | | // tv_login_gain_sms.setBackgroundResource(editable.length() == 13 ? |
| | | // R.drawable.shape_mobile_login_light : R.drawable.shape_login_gain_sms); |
| | | } |
| | | }); |
| | |
| | | startActivity(intent1); |
| | | break; |
| | | case R.id.tv_login_wx: |
| | | if (!isAgreed()) { |
| | | return; |
| | | } |
| | | UserCustomEvent.userLoginWeixin(LoginSelectActivity.this); |
| | | if (ShoppingApplication.application.mWxApi.isWXAppInstalled()) { |
| | | isWXLogin = true; |
| | |
| | | } |
| | | 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; |
| | |
| | | } |
| | | break; |
| | | |
| | | case R.id.tv_login_onekey: |
| | | //TODO 一键登录 |
| | | 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; |
| | |
| | | |
| | | @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) { |