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) {
* @param account Owncloud account where the remote file is stored.
* @param file A file that could be in the queue of downloads.
*/
+ /*
public boolean isDownloading(Account account, OCFile file) {
if (account == null || file == null) return false;
String targetKey = buildRemoteName(account, file);
}
}
}
+ */
/**
downloadResult = mCurrentDownload.execute(mDownloadClient);
if (downloadResult.isSuccess()) {
saveDownloadedFile();
+ } else {
+ updateUnsuccessfulDownloadedFile();
}
} catch (AccountsException e) {
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