From: masensio Date: Mon, 26 Jan 2015 14:15:00 +0000 (+0100) Subject: Fix bug (Media Scan) Files are not refreshed when delete from the app) X-Git-Tag: oc-android-1.7.0_signed~17^2~4 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/281a6b8e1a9d5de45597009e374bc22416000505?ds=inline;hp=--cc Fix bug (Media Scan) Files are not refreshed when delete from the app) --- 281a6b8e1a9d5de45597009e374bc22416000505 diff --git a/owncloud-android-library b/owncloud-android-library index 8261865f..e87f5f25 160000 --- a/owncloud-android-library +++ b/owncloud-android-library @@ -1 +1 @@ -Subproject commit 8261865ff24c1bfc05be19ae9364a66dac8f26c3 +Subproject commit e87f5f25ad91950d47ec9b6fa01401360cd7ec8d diff --git a/src/com/owncloud/android/datamodel/FileDataStorageManager.java b/src/com/owncloud/android/datamodel/FileDataStorageManager.java index 687dcc32..ff43d1eb 100644 --- a/src/com/owncloud/android/datamodel/FileDataStorageManager.java +++ b/src/com/owncloud/android/datamodel/FileDataStorageManager.java @@ -46,6 +46,7 @@ import android.content.OperationApplicationException; import android.database.Cursor; import android.net.Uri; import android.os.RemoteException; +import android.provider.MediaStore; public class FileDataStorageManager { @@ -261,8 +262,8 @@ public class FileDataStorageManager { * HERE ONLY DATA CONSISTENCY SHOULD BE GRANTED * * @param folder - * @param files - * @param removeNotUpdated + * @param updatedFiles + * @param filesToRemove */ public void saveFolder( OCFile folder, Collection updatedFiles, Collection filesToRemove @@ -491,7 +492,7 @@ public class FileDataStorageManager { if (removeLocalCopy && file.isDown() && localPath != null && success) { success = new File(localPath).delete(); if (success) { - triggerMediaScan(FileStorageUtils.getParentPath(localPath)); + deleteFileInMediaScan(localPath); } if (!removeDBData && success) { // maybe unnecessary, but should be checked TODO remove if unnecessary @@ -553,13 +554,14 @@ public class FileDataStorageManager { File localFile = new File(file.getStoragePath()); success &= localFile.delete(); if (success) { + deleteFileInMediaScan(file.getStoragePath()); // notify MediaScanner about removed file file.setStoragePath(null); saveFile(file); } } } } - triggerMediaScan(localFolderPath); // notify MediaScanner about removed file in folder + //triggerMediaScan(localFolderPath); // notify MediaScanner about removed file in folder } // stage 2: remove the folder itself and any local file inside out of sync; @@ -579,7 +581,8 @@ public class FileDataStorageManager { } else { String path = localFile.getAbsolutePath(); success &= localFile.delete(); - triggerMediaScan(path); // notify MediaScanner about removed file + deleteFileInMediaScan(path); // notify MediaScanner about removed file + //triggerMediaScan(path); // notify MediaScanner about removed file } } } @@ -714,11 +717,13 @@ public class FileDataStorageManager { Iterator it = originalPathsToTriggerMediaScan.iterator(); while (it.hasNext()) { // Notify MediaScanner about removed file + deleteFileInMediaScan(file.getStoragePath()); triggerMediaScan(it.next()); } it = newPathsToTriggerMediaScan.iterator(); while (it.hasNext()) { // Notify MediaScanner about new file/folder + deleteFileInMediaScan(file.getStoragePath()); triggerMediaScan(it.next()); } } @@ -1490,4 +1495,9 @@ 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}); + } + }