package net.qiujuer.tips.view.activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.annotation.StringRes; import android.view.View; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import android.widget.ViewAnimator; import net.qiujuer.genius.ui.widget.Loading; import net.qiujuer.tips.R; import net.qiujuer.tips.factory.presenter.AccountLoginPresenter; import net.qiujuer.tips.factory.presenter.AccountRegisterPresenterAccount; import net.qiujuer.tips.factory.view.LoginView; import net.qiujuer.tips.factory.view.RegisterView; public class AccountActivity extends BaseActivity implements View.OnClickListener, LoginView, RegisterView { private ViewAnimator mViewAnimator; private Button mBtnSubmit; private Button mBtnChange; private EditText mEditLoginEmail; private EditText mEditLoginPassword; private EditText mEditRegisterEmail; private EditText mEditRegisterPassword; private EditText mEditRegisterPasswordConfirm; private TextView mTxtTitle; private TextView mTxtWhether; private AccountLoginPresenter mAccountLoginPresenter; private AccountRegisterPresenterAccount mRegisterPresenter; private Loading mLoading; public static void actionStart(Context context) { Intent intent = new Intent(context, AccountActivity.class); context.startActivity(intent); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_account); mTxtWhether = (TextView) findViewById(R.id.account_txt_whether); mTxtTitle = (TextView) findViewById(R.id.account_txt_title); mViewAnimator = (ViewAnimator) findViewById(R.id.account_output); mEditLoginEmail = (EditText) findViewById(R.id.account_edit_login_email); mEditLoginPassword = (EditText) findViewById(R.id.account_edit_login_password); mEditRegisterPasswordConfirm = (EditText) findViewById(R.id.account_edit_register_password_confirm); mEditRegisterPassword = (EditText) findViewById(R.id.account_edit_register_password); mEditRegisterEmail = (EditText) findViewById(R.id.account_edit_register_email); mBtnSubmit = (Button) findViewById(R.id.account_btn_submit); mBtnChange = (Button) findViewById(R.id.account_btn_change); mLoading = (Loading) findViewById(R.id.loading); mViewAnimator.setInAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.anim_in_slide_right)); mViewAnimator.setOutAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.anim_out_slide_left)); mBtnSubmit.setOnClickListener(this); mBtnChange.setOnClickListener(this); mRegisterPresenter = new AccountRegisterPresenterAccount(this); mAccountLoginPresenter = mRegisterPresenter; } private boolean isLogin() { View view = mViewAnimator.getCurrentView(); return view.getId() == R.id.account_lay_login; } @Override public void onClick(View v) { switch (v.getId()) { case R.id.account_btn_submit: if (isLogin()) { mAccountLoginPresenter.login(); } else { mRegisterPresenter.register(); } break; case R.id.account_btn_change: { mViewAnimator.showNext(); if (isLogin()) { mTxtWhether.setText(getResources().getString(R.string.txt_not_have_account)); mTxtTitle.setText(getResources().getString(R.string.txt_title_login)); mBtnChange.setText(getResources().getString(R.string.txt_not_have_account_btn)); } else { mTxtWhether.setText(getResources().getString(R.string.txt_have_account)); mTxtTitle.setText(getResources().getString(R.string.txt_title_join)); mBtnChange.setText(getResources().getString(R.string.txt_have_account_btn)); } } break; default: break; } } @Override public String getEmail() { if (isLogin()) return mEditLoginEmail.getText().toString(); else return mEditRegisterEmail.getText().toString(); } @Override public String getPassword() { if (isLogin()) return mEditLoginPassword.getText().toString(); else return mEditRegisterPassword.getText().toString(); } @Override public String getConfirmPassword() { return mEditRegisterPasswordConfirm.getText().toString(); } @Override public void setStatus(@StringRes int res) { if (res == R.string.status_account_login_running || res == R.string.status_account_register_running) { mBtnChange.setEnabled(false); mBtnSubmit.setEnabled(false); mBtnSubmit.setText(""); mLoading.start(); } else if (res == R.string.status_account_bind_succeed) { finish(); Toast.makeText(this, res, Toast.LENGTH_SHORT).show(); } else { mBtnChange.setEnabled(true); mBtnSubmit.setEnabled(true); mBtnSubmit.setText(R.string.txt_go); mLoading.stop(); Toast.makeText(this, res, Toast.LENGTH_SHORT).show(); } } @Override public void setEmail(String email) { mEditLoginEmail.setText(email); mEditRegisterEmail.setText(email); } @Override public void onlyChangePassword() { mEditLoginEmail.setEnabled(false); mBtnChange.setVisibility(View.GONE); mTxtWhether.setVisibility(View.GONE); } }