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

This commit is contained in:
masensio 2015-01-27 14:31:44 +01:00
parent 281a6b8e1a
commit a69c04d8e9

View file

@ -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});
}
}
}