title: Android generated LoginActivity error(Incorrect password)
body: <p>I am using the Android generated login activity and it keeps giving me incorrect password error even though my password is correct. I have checked my code several times but i can't find any errors. It just doesn't start my Home activity and reports the error. Can someone please check my code and correct me if i am doing something wrong...</p>
  
  <p>**editted: Added full code</p>
  
  <p>***editted: Solved this problem by checking my next activity which sets a session to redirect to login page when no session is logged in(apparently i missed that earlier on). Thanks  for all the help though.</p>
  
  <pre><code> private static final String[] DUMMY_CREDENTIALS = new String[] {
          "foo@example.com:hello", "bar@example.com:world" };
  
  public static final String EXTRA_EMAIL = "com.example.android.authenticatordemo.extra.EMAIL";
  
  private UserLoginTask mAuthTask = null;
  private String mEmail;
  private String mPassword;
  private EditText mEmailView;
  private EditText mPasswordView;
  private View mLoginFormView;
  private View mLoginStatusView;
  private TextView mLoginStatusMessageView;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  
      setContentView(R.layout.activity_login);
  
      mEmail = getIntent().getStringExtra(EXTRA_EMAIL);
      mEmailView = (EditText) findViewById(R.id.email);
      mEmailView.setText(mEmail);
  
      mPasswordView = (EditText) findViewById(R.id.password);
      mPasswordView
              .setOnEditorActionListener(new TextView.OnEditorActionListener() {
                  @Override
                  public boolean onEditorAction(TextView textView, int id,
                          KeyEvent keyEvent) {
                      if (id == R.id.login || id == EditorInfo.IME_NULL) {
                          attemptLogin();
                          return true;
                      }
                      return false;
                  }
              });
  
      mLoginFormView = findViewById(R.id.login_form);
      mLoginStatusView = findViewById(R.id.login_status);
      mLoginStatusMessageView = (TextView) findViewById(R.id.login_status_message);
  
      findViewById(R.id.sign_in_button).setOnClickListener(
              new View.OnClickListener() {
                  @Override
                  public void onClick(View view) {
                      attemptLogin();
                  }
              });
  }
  
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      super.onCreateOptionsMenu(menu);
      getMenuInflater().inflate(R.menu.login, menu);
      return true;
  }
  
  
  public void attemptLogin() {
      if (mAuthTask != null) {
          return;
      }
  
      // Reset errors.
      mEmailView.setError(null);
      mPasswordView.setError(null);
  
      // Store values at the time of the login attempt.
      mEmail = mEmailView.getText().toString();
      mPassword = mPasswordView.getText().toString();
  
      boolean cancel = false;
      View focusView = null;
  
      // Check for a valid password.
      if (TextUtils.isEmpty(mPassword)) {
          mPasswordView.setError(getString(R.string.error_field_required));
          focusView = mPasswordView;
          cancel = true;
      } else if (mPassword.length() &lt; 4) {
          mPasswordView.setError(getString(R.string.error_invalid_password));
          focusView = mPasswordView;
          cancel = true;
      }
  
      // Check for a valid email address.
      if (TextUtils.isEmpty(mEmail)) {
          mEmailView.setError(getString(R.string.error_field_required));
          focusView = mEmailView;
          cancel = true;
      } else if (!mEmail.contains("@")) {
          mEmailView.setError(getString(R.string.error_invalid_email));
          focusView = mEmailView;
          cancel = true;
      }
  
      if (cancel) {
          // There was an error; don't attempt login and focus the first
          // form field with an error.
          focusView.requestFocus();
      } else {
  
          mLoginStatusMessageView.setText(R.string.login_progress_signing_in);
          showProgress(true);
          mAuthTask = new UserLoginTask();
          mAuthTask.execute((Void) null);
      }
  }
  
  
  @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
  private void showProgress(final boolean show) {
  
      if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.HONEYCOMB_MR2) {
          int shortAnimTime = getResources().getInteger(
                  android.R.integer.config_shortAnimTime);
  
          mLoginStatusView.setVisibility(View.VISIBLE);
          mLoginStatusView.animate().setDuration(shortAnimTime)
                  .alpha(show ? 1 : 0)
                  .setListener(new AnimatorListenerAdapter() {
                      @Override
                      public void onAnimationEnd(Animator animation) {
                          mLoginStatusView.setVisibility(show ? View.VISIBLE
                                  : View.GONE);
                      }
                  });
  
          mLoginFormView.setVisibility(View.VISIBLE);
          mLoginFormView.animate().setDuration(shortAnimTime)
                  .alpha(show ? 0 : 1)
                  .setListener(new AnimatorListenerAdapter() {
                      @Override
                      public void onAnimationEnd(Animator animation) {
                          mLoginFormView.setVisibility(show ? View.GONE
                                  : View.VISIBLE);
                      }
                  });
      } else {
          // The ViewPropertyAnimator APIs are not available, so simply show
          // and hide the relevant UI components.
          mLoginStatusView.setVisibility(show ? View.VISIBLE : View.GONE);
          mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
      }
  }
  
  
  public class UserLoginTask extends AsyncTask&lt;Void, Void, Boolean&gt; {
      @Override
      protected Boolean doInBackground(Void... params) {
          for (String credential : DUMMY_CREDENTIALS) {
              String[] pieces = credential.split(":");
              if (pieces[0].equals(mEmail)) {
                   // Account exists, return true if the password matches.
                   return pieces[1].equals(mPassword);
  
              }
          }
              // TODO: register the new account here.
          return false;
      }
  
      @Override
      protected void onPostExecute(final Boolean success) {
          mAuthTask = null;
          showProgress(false);
          if (success) {
              finish();
              Intent myIntent = new Intent(LoginActivity.this, GarajHome.class);
              LoginActivity.this.startActivity(myIntent);
          } else {
              mPasswordView.setError(getString(R.string.error_incorrect_password));
              mPasswordView.requestFocus();
          }
      }
  
      @Override
      protected void onCancelled() {
          mAuthTask = null;
          showProgress(false);
      }
  }
  </code></pre>