Fixed update of shares database - grant that shares are removed after removing all...
authorDavid A. Velasco <dvelasco@solidgear.es>
Mon, 3 Feb 2014 08:20:49 +0000 (09:20 +0100)
committerDavid A. Velasco <dvelasco@solidgear.es>
Mon, 3 Feb 2014 08:20:49 +0000 (09:20 +0100)
src/com/owncloud/android/datamodel/FileDataStorageManager.java
src/com/owncloud/android/operations/GetSharesOperation.java

index 0b35bea..76e3e5c 100644 (file)
@@ -972,9 +972,8 @@ public class FileDataStorageManager {
     }
     
     public void saveShares(Collection<OCShare> shares) {
+        cleanShares();
         if (shares != null) {
-            cleanShares();
-            
             ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>(shares.size());
 
             // prepare operations to insert or update files to save in the given folder
@@ -1011,32 +1010,33 @@ public class FileDataStorageManager {
             }
             
             // apply operations in batch
-            @SuppressWarnings("unused")
-            ContentProviderResult[] results = null;
-            Log_OC.d(TAG, "Sending " + operations.size() + " operations to FileContentProvider");
-            try {
-                if (getContentResolver() != null) {
-                    results = getContentResolver().applyBatch(MainApp.getAuthority(), operations);
-
-                } else {
-                    results = getContentProviderClient().applyBatch(operations);
+            if (operations.size() > 0) {
+                @SuppressWarnings("unused")
+                ContentProviderResult[] results = null;
+                Log_OC.d(TAG, "Sending " + operations.size() + " operations to FileContentProvider");
+                try {
+                    if (getContentResolver() != null) {
+                        results = getContentResolver().applyBatch(MainApp.getAuthority(), operations);
+    
+                    } else {
+                        results = getContentProviderClient().applyBatch(operations);
+                    }
+    
+                } catch (OperationApplicationException e) {
+                    Log_OC.e(TAG, "Exception in batch of operations " + e.getMessage());
+    
+                } catch (RemoteException e) {
+                    Log_OC.e(TAG, "Exception in batch of operations  " + e.getMessage());
                 }
-
-            } catch (OperationApplicationException e) {
-                Log_OC.e(TAG, "Exception in batch of operations " + e.getMessage());
-
-            } catch (RemoteException e) {
-                Log_OC.e(TAG, "Exception in batch of operations  " + e.getMessage());
             }
-            
         }
         
     }
     
     public void updateSharedFiles(Collection<OCFile> sharedFiles) {
+        cleanSharedFiles();
+        
         if (sharedFiles != null) {
-            cleanSharedFiles();
-            
             ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>(sharedFiles.size());
 
             // prepare operations to insert or update files to save in the given folder
@@ -1077,24 +1077,25 @@ public class FileDataStorageManager {
             }
             
             // apply operations in batch
-            @SuppressWarnings("unused")
-            ContentProviderResult[] results = null;
-            Log_OC.d(TAG, "Sending " + operations.size() + " operations to FileContentProvider");
-            try {
-                if (getContentResolver() != null) {
-                    results = getContentResolver().applyBatch(MainApp.getAuthority(), operations);
-
-                } else {
-                    results = getContentProviderClient().applyBatch(operations);
+            if (operations.size() > 0) {
+                @SuppressWarnings("unused")
+                ContentProviderResult[] results = null;
+                Log_OC.d(TAG, "Sending " + operations.size() + " operations to FileContentProvider");
+                try {
+                    if (getContentResolver() != null) {
+                        results = getContentResolver().applyBatch(MainApp.getAuthority(), operations);
+    
+                    } else {
+                        results = getContentProviderClient().applyBatch(operations);
+                    }
+    
+                } catch (OperationApplicationException e) {
+                    Log_OC.e(TAG, "Exception in batch of operations " + e.getMessage());
+    
+                } catch (RemoteException e) {
+                    Log_OC.e(TAG, "Exception in batch of operations  " + e.getMessage());
                 }
-
-            } catch (OperationApplicationException e) {
-                Log_OC.e(TAG, "Exception in batch of operations " + e.getMessage());
-
-            } catch (RemoteException e) {
-                Log_OC.e(TAG, "Exception in batch of operations  " + e.getMessage());
             }
-            
         }
         
     } 
index 64942c0..4cbee02 100644 (file)
@@ -62,34 +62,29 @@ public class GetSharesOperation extends SyncOperation {
     }
 
     private void saveSharesDB(ArrayList<OCShare> shares) {
-
-        if (shares.size() > 0) {
-            // Save share file
-            getStorageManager().saveShares(shares);
-
-            ArrayList<OCFile> sharedFiles = new ArrayList<OCFile>();
-
-            for (OCShare share : shares) {
-                // Get the path
-                String path = share.getPath();
-                if (share.isDirectory()) {
-                    path = path + FileUtils.PATH_SEPARATOR;
-                }           
-
-                // Update OCFile with data from share: ShareByLink  ¿and publicLink?
-                OCFile file = getStorageManager().getFileByPath(path);
-                if (file != null) {
-                    if (share.getShareType().equals(ShareType.PUBLIC_LINK)) {
-                        file.setShareByLink(true);
-                        sharedFiles.add(file);
-                    }
-                } 
-            }
-            
-            if (sharedFiles.size() > 0) {
-                getStorageManager().updateSharedFiles(sharedFiles);
-            }
+        // Save share file
+        getStorageManager().saveShares(shares);
+
+        ArrayList<OCFile> sharedFiles = new ArrayList<OCFile>();
+
+        for (OCShare share : shares) {
+            // Get the path
+            String path = share.getPath();
+            if (share.isDirectory()) {
+                path = path + FileUtils.PATH_SEPARATOR;
+            }           
+
+            // Update OCFile with data from share: ShareByLink  ¿and publicLink?
+            OCFile file = getStorageManager().getFileByPath(path);
+            if (file != null) {
+                if (share.getShareType().equals(ShareType.PUBLIC_LINK)) {
+                    file.setShareByLink(true);
+                    sharedFiles.add(file);
+                }
+            } 
         }
+        
+        getStorageManager().updateSharedFiles(sharedFiles);
     }
 
 }