Local files are protected against removal because of synchronization when out of...
authorDavid A. Velasco <dvelasco@solidgear.es>
Wed, 22 Aug 2012 10:50:06 +0000 (12:50 +0200)
committerDavid A. Velasco <dvelasco@solidgear.es>
Wed, 22 Aug 2012 10:50:06 +0000 (12:50 +0200)
src/com/owncloud/android/datamodel/DataStorageManager.java
src/com/owncloud/android/datamodel/FileDataStorageManager.java
src/com/owncloud/android/syncadapter/FileSyncAdapter.java
src/com/owncloud/android/ui/fragment/FileDetailFragment.java

index a73ab66..e824bde 100644 (file)
@@ -37,5 +37,5 @@ public interface DataStorageManager {
 
     public Vector<OCFile> getDirectoryContent(OCFile f);
     
-    public void removeFile(OCFile file);
+    public void removeFile(OCFile file, boolean removeLocalCopy);
 }
index 49a88c3..7bb29d4 100644 (file)
@@ -399,7 +399,7 @@ public class FileDataStorageManager implements DataStorageManager {
         return file;
     }
     
-    public void removeFile(OCFile file) {
+    public void removeFile(OCFile file, boolean removeLocalCopy) {
         Uri file_uri = Uri.withAppendedPath(ProviderTableMeta.CONTENT_URI_FILE, ""+file.getFileId());
         if (getContentProvider() != null) {
             try {
@@ -414,7 +414,7 @@ public class FileDataStorageManager implements DataStorageManager {
                                         ProviderTableMeta.FILE_ACCOUNT_OWNER+"=?",
                                         new String[]{mAccount.name});
         }
-        if (file.isDown()) {
+        if (file.isDown() && removeLocalCopy) {
             new File(file.getStoragePath()).delete();
         }
     }
index 1a3afe6..7b803fc 100644 (file)
@@ -210,11 +210,12 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
             Vector<OCFile> files = getStorageManager().getDirectoryContent(\r
                     getStorageManager().getFileById(parentId));\r
             OCFile file;\r
+            String currentSavePath = FileDownloader.getSavePath(mAccount.name);\r
             for (int i=0; i < files.size(); ) {\r
                 file = files.get(i);\r
                 if (file.getLastSyncDate() != mCurrentSyncTime) {\r
                     Log.v(TAG, "removing file: " + file);\r
-                    getStorageManager().removeFile(file);\r
+                    getStorageManager().removeFile(file, (file.isDown() && file.getStoragePath().startsWith(currentSavePath)));\r
                     files.remove(i);\r
                 } else {\r
                     i++;\r
index a77d9ad..979930d 100644 (file)
@@ -842,7 +842,7 @@ public class FileDetailFragment extends SherlockFragment implements
             \r
             if (success) {\r
                 FileDataStorageManager fdsm = new FileDataStorageManager(mAccount, getActivity().getContentResolver());\r
-                fdsm.removeFile(mOld);\r
+                fdsm.removeFile(mOld, false);\r
                 fdsm.saveFile(mNew);\r
                 mFile = mNew;\r
                 mHandler.post(new Runnable() {\r
@@ -1008,7 +1008,7 @@ public class FileDetailFragment extends SherlockFragment implements
             \r
             if (success) {\r
                 FileDataStorageManager fdsm = new FileDataStorageManager(mAccount, getActivity().getContentResolver());\r
-                fdsm.removeFile(mFileToRemove);\r
+                fdsm.removeFile(mFileToRemove, true);\r
                 mHandler.post(new Runnable() {\r
                     @Override\r
                     public void run() {\r