From: masensio Date: Wed, 28 Jan 2015 09:37:08 +0000 (+0100) Subject: Merge branch 'develop' into delete_local_files X-Git-Tag: oc-android-1.7.0_signed~17^2~2 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/d19128e770443fac3e134e46dbb88a3b29070fd3?ds=sidebyside;hp=-c Merge branch 'develop' into delete_local_files --- d19128e770443fac3e134e46dbb88a3b29070fd3 diff --combined src/com/owncloud/android/datamodel/FileDataStorageManager.java index b73845af,1f626d36..900d59cf --- a/src/com/owncloud/android/datamodel/FileDataStorageManager.java +++ b/src/com/owncloud/android/datamodel/FileDataStorageManager.java @@@ -46,7 -46,6 +46,7 @@@ import android.content.OperationApplica import android.database.Cursor; import android.net.Uri; import android.os.RemoteException; +import android.provider.MediaStore; public class FileDataStorageManager { @@@ -194,6 -193,7 +194,7 @@@ 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 || @@@ -262,8 -262,8 +263,8 @@@ * 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 @@@ -303,6 -303,7 +304,7 @@@ 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())) { @@@ -492,7 -493,7 +494,7 @@@ if (removeLocalCopy && file.isDown() && localPath != null && success) { success = new File(localPath).delete(); if (success) { - triggerMediaScan(localPath); + deleteFileInMediaScan(file); } if (!removeDBData && success) { // maybe unnecessary, but should be checked TODO remove if unnecessary @@@ -540,8 -541,7 +542,8 @@@ 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 files = getFolderContent(folder.getFileId()); @@@ -551,12 -551,13 +553,12 @@@ success &= removeLocalFolder(file); } else { if (file.isDown()) { - String path = file.getStoragePath(); File localFile = new File(file.getStoragePath()); success &= localFile.delete(); if (success) { + deleteFileInMediaScan(file); // notify MediaScanner about removed file file.setStoragePath(null); saveFile(file); - triggerMediaScan(path); // notify MediaScanner about removed file } } } @@@ -580,6 -581,7 +582,6 @@@ } else { String path = localFile.getAbsolutePath(); success &= localFile.delete(); - triggerMediaScan(path); // notify MediaScanner about removed file } } } @@@ -714,13 -716,11 +716,13 @@@ Iterator it = originalPathsToTriggerMediaScan.iterator(); while (it.hasNext()) { // Notify MediaScanner about removed file + deleteFileInMediaScan(file); triggerMediaScan(it.next()); } it = newPathsToTriggerMediaScan.iterator(); while (it.hasNext()) { // Notify MediaScanner about new file/folder + deleteFileInMediaScan(file); triggerMediaScan(it.next()); } } @@@ -879,6 -879,8 +881,8 @@@ 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; @@@ -1261,6 -1263,10 +1265,10 @@@ 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())) { @@@ -1492,22 -1498,4 +1500,22 @@@ MainApp.getAppContext().sendBroadcast(intent); } + 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}); + } + } + }