package com.yeshi.base.ui;
|
|
import java.util.Timer;
|
import java.util.TimerTask;
|
import java.util.regex.Matcher;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import android.content.Context;
|
import android.content.SharedPreferences;
|
import android.content.pm.ActivityInfo;
|
import android.os.Bundle;
|
import android.os.Handler;
|
import android.os.Message;
|
import android.text.Editable;
|
import android.text.TextWatcher;
|
import android.view.View;
|
import android.widget.EditText;
|
import android.widget.TextView;
|
|
import com.lcjian.library.util.SingleToast;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.yeshi.base.utils.BaseApiUtil;
|
import com.yeshi.base.utils.IsEmail;
|
import com.yeshi.base.utils.http.BasicTextHttpResponseHandler;
|
import com.yeshi.ec.base.R;
|
|
/**
|
* 忘记密码,修改密码 Created by weikou2015 on 2016/10/27.
|
*/
|
|
public class ForgetPwdActivity extends BaseActivity implements
|
View.OnClickListener {
|
|
private EditText et_email;
|
private EditText et_verfication_code;
|
private TextView tv_obtain_verfication_code;
|
private EditText et_pwd;
|
private TextView tv_confirm;
|
|
@Override
|
protected void onCreate(Bundle arg0) {
|
super.onCreate(arg0);
|
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
setContentView(R.layout.activity_forget_pwd);
|
et_email = (EditText) findViewById(R.id.et_email);
|
et_verfication_code = (EditText) findViewById(R.id.et_verfication_code);
|
tv_obtain_verfication_code = (TextView) findViewById(R.id.tv_obtain_verfication_code);
|
et_pwd = (EditText) findViewById(R.id.et_pwd);
|
tv_confirm = (TextView) findViewById(R.id.tv_confirm);
|
|
et_email.addTextChangedListener(new TextWatcher() {
|
|
@Override
|
public void onTextChanged(CharSequence arg0, int arg1, int arg2,
|
int arg3) {
|
|
}
|
|
@Override
|
public void beforeTextChanged(CharSequence arg0, int arg1,
|
int arg2, int arg3) {
|
|
}
|
|
@Override
|
public void afterTextChanged(Editable arg0) {
|
// et_email.getText().toString()
|
if (!StringUtils.isEmpty(et_verfication_code.getText()
|
.toString())
|
&& !StringUtils.isEmpty(et_pwd.getText().toString())
|
&& !StringUtils.isEmpty(arg0.toString())) {
|
tv_confirm.setBackground(getResources().getDrawable(
|
R.drawable.shape_login2));
|
} else {
|
tv_confirm.setBackground(getResources().getDrawable(
|
R.drawable.shape_login1));
|
}
|
if (!StringUtils.isEmpty(arg0.toString())) {
|
tv_obtain_verfication_code.setBackground(getResources()
|
.getDrawable(R.drawable.shape_login2));
|
} else {
|
tv_obtain_verfication_code.setBackground(getResources()
|
.getDrawable(R.drawable.shape_login1));
|
}
|
|
}
|
});
|
et_verfication_code.addTextChangedListener(new TextWatcher() {
|
|
@Override
|
public void onTextChanged(CharSequence arg0, int arg1, int arg2,
|
int arg3) {
|
|
}
|
|
@Override
|
public void beforeTextChanged(CharSequence arg0, int arg1,
|
int arg2, int arg3) {
|
|
}
|
|
@Override
|
public void afterTextChanged(Editable arg0) {
|
if (!StringUtils.isEmpty(et_email.getText().toString())
|
&& !StringUtils.isEmpty(et_pwd.getText().toString())
|
&& !StringUtils.isEmpty(arg0.toString())) {
|
tv_confirm.setBackground(getResources().getDrawable(
|
R.drawable.shape_login2));
|
} else {
|
tv_confirm.setBackground(getResources().getDrawable(
|
R.drawable.shape_login1));
|
}
|
|
}
|
});
|
|
et_pwd.addTextChangedListener(new TextWatcher() {
|
|
@Override
|
public void onTextChanged(CharSequence arg0, int arg1, int arg2,
|
int arg3) {
|
|
}
|
|
@Override
|
public void beforeTextChanged(CharSequence arg0, int arg1,
|
int arg2, int arg3) {
|
|
}
|
|
@Override
|
public void afterTextChanged(Editable arg0) {
|
if (!StringUtils.isEmpty(et_verfication_code.getText()
|
.toString())
|
&& !StringUtils.isEmpty(et_email.getText().toString())
|
&& !StringUtils.isEmpty(arg0.toString())) {
|
tv_confirm.setBackground(getResources().getDrawable(
|
R.drawable.shape_login2));
|
} else {
|
tv_confirm.setBackground(getResources().getDrawable(
|
R.drawable.shape_login1));
|
}
|
}
|
});
|
|
tv_obtain_verfication_code.setOnClickListener(this);
|
tv_confirm.setOnClickListener(this);
|
findViewById(R.id.tv_back).setOnClickListener(this);
|
}
|
|
@Override
|
public void onClick(View v) {
|
int id = v.getId();
|
if (id == R.id.tv_obtain_verfication_code) {
|
String email = et_email.getText().toString();
|
if (StringUtils.isEmpty(email)) {
|
SingleToast.showToast(ForgetPwdActivity.this, "请先输入邮箱号");
|
return;
|
} else {
|
Matcher m = IsEmail.isEmailAddress().matcher(email);
|
if (m.matches()) {
|
getVerficationCode(email);
|
} else {
|
SingleToast.showToast(ForgetPwdActivity.this,
|
"输入的邮箱账号有误,请查证!");
|
return;
|
}
|
}
|
} else if (id == R.id.tv_confirm) {
|
String str = et_email.getText().toString();
|
if (StringUtils.isEmpty(str)) {
|
SingleToast.showToast(ForgetPwdActivity.this, "请先输入邮箱号");
|
return;
|
} else {
|
Matcher m = IsEmail.isEmailAddress().matcher(str);
|
if (!m.matches()) {
|
SingleToast.showToast(ForgetPwdActivity.this,
|
"输入的邮箱账号有误,请查证!");
|
return;
|
}
|
}
|
if (StringUtils.isEmpty(et_pwd.getText().toString())) {
|
SingleToast.showToast(ForgetPwdActivity.this, "密码不能为空!");
|
return;
|
}
|
if (et_pwd.getText().toString().length() < 6) {
|
SingleToast.showToast(ForgetPwdActivity.this, "密码长度不能低于6位!");
|
return;
|
}
|
revisePwd();
|
} else if (id == R.id.tv_back) {
|
finish();
|
}
|
}
|
|
Timer timer;
|
int timecount = 59;
|
|
/**
|
* 修改密码
|
*/
|
private void revisePwd() {
|
SharedPreferences sp = getSharedPreferences("user",
|
Context.MODE_PRIVATE);
|
String uid = sp.getString("uid", "");
|
BaseApiUtil.revisePwd(this, uid, et_email.getText().toString(),
|
et_verfication_code.getText().toString(), et_pwd.getText()
|
.toString(), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.optBoolean("IsPost")) {
|
SingleToast.showToast(ForgetPwdActivity.this,
|
"修改密码成功!");
|
ForgetPwdActivity.this.finish();
|
} else {
|
SingleToast.showToast(ForgetPwdActivity.this,
|
jsonObject.optString("Error") + ",修改密码失败!");
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers,
|
String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString,
|
throwable);
|
SingleToast.showToast(ForgetPwdActivity.this, "修改密码失败");
|
}
|
});
|
}
|
|
private void getVerficationCode(String email) {
|
timer = new Timer();
|
timer.schedule(new MyTask(), 1000, 1000);
|
SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE);
|
String uid = sp.getString("uid", "");
|
BaseApiUtil.getVerficationCode(ForgetPwdActivity.this, uid, email,
|
new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.optBoolean("IsPost")) {
|
SingleToast.showToast(ForgetPwdActivity.this,
|
"获取验证码成功,请打开邮箱查看!");
|
} else {
|
SingleToast.showToast(ForgetPwdActivity.this,
|
"获取验证码失败,请重新获取!");
|
handler.sendEmptyMessage(1);
|
}
|
}
|
});
|
}
|
|
class MyTask extends TimerTask {
|
@Override
|
public void run() {
|
if (timecount > 0) {
|
handler.sendEmptyMessage(0);
|
} else {
|
handler.sendEmptyMessage(1);
|
}
|
}
|
}
|
|
Handler handler = new Handler() {
|
@Override
|
public void handleMessage(Message msg) {
|
super.handleMessage(msg);
|
switch (msg.what) {
|
case 0:
|
tv_obtain_verfication_code.setClickable(false);
|
tv_obtain_verfication_code.setText("重新发送(" + timecount + "s)");
|
timecount--;
|
break;
|
case 1:
|
timer.cancel();
|
tv_obtain_verfication_code.setText("获取验证码");
|
tv_obtain_verfication_code.setClickable(true);
|
timecount = 59;
|
break;
|
}
|
}
|
};
|
}
|