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