package com.cheikh.lazywaimai.ui.activity; import android.text.TextUtils; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import butterknife.Bind; import butterknife.OnClick; import butterknife.OnTextChanged; import com.cheikh.lazywaimai.R; import com.cheikh.lazywaimai.base.BaseActivity; import com.cheikh.lazywaimai.base.BaseController; import com.cheikh.lazywaimai.context.AppContext; import com.cheikh.lazywaimai.controller.UserController; import com.cheikh.lazywaimai.model.bean.ResponseError; import com.cheikh.lazywaimai.util.ContentView; import com.cheikh.lazywaimai.ui.Display; import com.cheikh.lazywaimai.util.StringUtil; import com.cheikh.lazywaimai.util.SystemUtil; import com.cheikh.lazywaimai.util.ToastUtil; /** * author: cheikh.wang on 17/1/5 * email: wanghonghi@126.com */ @ContentView(R.layout.activity_login) public class LoginActivity extends BaseActivity<UserController.UserUiCallbacks> implements UserController.UserLoginUi { @Bind(R.id.et_user_account) EditText mEtAccount; @Bind(R.id.et_user_password) EditText mEtPassword; @Bind(R.id.iv_delete_account) ImageView mIvDeleteAccount; @Bind(R.id.iv_delete_password) ImageView mIvDeletePassword; @Bind(R.id.btn_login) Button mBtnLogin; @Bind(R.id.tv_forget_password) TextView mTvForgetPassword; @Bind(R.id.tv_go_to_register) TextView mTvGoToRegister; @Override protected BaseController getController() { return AppContext.getContext().getMainController().getUserController(); } @Override public void onResponseError(ResponseError error) { cancelLoading(); mBtnLogin.setEnabled(true); ToastUtil.showToast(error.getMessage()); } @Override public void userLoginFinish() { cancelLoading(); Display display = getDisplay(); if (display != null) { display.finishActivity(); } } @OnTextChanged(R.id.et_user_account) public void onAccountTextChange(CharSequence s) { int visible = StringUtil.isEmpty(s.toString()) ? View.GONE : View.VISIBLE; mIvDeleteAccount.setVisibility(visible); } @OnTextChanged(R.id.et_user_password) public void onPasswordTextChange(CharSequence s) { int visible = StringUtil.isEmpty(s.toString()) ? View.GONE : View.VISIBLE; mIvDeletePassword.setVisibility(visible); } @OnClick({R.id.iv_delete_account, R.id.iv_delete_password, R.id.btn_login, R.id.tv_forget_password, R.id.tv_go_to_register}) public void onClick(View view) { switch (view.getId()) { case R.id.iv_delete_account: mEtAccount.setText(""); break; case R.id.iv_delete_password: mEtPassword.setText(""); break; case R.id.btn_login: login(); break; case R.id.tv_forget_password: ToastUtil.showToast("该功能还未开发"); break; case R.id.tv_go_to_register: getCallbacks().showRegister(); break; } } /** * 执行登录操作 */ private void login() { // 隐藏软键盘 SystemUtil.hideKeyBoard(this); // 验证用户名是否为空 final String account = mEtAccount.getText().toString().trim(); if (TextUtils.isEmpty(account)) { ToastUtil.showToast(R.string.toast_error_empty_account); return; } // 验证密码是否为空 final String password = mEtPassword.getText().toString().trim(); if (TextUtils.isEmpty(password)) { ToastUtil.showToast(R.string.toast_error_empty_password); return; } // 禁用登录按钮,避免重复点击 mBtnLogin.setEnabled(false); // 显示提示对话框 showLoading(R.string.label_being_something); // 发起登录的网络请求 getCallbacks().login(account, password); } }