Merge branch 'develop' into refactor_update_filelist_from_database
[pub/Android/ownCloud.git] / src / com / owncloud / android / datamodel / FileDataStorageManager.java
index a676531..ec0a7ef 100644 (file)
@@ -467,8 +467,7 @@ public class FileDataStorageManager {
                 success = removeFolderInDb(folder);
             }
             if (removeLocalContent && success) {
                 success = removeFolderInDb(folder);
             }
             if (removeLocalContent && success) {
-                File localFolder = new File(FileStorageUtils.getDefaultSavePathFor(mAccount.name, folder));
-                success = removeLocalFolder(localFolder);
+                success = removeLocalFolder(folder);
             }
         }
         return success;
             }
         }
         return success;
@@ -491,20 +490,28 @@ public class FileDataStorageManager {
         return deleted > 0;
     }
 
         return deleted > 0;
     }
 
-    private boolean removeLocalFolder(File folder) {
+    private boolean removeLocalFolder(OCFile folder) {
         boolean success = true;
         boolean success = true;
-        if (folder.exists()) {
-            File[] files = folder.listFiles();
+        File localFolder = new File(FileStorageUtils.getDefaultSavePathFor(mAccount.name, folder));
+        if (localFolder.exists()) {
+            Vector<OCFile> files = getFolderContent(folder.getFileId());
             if (files != null) {
             if (files != null) {
-                for (File file : files) {
-                    if (file.isDirectory()) {
+                for (OCFile file : files) {
+                    if (file.isFolder()) {
                         success &= removeLocalFolder(file);
                     } else {
                         success &= removeLocalFolder(file);
                     } else {
-                        success &= file.delete();
+                        if (file.isDown()) {
+                            File localFile = new File(file.getStoragePath());
+                            success &= localFile.delete();
+                            if (success) {
+                                file.setStoragePath(null);
+                                saveFile(file);
+                            }
+                        }
                     }
                 }
             }
                     }
                 }
             }
-            success &= folder.delete();
+            success &= localFolder.delete();
         }
         return success;
     }
         }
         return success;
     }