package com.lqr.wechat.ui.activity; import android.text.Editable; import android.text.TextWatcher; import android.text.method.HideReturnsTransformationMethod; import android.text.method.PasswordTransformationMethod; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import com.lqr.wechat.R; import com.lqr.wechat.ui.base.BaseActivity; import com.lqr.wechat.ui.presenter.RegisterAtPresenter; import com.lqr.wechat.ui.view.IRegisterAtView; import com.lqr.wechat.util.UIUtils; import butterknife.Bind; public class RegisterActivity extends BaseActivity<IRegisterAtView, RegisterAtPresenter> implements IRegisterAtView { @Bind(R.id.etNick) EditText mEtNick; @Bind(R.id.vLineNick) View mVLineNick; @Bind(R.id.etPhone) EditText mEtPhone; @Bind(R.id.vLinePhone) View mVLinePhone; @Bind(R.id.etPwd) EditText mEtPwd; @Bind(R.id.ivSeePwd) ImageView mIvSeePwd; @Bind(R.id.vLinePwd) View mVLinePwd; @Bind(R.id.etVerifyCode) EditText mEtVerifyCode; @Bind(R.id.btnSendCode) Button mBtnSendCode; @Bind(R.id.vLineVertifyCode) View mVLineVertifyCode; @Bind(R.id.btnRegister) Button mBtnRegister; TextWatcher watcher = new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { mBtnRegister.setEnabled(canRegister()); } @Override public void afterTextChanged(Editable s) { } }; @Override public void initListener() { mEtNick.addTextChangedListener(watcher); mEtPwd.addTextChangedListener(watcher); mEtPhone.addTextChangedListener(watcher); mEtVerifyCode.addTextChangedListener(watcher); mEtNick.setOnFocusChangeListener((v, hasFocus) -> { if (hasFocus) { mVLineNick.setBackgroundColor(UIUtils.getColor(R.color.green0)); } else { mVLineNick.setBackgroundColor(UIUtils.getColor(R.color.line)); } }); mEtPwd.setOnFocusChangeListener((v, hasFocus) -> { if (hasFocus) { mVLinePwd.setBackgroundColor(UIUtils.getColor(R.color.green0)); } else { mVLinePwd.setBackgroundColor(UIUtils.getColor(R.color.line)); } }); mEtPhone.setOnFocusChangeListener((v, hasFocus) -> { if (hasFocus) { mVLinePhone.setBackgroundColor(UIUtils.getColor(R.color.green0)); } else { mVLinePhone.setBackgroundColor(UIUtils.getColor(R.color.line)); } }); mEtVerifyCode.setOnFocusChangeListener((v, hasFocus) -> { if (hasFocus) { mVLineVertifyCode.setBackgroundColor(UIUtils.getColor(R.color.green0)); } else { mVLineVertifyCode.setBackgroundColor(UIUtils.getColor(R.color.line)); } }); mIvSeePwd.setOnClickListener(v -> { if (mEtPwd.getTransformationMethod() == HideReturnsTransformationMethod.getInstance()) { mEtPwd.setTransformationMethod(PasswordTransformationMethod.getInstance()); } else { mEtPwd.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); } mEtPwd.setSelection(mEtPwd.getText().toString().trim().length()); }); mBtnSendCode.setOnClickListener(v -> { if (mBtnSendCode.isEnabled()) { mPresenter.sendCode(); } }); mBtnRegister.setOnClickListener(v -> { mPresenter.register(); }); } @Override protected void onDestroy() { super.onDestroy(); mPresenter.unsubscribe(); } private boolean canRegister() { int nickNameLength = mEtNick.getText().toString().trim().length(); int pwdLength = mEtPwd.getText().toString().trim().length(); int phoneLength = mEtPhone.getText().toString().trim().length(); int codeLength = mEtVerifyCode.getText().toString().trim().length(); if (nickNameLength > 0 && pwdLength > 0 && phoneLength > 0 && codeLength > 0) { return true; } return false; } @Override protected RegisterAtPresenter createPresenter() { return new RegisterAtPresenter(this); } @Override protected int provideContentViewId() { return R.layout.activity_register; } @Override public EditText getEtNickName() { return mEtNick; } @Override public EditText getEtPhone() { return mEtPhone; } @Override public EditText getEtPwd() { return mEtPwd; } @Override public EditText getEtVerifyCode() { return mEtVerifyCode; } @Override public Button getBtnSendCode() { return mBtnSendCode; } }