-            mAccountMgr.addAccountExplicitly(mAccount, mPasswordInput.getText().toString(), null);\r
-        }\r
-\r
-        /// add the new account as default in preferences, if there is none already\r
-        Account defaultAccount = AccountUtils.getCurrentOwnCloudAccount(this);\r
-        if (defaultAccount == null) {\r
-            SharedPreferences.Editor editor = PreferenceManager\r
-                    .getDefaultSharedPreferences(this).edit();\r
-            editor.putString("select_oc_account", accountName);\r
-            editor.commit();\r
-        }\r
-\r
-        /// prepare result to return to the Authenticator\r
-        //  TODO check again what the Authenticator makes with it; probably has the same effect as addAccountExplicitly, but it's not well done\r
-        final Intent intent = new Intent();       \r
-        intent.putExtra(AccountManager.KEY_ACCOUNT_TYPE,    AccountAuthenticator.ACCOUNT_TYPE);\r
-        intent.putExtra(AccountManager.KEY_ACCOUNT_NAME,    mAccount.name);\r
-        /*if (!isOAuth)\r
-            intent.putExtra(AccountManager.KEY_AUTHTOKEN,   AccountAuthenticator.ACCOUNT_TYPE); */\r
-        intent.putExtra(AccountManager.KEY_USERDATA,        username);\r
-        if (isOAuth || isSaml) {\r
-            mAccountMgr.setAuthToken(mAccount, mCurrentAuthTokenType, mAuthToken);\r
-        }\r
-        /// add user data to the new account; TODO probably can be done in the last parameter addAccountExplicitly, or in KEY_USERDATA\r
-        mAccountMgr.setUserData(mAccount, AccountAuthenticator.KEY_OC_VERSION,    mDiscoveredVersion.toString());\r
-        mAccountMgr.setUserData(mAccount, AccountAuthenticator.KEY_OC_BASE_URL,   mHostBaseUrl);\r
-        if (isSaml) {\r
-            mAccountMgr.setUserData(mAccount, AccountAuthenticator.KEY_SUPPORTS_SAML_WEB_SSO, "TRUE"); \r
-        } else if (isOAuth) {\r
-            mAccountMgr.setUserData(mAccount, AccountAuthenticator.KEY_SUPPORTS_OAUTH2, "TRUE");  \r
+        \r
+            if (isOAuth || isSaml) {\r
+                mAccountMgr.addAccountExplicitly(mAccount, "", null);  // with external authorizations, the password is never input in the app\r
+            } else {\r
+                mAccountMgr.addAccountExplicitly(mAccount, mPasswordInput.getText().toString(), null);\r
+            }\r
+    \r
+            /// add the new account as default in preferences, if there is none already\r
+            Account defaultAccount = AccountUtils.getCurrentOwnCloudAccount(this);\r
+            if (defaultAccount == null) {\r
+                SharedPreferences.Editor editor = PreferenceManager\r
+                        .getDefaultSharedPreferences(this).edit();\r
+                editor.putString("select_oc_account", accountName);\r
+                editor.commit();\r
+            }\r
+    \r
+            /// prepare result to return to the Authenticator\r
+            //  TODO check again what the Authenticator makes with it; probably has the same effect as addAccountExplicitly, but it's not well done\r
+            final Intent intent = new Intent();       \r
+            intent.putExtra(AccountManager.KEY_ACCOUNT_TYPE,    MainApp.getAccountType());\r
+            intent.putExtra(AccountManager.KEY_ACCOUNT_NAME,    mAccount.name);\r
+            /*if (!isOAuth)\r
+                intent.putExtra(AccountManager.KEY_AUTHTOKEN,   MainApp.getAccountType()); */\r
+            intent.putExtra(AccountManager.KEY_USERDATA,        username);\r
+            if (isOAuth || isSaml) {\r
+                mAccountMgr.setAuthToken(mAccount, mAuthTokenType, mAuthToken);\r
+            }\r
+            /// add user data to the new account; TODO probably can be done in the last parameter addAccountExplicitly, or in KEY_USERDATA\r
+            mAccountMgr.setUserData(mAccount, OwnCloudAccount.Constants.KEY_OC_VERSION,    mDiscoveredVersion.toString());\r
+            mAccountMgr.setUserData(mAccount, OwnCloudAccount.Constants.KEY_OC_BASE_URL,   mHostBaseUrl);\r
+            if (isSaml) {\r
+                mAccountMgr.setUserData(mAccount, OwnCloudAccount.Constants.KEY_SUPPORTS_SAML_WEB_SSO, "TRUE"); \r
+            } else if (isOAuth) {\r
+                mAccountMgr.setUserData(mAccount, OwnCloudAccount.Constants.KEY_SUPPORTS_OAUTH2, "TRUE");  \r
+            }\r
+    \r
+            setAccountAuthenticatorResult(intent.getExtras());\r
+            setResult(RESULT_OK, intent);\r
+    \r
+            return true;\r