@Override
  public void onCreate(Bundle bundle) {
    super.onCreate(bundle);

    BootstrapApplication.component().inject(this);

    accountManager = AccountManager.get(this);

    final Intent intent = getIntent();
    email = intent.getStringExtra(PARAM_USERNAME);
    authTokenType = intent.getStringExtra(PARAM_AUTHTOKEN_TYPE);
    confirmCredentials = intent.getBooleanExtra(PARAM_CONFIRM_CREDENTIALS, false);

    requestNewAccount = email == null;

    setContentView(layout.login_activity);

    ButterKnife.bind(this);

    emailText.setAdapter(
        new ArrayAdapter<String>(this, simple_dropdown_item_1line, userEmailAccounts()));

    passwordText.setOnKeyListener(
        new OnKeyListener() {

          public boolean onKey(final View v, final int keyCode, final KeyEvent event) {
            if (event != null
                && ACTION_DOWN == event.getAction()
                && keyCode == KEYCODE_ENTER
                && signInButton.isEnabled()) {
              handleLogin(signInButton);
              return true;
            }
            return false;
          }
        });

    passwordText.setOnEditorActionListener(
        new OnEditorActionListener() {

          public boolean onEditorAction(
              final TextView v, final int actionId, final KeyEvent event) {
            if (actionId == IME_ACTION_DONE && signInButton.isEnabled()) {
              handleLogin(signInButton);
              return true;
            }
            return false;
          }
        });

    emailText.addTextChangedListener(watcher);
    passwordText.addTextChangedListener(watcher);

    final TextView signUpText = (TextView) findViewById(id.tv_signup);
    signUpText.setMovementMethod(LinkMovementMethod.getInstance());
    signUpText.setText(Html.fromHtml(getString(string.signup_link)));
  }
 @Override
 protected void onPause() {
   super.onPause();
   bus.unregister(this);
 }
 @Override
 protected void onResume() {
   super.onResume();
   bus.register(this);
   updateUIWithValidation();
 }