package com.demo.library_login.ui; import android.content.pm.ActivityInfo; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.EditText; import android.widget.TextView; import com.demo.lib.common.activity.BaseActivity; import com.demo.lib.common.util.SingleToast; import com.demo.lib.common.util.common.StringUtils; import com.demo.library_login.R; import com.demo.library_login.entity.LoginApiResult; import com.demo.library_login.inter.ILoginListener; import com.demo.library_login.inter.LoginApiCallBack; import java.util.Timer; import java.util.TimerTask; /** * 忘记密码,修改密码 */ 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 ILoginListener loginListener; public void setLoginListener(ILoginListener loginListener) { this.loginListener = loginListener; } @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); loginListener = (ILoginListener) (getIntent().getSerializableExtra("listener")); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setContentView(R.layout.activity_forget_pwd); et_email = findViewById(R.id.et_email); et_verfication_code = findViewById(R.id.et_verfication_code); tv_obtain_verfication_code = findViewById(R.id.tv_obtain_verfication_code); et_pwd = findViewById(R.id.et_pwd); tv_confirm = findViewById(R.id.tv_confirm); 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 { if (StringUtils.isEmail(email)) { 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 { if (!StringUtils.isEmail(str)) { 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() { String email = (et_email.getText() + "").trim(); String vcode = (et_verfication_code.getText() + "").trim(); String pwd = (et_pwd.getText() + "").trim(); if (StringUtils.isEmpty(email) || StringUtils.isEmpty(vcode) || StringUtils.isEmpty(pwd)) { SingleToast.showToast(ForgetPwdActivity.this, "数据不完整!"); return; } if (loginListener != null) loginListener.emailUpdatePwd(ForgetPwdActivity.this, email, vcode, pwd, new LoginApiCallBack() { @Override public void onCallBack(LoginApiResult result) { if (result.getCode() == LoginApiResult.CODE_OK) { SingleToast.showToast(ForgetPwdActivity.this, "修改密码成功!"); ForgetPwdActivity.this.finish(); } else { SingleToast.showToast(ForgetPwdActivity.this, result.getMsg()); } } }); } private void getVerficationCode(String email) { timer = new Timer(); timer.schedule(new MyTask(), 1000, 1000); if (loginListener != null) loginListener.sendEmailCode(ForgetPwdActivity.this, email, new LoginApiCallBack() { @Override public void onCallBack(LoginApiResult result) { if (result.getCode() == LoginApiResult.CODE_OK) { SingleToast.showToast(ForgetPwdActivity.this, "获取验证码成功,请打开邮箱查看!"); } else { SingleToast.showToast(ForgetPwdActivity.this, result.getMsg()); 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; } } }; }