projects
/
pub
/
Android
/
ownCloud.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix bug (Media Scan) Files are not refreshed when delete from the app)
[pub/Android/ownCloud.git]
/
src
/
com
/
owncloud
/
android
/
datamodel
/
FileDataStorageManager.java
diff --git
a/src/com/owncloud/android/datamodel/FileDataStorageManager.java
b/src/com/owncloud/android/datamodel/FileDataStorageManager.java
index
d803064
..
ff43d1e
100644
(file)
--- 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.database.Cursor;
import android.net.Uri;
import android.os.RemoteException;
+import android.provider.MediaStore;
public class FileDataStorageManager {
public class FileDataStorageManager {
@@
-261,8
+262,8
@@
public class FileDataStorageManager {
* HERE ONLY DATA CONSISTENCY SHOULD BE GRANTED
*
* @param folder
* HERE ONLY DATA CONSISTENCY SHOULD BE GRANTED
*
* @param folder
- * @param
f
iles
- * @param
removeNotUpdated
+ * @param
updatedF
iles
+ * @param
filesToRemove
*/
public void saveFolder(
OCFile folder, Collection<OCFile> updatedFiles, Collection<OCFile> filesToRemove
*/
public void saveFolder(
OCFile folder, Collection<OCFile> updatedFiles, Collection<OCFile> filesToRemove
@@
-491,7
+492,7
@@
public class FileDataStorageManager {
if (removeLocalCopy && file.isDown() && localPath != null && success) {
success = new File(localPath).delete();
if (success) {
if (removeLocalCopy && file.isDown() && localPath != null && success) {
success = new File(localPath).delete();
if (success) {
-
trigger
MediaScan(localPath);
+
deleteFileIn
MediaScan(localPath);
}
if (!removeDBData && success) {
// maybe unnecessary, but should be checked TODO remove if unnecessary
}
if (!removeDBData && success) {
// maybe unnecessary, but should be checked TODO remove if unnecessary
@@
-539,7
+540,8
@@
public class FileDataStorageManager {
private boolean removeLocalFolder(OCFile folder) {
boolean success = true;
private boolean removeLocalFolder(OCFile folder) {
boolean success = true;
- File localFolder = new File(FileStorageUtils.getDefaultSavePathFor(mAccount.name, folder));
+ String localFolderPath = FileStorageUtils.getDefaultSavePathFor(mAccount.name, folder);
+ File localFolder = new File(localFolderPath);
if (localFolder.exists()) {
// stage 1: remove the local files already registered in the files database
Vector<OCFile> files = getFolderContent(folder.getFileId());
if (localFolder.exists()) {
// stage 1: remove the local files already registered in the files database
Vector<OCFile> files = getFolderContent(folder.getFileId());
@@
-549,17
+551,17
@@
public class FileDataStorageManager {
success &= removeLocalFolder(file);
} else {
if (file.isDown()) {
success &= removeLocalFolder(file);
} else {
if (file.isDown()) {
- String path = file.getStoragePath();
File localFile = new File(file.getStoragePath());
success &= localFile.delete();
if (success) {
File localFile = new File(file.getStoragePath());
success &= localFile.delete();
if (success) {
+ deleteFileInMediaScan(file.getStoragePath()); // notify MediaScanner about removed file
file.setStoragePath(null);
saveFile(file);
file.setStoragePath(null);
saveFile(file);
- triggerMediaScan(path); // notify MediaScanner about removed 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;
@@
-579,7
+581,8
@@
public class FileDataStorageManager {
} else {
String path = localFile.getAbsolutePath();
success &= localFile.delete();
} 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<String> it = originalPathsToTriggerMediaScan.iterator();
while (it.hasNext()) {
// Notify MediaScanner about removed file
Iterator<String> 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
triggerMediaScan(it.next());
}
it = newPathsToTriggerMediaScan.iterator();
while (it.hasNext()) {
// Notify MediaScanner about new file/folder
+ deleteFileInMediaScan(file.getStoragePath());
triggerMediaScan(it.next());
}
}
triggerMediaScan(it.next());
}
}
@@
-1490,4
+1495,9
@@
public class FileDataStorageManager {
MainApp.getAppContext().sendBroadcast(intent);
}
MainApp.getAppContext().sendBroadcast(intent);
}
+ public void deleteFileInMediaScan(String path) {
+ getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
+ MediaStore.Images.Media.DATA + "=?", new String[]{path});
+ }
+
}
}