@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent invokingIntent = getIntent(); mAddingNewAccount = invokingIntent.getStringExtra(ARG_IS_ADDING_NEW_ACCOUNT).equals("true"); mEmail = invokingIntent.getStringExtra(ARG_ACCOUNT_NAME); mLoginLayout = new LoginLayout(mEmail, mAddingNewAccount, this); // initialize the authenticator response intent mAccountAuthenticatorResponse = getIntent().getParcelableExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE); if (mAccountAuthenticatorResponse != null) { mAccountAuthenticatorResponse.onRequestContinued(); } // depending on whether the activity was started in response to an authentication error, we want // to // start it with a proper layout final HttpLoginMessage.EError serverResponseCode = (HttpLoginMessage.EError) invokingIntent.getSerializableExtra(ARG_SERVER_RESPONSE_CODE); if (serverResponseCode == null) { setLayout(mLoginLayout); } else { processServerResponse(serverResponseCode); } }
/** Sends the result or a Constants.ERROR_CODE_CANCELED error if a result isn't present. */ public void finish() { if (mAccountAuthenticatorResponse != null) { // send the result bundle back if set, otherwise send an error. if (mResultBundle != null) { mAccountAuthenticatorResponse.onResult(mResultBundle); } else { mAccountAuthenticatorResponse.onError(AccountManager.ERROR_CODE_CANCELED, "canceled"); } mAccountAuthenticatorResponse = null; } super.finish(); }