Merge branch 'download_folder' into download_folder__fixing_recursive_cancellation
[pub/Android/ownCloud.git] / src / com / owncloud / android / operations / SynchronizeFolderOperation.java
index 088c578..6b62547 100644 (file)
@@ -165,6 +165,11 @@ public class SynchronizeFolderOperation extends SyncOperation {
                     sendBroadcastForNotifyingUIUpdate(result.isSuccess());
                 }
             }
+            
+            if (mCancellationRequested.get()) {
+                throw new OperationCancelledException();
+            }
+            
         } catch (OperationCancelledException e) {
             result = new RemoteOperationResult(e);
             
@@ -172,6 +177,14 @@ public class SynchronizeFolderOperation extends SyncOperation {
             for (SyncOperation  synchOp: mFoldersToWalkDown) {
                 ((SynchronizeFolderOperation) synchOp).cancel();
             }
+            
+            /// cancellation of download needs to be done separately in any case; a SynchronizeFolderOperation
+            //  may finish much sooner than the real download of the files in the folder 
+            Intent intent = new Intent(mContext, FileDownloader.class);
+            intent.setAction(FileDownloader.ACTION_CANCEL_FILE_DOWNLOAD);
+            intent.putExtra(FileDownloader.EXTRA_ACCOUNT, mAccount);
+            intent.putExtra(FileDownloader.EXTRA_FILE, mLocalFolder);
+            mContext.startService(intent);            
         }
 
         return result;