package com.yeshi.ec.rebate.myapplication.ui.mine;
|
|
import android.app.Activity;
|
import android.content.DialogInterface;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
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.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.tencent.mm.opensdk.modelmsg.SendAuth;
|
import com.umeng.analytics.MobclickAgent;
|
import com.wpc.library.util.common.StringUtils;
|
import com.wpc.library.widget.PhoneNumberClearEditText;
|
import com.yeshi.ec.rebate.myapplication.BasicTextHttpResponseHandler;
|
import com.yeshi.ec.rebate.myapplication.R;
|
import com.yeshi.ec.rebate.myapplication.ShoppingApi;
|
import com.yeshi.ec.rebate.myapplication.ShoppingApplication;
|
import com.yeshi.ec.rebate.myapplication.entity.UserInfo;
|
import com.yeshi.ec.rebate.myapplication.entity.eventbus.WXLoginEvent;
|
import com.yeshi.ec.rebate.myapplication.ui.dialog.AddZFBInfoDialog;
|
import com.yeshi.ec.rebate.myapplication.ui.dialog.CommonDialog;
|
import com.yeshi.ec.rebate.myapplication.ui.dialog.ShapeLoadingDialog;
|
import com.yeshi.ec.rebate.myapplication.ui.dialog.VerifyMobileDialog;
|
import com.yeshi.ec.rebate.myapplication.ui.invite.ShareBrowserActivity;
|
import com.yeshi.ec.rebate.myapplication.util.KeFuUtil;
|
import com.yeshi.ec.rebate.myapplication.util.TopStatusSettings;
|
import com.yeshi.ec.rebate.myapplication.util.umengCustomEvent.UserCustomEvent;
|
import com.yeshi.ec.rebate.myapplication.util.user.UserUtil;
|
|
import org.apache.http.Header;
|
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 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 PhoneNumberClearEditText et_mobile_num;
|
LinearLayout ll_user_agreement;
|
private ImageView et_mobile_numimg;
|
|
String uid;
|
boolean isWXLogin = false;
|
|
int type;
|
String key;//微信登录尚未绑定手机时回传的标识
|
|
private static String TAG="LoginSelectActivity";
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.activity_login_select);
|
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);
|
}
|
|
private void initData(Intent intent) {
|
type =intent.getIntExtra("type", TYPE_LOGIN);
|
init(intent);
|
addListener();
|
}
|
|
@Override
|
protected void onNewIntent(Intent intent) {
|
super.onNewIntent(intent);
|
Log.i(TAG,"onNewIntent");
|
initData(intent);
|
}
|
|
/*
|
初始化控件
|
*/
|
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);
|
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("未注册的手机号注册后系统会自动创建返利联盟账户");
|
|
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");
|
getUserConfig();
|
}
|
|
/*
|
*添加监听
|
*/
|
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() {
|
@Override
|
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
}
|
|
@Override
|
public void onTextChanged(CharSequence charSequence, int start, int before, int count) {
|
// Log.e("mResult", "charSequence:" + charSequence + "---start:" + start +
|
// "---before:" + before + "---count:" + count);
|
boolean canSend = false;
|
if (charSequence != null) {
|
if (charSequence.length() == 13) {
|
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
|
public void afterTextChanged(Editable editable) {
|
// fl_login_gain_sms.setEnabled(editable.length() == 13 ? true : false);
|
// fl_login_gain_sms.setBackgroundResource(editable.length() == 13 ?
|
// R.drawable.shape_mobile_login_light : R.drawable.shape_login_gain_sms);
|
}
|
});
|
}
|
|
@Override
|
protected void onResume() {
|
super.onResume();
|
Log.i(TAG,"onResume");
|
MobclickAgent.onResume(this);
|
SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE);
|
boolean isLogin = sp.getBoolean("isLogin", false);
|
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("未注册的手机号注册后系统会自动创建返利联盟账户");
|
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("未注册的手机号注册后系统会自动创建返利联盟账户");
|
tv_mobile_hint.setVisibility(View.INVISIBLE);
|
}
|
}
|
}
|
|
@Override
|
public void onClick(View view) {
|
switch (view.getId()) {
|
case R.id.iv_close:
|
finish();
|
break;
|
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))
|
break;
|
Intent intent = new Intent(LoginSelectActivity.this, ShareBrowserActivity.class);
|
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))
|
break;
|
Intent intent1 = new Intent(LoginSelectActivity.this, ShareBrowserActivity.class);
|
intent1.putExtra("url", privacyProtocolLink);
|
startActivity(intent1);
|
break;
|
case R.id.iv_login_wechat:
|
UserCustomEvent.userLoginWeixin(LoginSelectActivity.this);
|
if (ShoppingApplication.application.mWxApi.isWXAppInstalled()) {
|
isWXLogin = true;
|
SendAuth.Req req = new SendAuth.Req();
|
req.scope = "snsapi_userinfo";
|
req.state = "rebate";
|
ShoppingApplication.application.mWxApi.sendReq(req);
|
} else {
|
Toast.makeText(LoginSelectActivity.this, "请先安装微信客户端", Toast.LENGTH_SHORT).show();
|
}
|
break;
|
case R.id.fl_login_gain_sms:
|
fl_login_gain_sms.setEnabled(false);
|
UserCustomEvent.userLoginSms(LoginSelectActivity.this);
|
isWXLogin = false;
|
if (type == TYPE_BIND || type == TYPE_BIND_WITHOUT_LOGINED) {
|
getVerificationCodeBind();
|
} else if (type == TYPE_LOGIN) {
|
getVerificationCode();
|
}
|
break;
|
}
|
}
|
|
private boolean isIntent = false;
|
|
@Override
|
protected void onPause() {
|
super.onPause();
|
MobclickAgent.onPause(this);
|
if (isIntent) {
|
finish();
|
}
|
}
|
|
/**
|
* 请求服务器发送验证码
|
* 接口请求成功后隐藏发送按钮,同时倒计时开始
|
*/
|
boolean slideVerify = false;
|
ShapeLoadingDialog pd;
|
|
/**
|
* 注册手机号
|
*/
|
private void getVerificationCode() {
|
if (pd == null) {
|
pd = new ShapeLoadingDialog.Builder(this).build();
|
}
|
pd.show();
|
final String mobileNum = et_mobile_num.getText().toString().trim();
|
ShoppingApi.sendMSMLogin(LoginSelectActivity.this, slideVerify + "", mobileNum, 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("未注册的手机号注册后系统会自动创建返利联盟账户");
|
|
Intent intent = new Intent(LoginSelectActivity.this, LoginVerifyCodeActivity.class);
|
intent.putExtra("title", "登录");
|
intent.putExtra("type", type);
|
intent.putExtra("mobile", mobileNum);
|
startActivityForResult(intent, 99);
|
} else if (jsonObject.optString("code").equalsIgnoreCase("2")) {//滑动验证
|
VerifyMobileDialog.Builder builder = new VerifyMobileDialog.Builder(LoginSelectActivity.this);
|
builder.setTitle("请向右滑动滑块验证").setMobileNum(mobileNum)
|
.setPositiveButton("", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialog, int which) {
|
dialog.dismiss();
|
slideVerify = true;
|
getVerificationCode();
|
}
|
}).setNegativeButton("", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialog, int which) {
|
dialog.dismiss();
|
}
|
}).create().show();
|
} else if (jsonObject.optString("code").equalsIgnoreCase("3")) {//滑动验证
|
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();
|
} else {
|
tv_mobile_hint.setTextColor(getResources().getColor(R.color.detail_sharelist_reward_num));
|
tv_mobile_hint.setText(jsonObject.optString("msg"));
|
Toast.makeText(LoginSelectActivity.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
fl_login_gain_sms.setEnabled(true);
|
pd.dismiss();
|
}
|
});
|
}
|
|
/**
|
* 绑定手机号
|
*/
|
private void getVerificationCodeBind() {
|
if (pd == null) {
|
pd = new ShapeLoadingDialog.Builder(this).build();
|
}
|
pd.show();
|
final String mobileNum = et_mobile_num.getText().toString().trim();
|
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("新的手机号必须没有绑定过其他返利联盟帐号");
|
Intent intent = new Intent(LoginSelectActivity.this, LoginVerifyCodeActivity.class);
|
intent.putExtra("title", "绑定");
|
intent.putExtra("uid", uid);
|
intent.putExtra("type", type);
|
intent.putExtra("mobile", mobileNum);
|
intent.putExtra("key", key);
|
startActivityForResult(intent, 99);
|
} else if (jsonObject.optString("code").equalsIgnoreCase("2")) {//滑动验证
|
VerifyMobileDialog.Builder builder = new VerifyMobileDialog.Builder(LoginSelectActivity.this);
|
builder.setTitle("请向右滑动滑块验证").setMobileNum(mobileNum)
|
.setPositiveButton("", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialog, int which) {
|
dialog.dismiss();
|
slideVerify = true;
|
getVerificationCode();
|
}
|
}).setNegativeButton("", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialog, int which) {
|
dialog.dismiss();
|
}
|
}).create().show();
|
} else if (jsonObject.optString("code").equalsIgnoreCase("3")) {//滑动验证
|
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();
|
} else if (jsonObject.optString("code").equalsIgnoreCase("9001")) {
|
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();
|
} else {
|
tv_mobile_hint.setTextColor(getResources().getColor(R.color.detail_sharelist_reward_num));
|
tv_mobile_hint.setText(jsonObject.optString("msg"));
|
Toast.makeText(LoginSelectActivity.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
fl_login_gain_sms.setEnabled(true);
|
if (pd.isShowing())
|
pd.dismiss();
|
}
|
});
|
}
|
|
/*
|
登录协议
|
*/
|
String serviceProtocolLink = "";// 用户协议链接
|
String privacyProtocolLink = "";// 隐私条款链接
|
|
private void getUserConfig() {
|
ShoppingApi.getUserConfig(LoginSelectActivity.this, UserUtil.getUid(getApplicationContext()), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optInt("code") == 0) {
|
serviceProtocolLink = jsonObject.optJSONObject("data").optString("serviceProtocolLink");
|
privacyProtocolLink = jsonObject.optJSONObject("data").optString("privacyProtocolLink");
|
}
|
}
|
});
|
}
|
|
@Override
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
super.onActivityResult(requestCode, resultCode, data);
|
if (requestCode == 99 && resultCode == 100) {
|
finish();
|
}
|
}
|
|
public void onEventMainThread(WXLoginEvent event) {
|
if (event.getType() == TYPE_BIND_WITHOUT_LOGINED) {
|
Intent intent = new Intent(this, LoginSelectActivity.class);
|
intent.putExtra("type", event.getType());
|
intent.putExtra("key", event.getKey());
|
startActivity(intent);
|
finish();
|
}
|
}
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
EventBus.getDefault().unregister(this);
|
}
|
}
|