X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/e409b5afb647f5af6fbe26618bb8448040560f59..732ab432a4945c4720bc039cec6bde52bdd63bf2:/src/com/owncloud/android/operations/SynchronizeFolderOperation.java?ds=sidebyside diff --git a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java index 3f640974..4e1e5bc9 100644 --- a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java +++ b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java @@ -27,6 +27,7 @@ import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.files.services.FileDownloader; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.operations.OperationCancelledException; +import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode; import com.owncloud.android.lib.common.utils.Log_OC; @@ -145,6 +146,10 @@ public class SynchronizeFolderOperation extends SyncOperation { synchronized(mCancellationRequested) { if (mCancellationRequested.get()) { + // Cancel each operation in mFoldersToWalkDown + for (SyncOperation synchOp: mFoldersToWalkDown) { + ((SynchronizeFolderOperation) synchOp).cancel(); + } return new RemoteOperationResult(new OperationCancelledException()); } } @@ -398,7 +403,7 @@ public class SynchronizeFolderOperation extends SyncOperation { startDirectDownloads(); startContentSynchronizations(mFilesToSyncContentsWithoutUpload, client); startContentSynchronizations(mFavouriteFilesToSyncContents, client); - walkSubfolders(mFoldersToWalkDown, client); // this must be the last! + walkSubfolders(client); // this must be the last! } @@ -444,9 +449,9 @@ public class SynchronizeFolderOperation extends SyncOperation { } - private void walkSubfolders(List foldersToWalkDown, OwnCloudClient client) { + private void walkSubfolders(OwnCloudClient client) { RemoteOperationResult contentsResult = null; - for (SyncOperation op: foldersToWalkDown) { + for (SyncOperation op: mFoldersToWalkDown) { contentsResult = op.execute(client, getStorageManager()); // to watch out: possibly deep recursion if (!contentsResult.isSuccess()) { // TODO - some kind of error count, and use it with notifications @@ -502,8 +507,6 @@ public class SynchronizeFolderOperation extends SyncOperation { * Cancel operation */ public void cancel(){ - // WIP Cancel the sync operation mCancellationRequested.set(true); } - }