package com.weikou.beibeivideo.ui.login; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.content.pm.ActivityInfo; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.CheckBox; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; import com.lcjian.library.util.SingleToast; import com.lcjian.library.util.common.StringUtils; import com.weikou.beibeivideo.BasicTextHttpResponseHandler; import com.weikou.beibeivideo.BeibeiVideoAPI; import com.weikou.beibeivideo.ui.BaseActivity; import com.weikou.beibeivideo.util.IsEmail; import com.weikou.beibeivideo.R; import com.weikou.beibeivideo.util.ui.TopStatusSettings; import org.apache.http.Header; import org.json.JSONObject; import java.util.Timer; import java.util.TimerTask; import java.util.regex.Matcher; /** * 忘记密码,修改密码 * 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; private CheckBox cb_user_agreement; @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setContentView(R.layout.activity_forget_pwd); TopStatusSettings.setStatusViewAndDeepColor(this); 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); cb_user_agreement = findViewById(R.id.cb_user_agreement); tv_obtain_verfication_code.setOnClickListener(this); tv_confirm.setOnClickListener(this); findViewById(R.id.tv_back).setOnClickListener(this); findViewById(R.id.tv_user_agreement_click).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { cb_user_agreement.setChecked(!cb_user_agreement.isChecked()); } }); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.tv_obtain_verfication_code: { String email = et_email.getText().toString(); if (StringUtils.isEmpty(email)) { SingleToast.showToast(ForgetPwdActivity.this, "请先输入邮箱号"); return; } if (!cb_user_agreement.isChecked()) { SingleToast.showToast(ForgetPwdActivity.this, "请同意《用户使用协议》与《隐私政策》"); return; } Matcher m = IsEmail.isEmailAddress().matcher(email); if (m.matches()) { getVerficationCode(email); } else { SingleToast.showToast(ForgetPwdActivity.this, "输入的邮箱账号有误,请查证!"); return; } } break; case R.id.tv_confirm: { String str = et_email.getText().toString(); if (StringUtils.isEmpty(str)) { SingleToast.showToast(ForgetPwdActivity.this, "请先输入邮箱号"); return; } if (!cb_user_agreement.isChecked()) { SingleToast.showToast(ForgetPwdActivity.this, "请同意《用户使用协议》与《隐私政策》"); return; } 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(); } break; case R.id.tv_back: finish(); break; } } Timer timer; int timecount = 59; /** * 修改密码 */ private void revisePwd() { SharedPreferences sp = getSharedPreferences("user", Context.MODE_PRIVATE); String uid = sp.getString("uid", ""); BeibeiVideoAPI.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", ""); BeibeiVideoAPI.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; } } }; }