+ \r
+\r
+ private void initAuthorizationMethod() {\r
+ boolean oAuthRequired = false;\r
+ boolean samlWebSsoRequired = false;\r
+\r
+ mCurrentAuthTokenType = getIntent().getExtras().getString(AccountAuthenticator.KEY_AUTH_TOKEN_TYPE);\r
+ mAccount = getIntent().getExtras().getParcelable(EXTRA_ACCOUNT);\r
+ \r
+ // TODO could be a good moment to validate the received token type, if not null\r
+ \r
+ if (mCurrentAuthTokenType == null) { \r
+ if (mAccount != null) {\r
+ /// same authentication method than the one used to create the account to update\r
+ oAuthRequired = (mAccountMgr.getUserData(mAccount, AccountAuthenticator.KEY_SUPPORTS_OAUTH2) != null);\r
+ samlWebSsoRequired = (mAccountMgr.getUserData(mAccount, AccountAuthenticator.KEY_SUPPORTS_SAML_WEB_SSO) != null);\r
+ \r
+ } else {\r
+ /// use the one set in setup.xml\r
+ oAuthRequired = AUTH_ON.equals(getString(R.string.auth_method_oauth2));\r
+ samlWebSsoRequired = AUTH_ON.equals(getString(R.string.auth_method_saml_web_sso)); \r
+ }\r
+ if (oAuthRequired) {\r
+ mCurrentAuthTokenType = AccountAuthenticator.AUTH_TOKEN_TYPE_ACCESS_TOKEN;\r
+ } else if (samlWebSsoRequired) {\r
+ mCurrentAuthTokenType = AccountAuthenticator.AUTH_TOKEN_TYPE_SAML_WEB_SSO_SESSION_COOKIE;\r
+ } else {\r
+ mCurrentAuthTokenType = AccountAuthenticator.AUTH_TOKEN_TYPE_PASSWORD;\r
+ }\r
+ }\r
+ \r
+ if (mAccount != null) {\r
+ String userName = mAccount.name.substring(0, mAccount.name.lastIndexOf('@'));\r
+ mUsernameInput.setText(userName);\r
+ }\r
+ \r
+ mOAuth2Check.setChecked(AccountAuthenticator.AUTH_TOKEN_TYPE_ACCESS_TOKEN.equals(mCurrentAuthTokenType));\r
+ \r
+ }\r
+\r