Fixed double upload of files with OAuth + Bearer authorization
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / activity / AuthenticatorActivity.java
index 5035269..ecf71e0 100644 (file)
@@ -509,7 +509,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
 \r
         URL uri = null;\r
         mDiscoveredVersion = mConnChkRunnable.getDiscoveredVersion();\r
-        String webdav_path = AccountUtils.getWebdavPath(mDiscoveredVersion);\r
+        String webdav_path = AccountUtils.getWebdavPath(mDiscoveredVersion, false);\r
         \r
         if (webdav_path == null) {\r
             onAuthenticationResult(false, getString(R.string.auth_bad_oc_version_title));\r
@@ -613,7 +613,6 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         findViewById(R.id.buttonOK).setEnabled(mStatusCorrect);\r
     }\r
 \r
-    @Override\r
     public void onFocusChange(View view, boolean hasFocus) {\r
         if (view.getId() == R.id.host_URL) {\r
             if (!hasFocus) {\r
@@ -1028,7 +1027,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
 \r
                        showDialog(DIALOG_LOGIN_PROGRESS);\r
                 String accessToken = ((GetOAuth2AccessToken)operation).getResultTokenMap().get(OAuth2Context.KEY_ACCESS_TOKEN);\r
-                Log.d(TAG, "ACCESS TOKEN: " + accessToken);\r
+                Log.d(TAG, "Got ACCESS TOKEN: " + accessToken);\r
                        mAuthChkOperation = new ExistenceCheckOperation("", this, accessToken);\r
                        WebdavClient client = OwnCloudClientUtils.createOwnCloudClient(uri, getApplicationContext());\r
                        mAuthChkOperation.execute(client, this, mHandler);\r
@@ -1050,9 +1049,8 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
                    \r
                    if (result.isSuccess()) {\r
                 TextView tv = (TextView) findViewById(R.id.oAuth_URL);\r
-                tv.setError("OOOOOKKKKKK");\r
-                       Log.d(TAG, "OOOOK!!!!");\r
-                       /**\r
+                       Log.d(TAG, "Checked access - time to save the account");\r
+                       \r
                        Uri uri = Uri.parse(mBaseUrl);\r
                        String username = "OAuth_user" + (new java.util.Random(System.currentTimeMillis())).nextLong(); \r
                        String accountName = username + "@" + uri.getHost();\r
@@ -1062,8 +1060,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
                        // TODO - check that accountName does not exist\r
                        Account account = new Account(accountName, AccountAuthenticator.ACCOUNT_TYPE);\r
                        AccountManager accManager = AccountManager.get(this);\r
-                       /// TODO SAVE THE ACCESS TOKEN, HERE OR IN SOME BETTER PLACE\r
-                       //accManager.addAccountExplicitly(account, mAccesToken, null);  //// IS THIS REALLY NEEDED? IS NOT REDUNDANT WITH SETACCOUNTAUTHENTICATORRESULT?\r
+                       accManager.addAccountExplicitly(account, "", null);  // with our implementation, the password is never input in the app\r
 \r
                        // Add this account as default in the preferences, if there is none\r
                        Account defaultAccount = AccountUtils.getCurrentOwnCloudAccount(this);\r
@@ -1077,12 +1074,13 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
                        final Intent intent = new Intent();\r
                        intent.putExtra(AccountManager.KEY_ACCOUNT_TYPE, AccountAuthenticator.ACCOUNT_TYPE);\r
                        intent.putExtra(AccountManager.KEY_ACCOUNT_NAME, account.name);\r
-                       intent.putExtra(AccountManager.KEY_AUTHTOKEN, AccountAuthenticator.ACCOUNT_TYPE);\r
                        intent.putExtra(AccountManager.KEY_USERDATA, username);\r
-                       intent.putExtra(AccountManager.KEY_AUTHTOKEN, mAccessToken)\r
 \r
+                accManager.setAuthToken(account, AccountAuthenticator.AUTH_TOKEN_TYPE_ACCESS_TOKEN, ((ExistenceCheckOperation) operation).getAccessToken());\r
+                \r
                        accManager.setUserData(account, AccountAuthenticator.KEY_OC_VERSION, mConnChkRunnable.getDiscoveredVersion().toString());\r
                        accManager.setUserData(account, AccountAuthenticator.KEY_OC_BASE_URL, mBaseUrl);\r
+                       accManager.setUserData(account, AccountAuthenticator.KEY_SUPPORTS_OAUTH2, "TRUE");\r
 \r
                        setAccountAuthenticatorResult(intent.getExtras());\r
                        setResult(RESULT_OK, intent);\r
@@ -1093,12 +1091,11 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
                        ContentResolver.requestSync(account, "org.owncloud", bundle);\r
 \r
                        finish();\r
-                       */\r
                        \r
                    } else {      \r
                        TextView tv = (TextView) findViewById(R.id.oAuth_URL);\r
                        tv.setError(result.getLogMessage());\r
-                Log.d(TAG, "NOOOOO " + result.getLogMessage());\r
+                Log.d(TAG, "Access failed: " + result.getLogMessage());\r
                    }\r
                }\r
        }\r