瀏覽代碼

Merge pull request #8758 from nextcloud/davChanges

Use new dav
Andy Scherzinger 3 年之前
父節點
當前提交
dcfef5754f

+ 1 - 2
src/androidTest/java/com/owncloud/android/providers/DocumentsStorageProviderIT.kt

@@ -6,7 +6,6 @@ import androidx.documentfile.provider.DocumentFile
 import com.owncloud.android.AbstractOnServerIT
 import com.owncloud.android.R
 import com.owncloud.android.datamodel.OCFile.ROOT_PATH
-import com.owncloud.android.lib.common.network.WebdavUtils
 import com.owncloud.android.providers.DocumentsProviderUtils.assertExistsOnServer
 import com.owncloud.android.providers.DocumentsProviderUtils.assertListFilesEquals
 import com.owncloud.android.providers.DocumentsProviderUtils.assertReadEquals
@@ -205,7 +204,7 @@ class DocumentsStorageProviderIT : AbstractOnServerIT() {
         val content2 = "new content".toByteArray()
 
         // modify content on server side
-        val putMethod = PutMethod(client.webdavUri.toString() + WebdavUtils.encodePath(remotePath))
+        val putMethod = PutMethod(client.getFilesDavUri(remotePath))
         putMethod.requestEntity = ByteArrayRequestEntity(content2)
         assertEquals(HttpStatus.SC_NO_CONTENT, client.executeMethod(putMethod))
         client.exhaustResponse(putMethod.responseBodyAsStream)

+ 6 - 7
src/main/java/com/owncloud/android/authentication/AuthenticatorActivity.java

@@ -1266,6 +1266,12 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             return false;
 
         } else {
+            UserInfo userInfo = authResult.getResultData();
+            if (userInfo == null) {
+                Log_OC.e(this, "Could not read user data!");
+                return false;
+            }
+
             mAccount = newAccount;
             mAccountMgr.addAccountExplicitly(mAccount, webViewPassword, null);
 
@@ -1289,13 +1295,6 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             //      addAccountExplicitly, or in KEY_USERDATA
             mAccountMgr.setUserData(mAccount, Constants.KEY_OC_VERSION, mServerInfo.mVersion.getVersion());
             mAccountMgr.setUserData(mAccount, Constants.KEY_OC_BASE_URL, mServerInfo.mBaseUrl);
-
-            UserInfo userInfo = authResult.getResultData();
-            if (userInfo == null) {
-                Log_OC.e(this, "Could not read user data!");
-                return false;
-            }
-
             mAccountMgr.setUserData(mAccount, Constants.KEY_DISPLAY_NAME, userInfo.getDisplayName());
             mAccountMgr.setUserData(mAccount, Constants.KEY_USER_ID, userInfo.getId());
             mAccountMgr.setUserData(mAccount,

+ 9 - 10
src/main/java/com/owncloud/android/authentication/AuthenticatorAsyncTask.java

@@ -46,7 +46,7 @@ public class AuthenticatorAsyncTask extends AsyncTask<Object, Void, RemoteOperat
 
     private static final boolean SUCCESS_IF_ABSENT = false;
 
-    private WeakReference<Context> mWeakContext;
+    private final WeakReference<Context> mWeakContext;
     private final WeakReference<OnAuthenticatorTaskListener> mListener;
 
     public AuthenticatorAsyncTask(Activity activity) {
@@ -65,15 +65,21 @@ public class AuthenticatorAsyncTask extends AsyncTask<Object, Void, RemoteOperat
 
             // Client
             Uri uri = Uri.parse(url);
-            OwnCloudClient client = OwnCloudClientFactory.createOwnCloudClient(uri, context, true);
             NextcloudClient nextcloudClient = OwnCloudClientFactory.createNextcloudClient(uri,
                                                                                           credentials.getUsername(),
                                                                                           credentials.toOkHttpCredentials(),
                                                                                           context,
                                                                                           true);
-            client.setCredentials(credentials);
+
+
+            // Operation - get display name
+            RemoteOperationResult<UserInfo> userInfoResult = new GetUserInfoRemoteOperation().execute(nextcloudClient);
 
             // Operation - try credentials
+            OwnCloudClient client = OwnCloudClientFactory.createOwnCloudClient(uri, context, true);
+            client.setUserId(userInfoResult.getResultData().getId());
+            client.setCredentials(credentials);
+
             ExistenceCheckRemoteOperation operation = new ExistenceCheckRemoteOperation(ROOT_PATH, SUCCESS_IF_ABSENT);
             result = operation.execute(client);
 
@@ -82,13 +88,6 @@ public class AuthenticatorAsyncTask extends AsyncTask<Object, Void, RemoteOperat
                 String permanentLocation = redirectionPath.getLastPermanentLocation();
                 result.setLastPermanentLocation(permanentLocation);
             }
-
-            // Operation - get display name
-            if (result.isSuccess()) {
-                GetUserInfoRemoteOperation remoteUserNameOperation = new GetUserInfoRemoteOperation();
-                result = remoteUserNameOperation.execute(nextcloudClient);
-            }
-
         } else {
             result = new RemoteOperationResult(RemoteOperationResult.ResultCode.UNKNOWN_ERROR);
         }

+ 1 - 2
src/main/java/com/owncloud/android/operations/RemoveRemoteEncryptedFileOperation.java

@@ -29,7 +29,6 @@ import com.owncloud.android.datamodel.ArbitraryDataProvider;
 import com.owncloud.android.datamodel.DecryptedFolderMetadata;
 import com.owncloud.android.datamodel.EncryptedFolderMetadata;
 import com.owncloud.android.lib.common.OwnCloudClient;
-import com.owncloud.android.lib.common.network.WebdavUtils;
 import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.utils.Log_OC;
@@ -129,7 +128,7 @@ public class RemoveRemoteEncryptedFileOperation extends RemoteOperation {
             }
 
             // delete file remote
-            delete = new DeleteMethod(client.getWebdavUri() + WebdavUtils.encodePath(remotePath));
+            delete = new DeleteMethod(client.getFilesDavUri(remotePath));
             delete.setQueryString(new NameValuePair[]{new NameValuePair(E2E_TOKEN, token)});
             int status = client.executeMethod(delete, REMOVE_READ_TIMEOUT, REMOVE_CONNECTION_TIMEOUT);
 

+ 1 - 1
src/main/java/com/owncloud/android/operations/UpdateOCVersionOperation.java

@@ -67,7 +67,7 @@ public class UpdateOCVersionOperation extends RemoteOperation {
         RemoteOperationResult result = null;
         GetMethod getMethod = null;
 
-        String webDav = client.getWebdavUri().toString();
+        String webDav = client.getDavUri().toString();
 
         try {
             getMethod = new GetMethod(statUrl);