package net.dev123.yibo; import net.dev123.yibo.common.theme.ThemeUtil; import net.dev123.yibo.service.listener.GoBackClickListener; import net.dev123.yibo.service.task.PassportLoginTask; import net.dev123.yibo.service.task.PassportRegisterTask; import net.dev123.yibo.service.task.VerifyTimeTask; import net.dev123.yibo.widget.TabButton; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.Gravity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; public class PassportActivity extends BaseActivity { private Button btnLoginTab; private Button btnRegisterTab; private TabButton tabButton; private EditText etUsername; private EditText etPassword; private EditText etPasswordConfirmed; private EditText etEmail; private Button btnFormSubmit; private Button btnFormReset; private boolean isRegister; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.passport_login); TextView tvTitle = (TextView) findViewById(R.id.tvTitle); tvTitle.setText(R.string.title_passport); initCompoments(); bindEvent(); VerifyTimeTask verifyTimeTask = new VerifyTimeTask(this); verifyTimeTask.execute(); } private void initCompoments() { LinearLayout llRoot = (LinearLayout)findViewById(R.id.llRoot); LinearLayout llHeaderBase = (LinearLayout)findViewById(R.id.llHeaderBase); LinearLayout llTabHeader = (LinearLayout)findViewById(R.id.llTabHeader); btnLoginTab = (Button) findViewById(R.id.btnTabLeft); btnRegisterTab = (Button) findViewById(R.id.btnTabRight); etUsername = (EditText) findViewById(R.id.etPassportUsername); etPassword = (EditText) findViewById(R.id.etPassportPassword); etPasswordConfirmed = (EditText) findViewById(R.id.etPassportPasswordConfirmed); etEmail = (EditText) findViewById(R.id.etPassportEmail); LinearLayout llFooterAction = (LinearLayout)findViewById(R.id.llFooterAction); btnFormSubmit = (Button) findViewById(R.id.btnPassportFormSubmit); btnFormReset = (Button) findViewById(R.id.btnPassportFormReset); ThemeUtil.setSecondaryHeader(llHeaderBase); ThemeUtil.setRootBackground(llRoot); ThemeUtil.setHeaderToggleTab(llTabHeader); int content = theme.getColor("content"); etUsername.setBackgroundDrawable(theme.getDrawable("selector_input_frame")); etUsername.setTextColor(content); etPassword.setBackgroundDrawable(theme.getDrawable("selector_input_frame")); etPassword.setTextColor(content); etPasswordConfirmed.setBackgroundDrawable(theme.getDrawable("selector_input_frame")); etPasswordConfirmed.setTextColor(content); etEmail.setBackgroundDrawable(theme.getDrawable("selector_input_frame")); etEmail.setTextColor(content); llFooterAction.setBackgroundDrawable(theme.getDrawable("bg_footer_action")); int padding8 = theme.dip2px(8); llFooterAction.setPadding(padding8, padding8, padding8, padding8); llFooterAction.setGravity(Gravity.CENTER); ThemeUtil.setBtnActionPositive(btnFormSubmit); ThemeUtil.setBtnActionNegative(btnFormReset); btnLoginTab.setText(R.string.label_passport_login); btnRegisterTab.setText(R.string.label_passport_register); } private void bindEvent() { Button btnBack = (Button) this.findViewById(R.id.btnBack); btnBack.setOnClickListener(new GoBackClickListener(R.anim.slide_in_right)); tabButton = new TabButton(); tabButton.addButton(btnLoginTab); tabButton.addButton(btnRegisterTab); btnLoginTab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { isRegister = false; updateFormView(); } }); btnRegisterTab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { isRegister = true; updateFormView(); } }); TextWatcher textWatcher = new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { updateLoginButton(); } }; etUsername.addTextChangedListener(textWatcher); etPassword.addTextChangedListener(textWatcher); etPasswordConfirmed.addTextChangedListener(textWatcher); etEmail.addTextChangedListener(textWatcher); btnFormSubmit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (isRegister) { new PassportRegisterTask( PassportActivity.this, etUsername.getText().toString(), etPassword.getText().toString(), etPasswordConfirmed.getText().toString(), etEmail.getText().toString() ).execute(); } else { new PassportLoginTask( PassportActivity.this, etUsername.getText().toString(), etPassword.getText().toString() ).execute(); } } }); btnFormReset.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { etUsername.setText(""); etPassword.setText(""); etPasswordConfirmed.setText(""); etEmail.setText(""); } }); updateFormView(); } private void updateFormView() { if (isRegister) { tabButton.toggleButton(btnRegisterTab); etUsername.setHint(R.string.hint_passport_register_username); etPassword.setHint(R.string.hint_passport_register_password); etPasswordConfirmed.setVisibility(View.VISIBLE); etEmail.setVisibility(View.VISIBLE); } else { tabButton.toggleButton(btnLoginTab); etUsername.setHint(R.string.hint_passport_login_username); etPassword.setHint(R.string.hint_passport_login_password); etPasswordConfirmed.setVisibility(View.GONE); etEmail.setVisibility(View.GONE); } etUsername.setText(""); etPassword.setText(""); etPasswordConfirmed.setText(""); etEmail.setText(""); } private void updateLoginButton() { boolean enabled = etUsername.getText().length() > 0 && etPassword.getText().length() > 0; if (isRegister) { enabled = enabled && etPasswordConfirmed.length() > 0 && etEmail.getText().length() > 0; } btnFormSubmit.setEnabled(enabled); } }