Fixed NullPointerExceptionS in upload cancelations
[pub/Android/ownCloud.git] / src / com / owncloud / android / files / FileOperationsHelper.java
index 2237028..c0b00e5 100644 (file)
@@ -205,9 +205,12 @@ public class FileOperationsHelper {
         }
     }
 
-
+    /**
+     * Request the synchronization of a file or folder with the OC server, including its contents.
+     *
+     * @param file          The file or folder to synchronize
+     */
     public void syncFile(OCFile file) {
-
         if (!file.isFolder()){
             Intent intent = new Intent(mFileActivity, OperationsService.class);
             intent.setAction(OperationsService.ACTION_SYNC_FILE);
@@ -223,6 +226,31 @@ public class FileOperationsHelper {
             intent.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
             intent.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
             mFileActivity.startService(intent);
+
+        }
+    }
+
+
+    /**
+     * Request the synchronization of a file or the DOWNLOAD OF A FOLDER, including its contents.
+     *
+     * For files, it's the same as syncFile(OCFile file); for folders, this method does not trigger uploads for
+     * file locally modified.
+     *
+     * Kept 'til synchronization of full folders is considered good enough.
+     *
+     * @param file          The file or folder to synchronize
+     */
+    public void downloadFile(OCFile file) {
+        if (!file.isFolder()){
+            syncFile(file);
+
+        } else {
+            Intent intent = new Intent(mFileActivity, OperationsService.class);
+            intent.setAction(OperationsService.ACTION_DOWNLOAD_FOLDER);
+            intent.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+            intent.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
+            mFileActivity.startService(intent);
         }
     }
 
@@ -297,7 +325,6 @@ public class FileOperationsHelper {
 
         // for both files and folders
         FileDownloaderBinder downloaderBinder = mFileActivity.getFileDownloaderBinder();
-        FileUploaderBinder uploaderBinder = mFileActivity.getFileUploaderBinder();
         if (downloaderBinder != null && downloaderBinder.isDownloading(account, file)) {
             downloaderBinder.cancel(account, file);
 
@@ -309,7 +336,9 @@ public class FileOperationsHelper {
                 mFileActivity.getStorageManager().saveFile(parent);
             }
 
-        } else if (uploaderBinder != null && uploaderBinder.isUploading(account, file)) {
+        }
+        FileUploaderBinder uploaderBinder = mFileActivity.getFileUploaderBinder();
+        if (uploaderBinder != null && uploaderBinder.isUploading(account, file)) {
             uploaderBinder.cancel(account, file);
         }
     }