package com.itbox.grzl.activity;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import com.itbox.fx.net.GsonResponseHandler;
import com.itbox.fx.net.Net;
import com.itbox.fx.net.ResponseHandler;
import com.itbox.fx.util.StringUtil;
import com.itbox.fx.util.ToastUtils;
import com.itbox.grzl.Api;
import com.itbox.grzl.AppContext;
import com.zhaoliewang.grzl.R;
import com.itbox.grzl.bean.CheckAccount;
import com.itbox.grzl.bean.Register;
import com.itbox.grzl.engine.RegistResetEngine;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class ResetPassPhoneActivity extends BaseActivity {
@InjectView(R.id.text_left)
TextView mTVTopCancel;
@InjectView(R.id.text_medium)
TextView mTVTopMedium;
@InjectView(R.id.reset_phone_et)
EditText mETResetPhone;
@InjectView(R.id.reset_code_et)
EditText mETResetCode;
@InjectView(R.id.reset_1)
TextView mReset1;
@InjectView(R.id.reset_2)
TextView mReset2;
@InjectView(R.id.reset_3)
TextView mReset3;
@InjectView(R.id.reset_email)
Button mBTResetEmail;
@InjectView(R.id.reset_get_authCode)
Button mBTResetGet;
private String phoneNum = "";
private boolean isCode = false;
private boolean isSavePsw = false;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.activity_reset_phone);
ButterKnife.inject(mActThis);
initViews();
initRest(0);
}
private void initRest(int num) {
switch (num) {
case 0:
mReset1.setTextColor(Color.rgb(47, 136, 200));
mReset2.setTextColor(Color.rgb(255, 255, 255));
mReset3.setTextColor(Color.rgb(255, 255, 255));
break;
case 1:
mReset1.setTextColor(Color.rgb(255, 255, 255));
mReset2.setTextColor(Color.rgb(47, 136, 200));
mReset3.setTextColor(Color.rgb(255, 255, 255));
break;
case 2:
mReset1.setTextColor(Color.rgb(255, 255, 255));
mReset2.setTextColor(Color.rgb(255, 255, 255));
mReset3.setTextColor(Color.rgb(47, 136, 200));
break;
default:
break;
}
}
private void initViews() {
mTVTopCancel.setVisibility(View.VISIBLE);
mTVTopMedium.setText("手机找回密码");
}
@OnClick({R.id.text_left, R.id.reset_email, R.id.reset_get_authCode})
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.text_left:
finish();
break;
case R.id.reset_email:
startActivity(ResetPassEmailActivity.class);
finish();
break;
case R.id.reset_get_authCode:
String mPhone = mETResetPhone.getText().toString();
if (isSavePsw) {
resetPSW(mPhone);
} else {
if (isCode) {
getAuthCode(mPhone);
} else {
if(StringUtil.isBlank(mPhone)) {
showToast( "手机号不为空");
} else{
if (StringUtil.checkPhone(mPhone)){
checkIsRegistServer(mPhone);
} else {
showToast("手机号不符合规定");
}
}
}
}
break;
default:
break;
}
super.onClick(v);
}
private void checkIsRegistServer(final String mPhone) {
Net.request("userphone", mPhone, Api.getUrl(Api.User.CheckAccount), new GsonResponseHandler<CheckAccount>(CheckAccount.class){
public void onSuccess(CheckAccount object) {
if (object.getUserPhone() == 0) {
ToastUtils.makeCustomPosition(mActThis, "您的手机尚未注册", R.id.alternate_view_group);
} else {
sendAuthCode(mPhone);
}
}
}
);
}
private void sendAuthCode(final String mPhone) {
// TODO Auto-generated method stub
RegistResetEngine.sendAuthCode(mPhone, 2, new GsonResponseHandler<Register>(Register.class) {
@Override
public void onSuccess(Register object) {
super.onSuccess(object);
int result = object.getResult();
if(result == 1) {
initRest(1);
phoneNum = mPhone;
mETResetPhone.setText("");
mETResetPhone.setHint("请输入验证码");
mBTResetGet.setText("下一步");
isCode = true;
} else if (result == 2) {
showToast("当前用户不存在");
} else if (result == 5) {
showToast("此号码操作频繁");
}
}
});
};
private void getAuthCode(String code) {
if (StringUtil.isBlank(code)){
showToast("验证码不为空");
} else {
RegistResetEngine.getAuthCode(phoneNum, code, 2, new GsonResponseHandler<Register>(Register.class){
@Override
public void onSuccess(Register object) {
super.onSuccess(object);
int result = object.getResult();
if (result == 0) {
showToast("验证码错误");
// mBTRegistNext.setEnabled(false);
} else if (result == 1) {
initRest(2);
mETResetPhone.setText("");
mETResetPhone.setHint("请输入六位新密码");
mBTResetGet.setText("保 存");
isSavePsw = true;
}
}
});
}
}
private void resetPSW (String psw) {
if (StringUtil.isBlank(psw)) {
showToast("新密码不为空");
} else {
if (psw.length() > 6) {
showToast("密码为六位");
} else {
showProgressDialog("保存中...");
RegistResetEngine.resetPass(AppContext.getInstance().getAccount().getUserid()+"", psw, new ResponseHandler() {
@Override
public void onSuccess(String content) {
super.onSuccess(content);
Log.i("youzh", content);
if (content.equals("200")) {
showToast("重置密码成功");
mActThis.finish();
} else {
showToast("重置密码失败");
}
}
});
}
}
}
}