package com.gzsll.hupu.ui.login; import android.content.Context; import android.content.Intent; import android.os.Handler; import android.support.design.widget.TextInputLayout; import android.support.v7.widget.Toolbar; import android.text.Editable; import android.text.TextWatcher; import android.view.Menu; import android.view.MenuItem; import android.widget.EditText; import com.afollestad.materialdialogs.MaterialDialog; import com.gzsll.hupu.R; import com.gzsll.hupu.ui.BaseSwipeBackActivity; import javax.inject.Inject; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by sll on 2016/3/10. */ public class LoginActivity extends BaseSwipeBackActivity implements LoginContract.View { public static void startActivity(Context mContext) { Intent intent = new Intent(mContext, LoginActivity.class); mContext.startActivity(intent); } @Inject LoginPresenter mPresenter; @BindView(R.id.toolbar) Toolbar toolbar; @BindView(R.id.etUserName) EditText etUserName; @BindView(R.id.textInputUserName) TextInputLayout textInputUserName; @BindView(R.id.etPassWord) EditText etPassWord; @BindView(R.id.textInputPassword) TextInputLayout textInputPassword; private MaterialDialog dialog; @Override public int initContentView() { return R.layout.activity_login; } @Override public void initInjector() { DaggerLoginComponent.builder() .applicationComponent(getApplicationComponent()) .activityModule(getActivityModule()) .build() .inject(this); } @Override public void initUiAndListener() { ButterKnife.bind(this); mPresenter.attachView(this); initToolBar(toolbar); setTitle("登录"); dialog = new MaterialDialog.Builder(this).title("提示").content("登录中").progress(true, 0).build(); etUserName.addTextChangedListener(new MTextWatcher(textInputUserName)); etPassWord.addTextChangedListener(new MTextWatcher(textInputPassword)); } @Override protected boolean isApplyStatusBarTranslucency() { return true; } @Override protected boolean isApplyStatusBarColor() { return true; } @Override public void showLoading() { if (!isFinishing() && !dialog.isShowing()) { dialog.show(); } } @Override public void hideLoading() { if (!isFinishing() && dialog.isShowing()) { dialog.dismiss(); } } @Override public void showUserNameError(String error) { textInputUserName.setError(error); textInputUserName.setErrorEnabled(true); } @Override public void showPassWordError(String error) { textInputPassword.setError(error); textInputPassword.setErrorEnabled(true); } @Override public void loginSuccess() { new Handler().postDelayed(new Runnable() { @Override public void run() { finish(); } }, 1500); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_login, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.login) { doLogin(); return true; } return super.onOptionsItemSelected(item); } private void doLogin() { String mUserName = etUserName.getText().toString().trim(); String mPassword = etPassWord.getText().toString().trim(); mPresenter.login(mUserName, mPassword); } class MTextWatcher implements TextWatcher { TextInputLayout textInputLayout; public MTextWatcher(TextInputLayout textInputLayout) { this.textInputLayout = textInputLayout; } @Override public void afterTextChanged(Editable arg0) { } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { } @Override public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { textInputLayout.setErrorEnabled(false); } } }