Browse Source

Fix bug: audio are not refreshed when delete them from the app

masensio 10 years ago
parent
commit
a69c04d8e9
1 changed files with 20 additions and 10 deletions
  1. 20 10
      src/com/owncloud/android/datamodel/FileDataStorageManager.java

+ 20 - 10
src/com/owncloud/android/datamodel/FileDataStorageManager.java

@@ -492,7 +492,7 @@ public class FileDataStorageManager {
                 if (removeLocalCopy && file.isDown() && localPath != null && success) {
                     success = new File(localPath).delete();
                     if (success) {
-                        deleteFileInMediaScan(localPath);
+                        deleteFileInMediaScan(file);
                     }
                     if (!removeDBData && success) {
                         // maybe unnecessary, but should be checked TODO remove if unnecessary
@@ -554,14 +554,13 @@ public class FileDataStorageManager {
                             File localFile = new File(file.getStoragePath());
                             success &= localFile.delete();
                             if (success) {
-                                deleteFileInMediaScan(file.getStoragePath()); // notify MediaScanner about removed file
+                                deleteFileInMediaScan(file); // notify MediaScanner about removed file
                                 file.setStoragePath(null);
                                 saveFile(file);
                             }
                         }
                     }
                 }
-                //triggerMediaScan(localFolderPath); // notify MediaScanner about removed file in folder
             }
 
             // stage 2: remove the folder itself and any local file inside out of sync; 
@@ -581,8 +580,6 @@ public class FileDataStorageManager {
                 } else {
                     String path = localFile.getAbsolutePath();
                     success &= localFile.delete();
-                    deleteFileInMediaScan(path); // notify MediaScanner about removed file
-                    //triggerMediaScan(path); // notify MediaScanner about removed file
                 }
             }
         }
@@ -717,13 +714,13 @@ public class FileDataStorageManager {
                 Iterator<String> it = originalPathsToTriggerMediaScan.iterator();
                 while (it.hasNext()) {
                     // Notify MediaScanner about removed file
-                    deleteFileInMediaScan(file.getStoragePath());
+                    deleteFileInMediaScan(file);
                     triggerMediaScan(it.next());
                 }
                 it = newPathsToTriggerMediaScan.iterator();
                 while (it.hasNext()) {
                     // Notify MediaScanner about new file/folder
-                    deleteFileInMediaScan(file.getStoragePath());
+                    deleteFileInMediaScan(file);
                     triggerMediaScan(it.next());
                 }
             }
@@ -1495,9 +1492,22 @@ public class FileDataStorageManager {
         MainApp.getAppContext().sendBroadcast(intent);
     }
 
-    public void deleteFileInMediaScan(String path) {
-        getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
-                MediaStore.Images.Media.DATA + "=?", new String[]{path});
+    public void deleteFileInMediaScan(OCFile file) {
+
+        String path = file.getStoragePath();
+        if (file.isImage()) {
+            // Images
+            getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
+                    MediaStore.Images.Media.DATA + "=?", new String[]{path});
+        } else if (file.isAudio()) {
+            // Audio
+            getContentResolver().delete(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
+                    MediaStore.Audio.Media.DATA + "=?", new String[]{path});
+        } else if (file.isVideo()) {
+            // Video
+            getContentResolver().delete(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
+                    MediaStore.Video.Media.DATA + "=?", new String[]{path});
+        }
     }
 
 }