cv.put(ProviderTableMeta.FILE_PERMISSIONS, file.getPermissions());
cv.put(ProviderTableMeta.FILE_REMOTE_ID, file.getRemoteId());
cv.put(ProviderTableMeta.FILE_UPDATE_THUMBNAIL, file.needsUpdateThumbnail());
+ cv.put(ProviderTableMeta.FILE_IS_DOWNLOADING, file.isDownloading());
boolean sameRemotePath = fileExists(file.getRemotePath());
if (sameRemotePath ||
cv.put(ProviderTableMeta.FILE_PERMISSIONS, file.getPermissions());
cv.put(ProviderTableMeta.FILE_REMOTE_ID, file.getRemoteId());
cv.put(ProviderTableMeta.FILE_UPDATE_THUMBNAIL, file.needsUpdateThumbnail());
+ cv.put(ProviderTableMeta.FILE_IS_DOWNLOADING, file.isDownloading());
boolean existsByPath = fileExists(file.getRemotePath());
if (existsByPath || fileExists(file.getFileId())) {
File localFile = new File(file.getStoragePath());
success &= localFile.delete();
if (success) {
- deleteFileInMediaScan(file.getStoragePath()); // notify MediaScanner about removed file
+ // notify MediaScanner about removed file
+ deleteFileInMediaScan(file.getStoragePath());
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;
} else {
String path = localFile.getAbsolutePath();
success &= localFile.delete();
- deleteFileInMediaScan(path); // notify MediaScanner about removed file
- //triggerMediaScan(path); // notify MediaScanner about removed file
}
}
}
Iterator<String> it = originalPathsToTriggerMediaScan.iterator();
while (it.hasNext()) {
// Notify MediaScanner about removed file
- deleteFileInMediaScan(file.getStoragePath());
- triggerMediaScan(it.next());
+ deleteFileInMediaScan(it.next());
}
it = newPathsToTriggerMediaScan.iterator();
while (it.hasNext()) {
// Notify MediaScanner about new file/folder
- deleteFileInMediaScan(file.getStoragePath());
triggerMediaScan(it.next());
}
}
file.setRemoteId(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_REMOTE_ID)));
file.setNeedsUpdateThumbnail(c.getInt(
c.getColumnIndex(ProviderTableMeta.FILE_UPDATE_THUMBNAIL)) == 1 ? true : false);
+ file.setDownloading(c.getInt(
+ c.getColumnIndex(ProviderTableMeta.FILE_IS_DOWNLOADING)) == 1 ? true : false);
}
return file;
ProviderTableMeta.FILE_UPDATE_THUMBNAIL,
file.needsUpdateThumbnail() ? 1 : 0
);
+ cv.put(
+ ProviderTableMeta.FILE_IS_DOWNLOADING,
+ file.isDownloading() ? 1 : 0
+ );
boolean existsByPath = fileExists(file.getRemotePath());
if (existsByPath || fileExists(file.getFileId())) {
}
public void deleteFileInMediaScan(String path) {
- getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
- MediaStore.Images.Media.DATA + "=?", new String[]{path});
+
+ String mimetypeString = FileStorageUtils.getMimeTypeFromName(path);
+ if (mimetypeString.startsWith("image/")) {
+ // Images
+ getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
+ MediaStore.Images.Media.DATA + "=?", new String[]{path});
+ } else if (mimetypeString.startsWith("audio/")) {
+ // Audio
+ getContentResolver().delete(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
+ MediaStore.Audio.Media.DATA + "=?", new String[]{path});
+ } else if (mimetypeString.startsWith("video/")) {
+ // Video
+ getContentResolver().delete(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
+ MediaStore.Video.Media.DATA + "=?", new String[]{path});
+ }
+
}
}