X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/49849786e5164692481917bcc91e81264c7ac01d..dea36157e7a2d7c99273d121046218220aa9bcd4:/src/com/owncloud/android/files/services/FileDownloader.java diff --git a/src/com/owncloud/android/files/services/FileDownloader.java b/src/com/owncloud/android/files/services/FileDownloader.java index ab9e3327..61483af8 100644 --- a/src/com/owncloud/android/files/services/FileDownloader.java +++ b/src/com/owncloud/android/files/services/FileDownloader.java @@ -169,6 +169,12 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis newDownload.addDatatransferProgressListener(this); newDownload.addDatatransferProgressListener((FileDownloaderBinder) mBinder); requestedDownloads.add(downloadKey); + + // Store file on db with state 'downloading' + FileDataStorageManager storageManager = new FileDataStorageManager(account, getContentResolver()); + file.setDownloading(true); + storageManager.saveFile(file); + sendBroadcastNewDownload(newDownload); } catch (IllegalArgumentException e) { @@ -377,6 +383,8 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis downloadResult = mCurrentDownload.execute(mDownloadClient); if (downloadResult.isSuccess()) { saveDownloadedFile(); + } else { + updateUnsuccessfulDownloadedFile(); } } catch (AccountsException e) { @@ -417,10 +425,20 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis file.setStoragePath(mCurrentDownload.getSavePath()); file.setFileLength((new File(mCurrentDownload.getSavePath()).length())); file.setRemoteId(mCurrentDownload.getFile().getRemoteId()); + file.setDownloading(false); mStorageManager.saveFile(file); mStorageManager.triggerMediaScan(file.getStoragePath()); } + /** + * Update the OC File after a unsuccessful download + */ + private void updateUnsuccessfulDownloadedFile() { + OCFile file = mStorageManager.getFileById(mCurrentDownload.getFile().getFileId()); + file.setDownloading(false); + mStorageManager.saveFile(file); + } + /** * Creates a status notification to show the download progress