private NotificationCompat.Builder mNotificationBuilder;
private int mLastPercent;
- private Account mAccount;
- private OCFile mFile;
-
public static String getDownloadAddedMessage() {
return FileDownloader.class.getName().toString() + DOWNLOAD_ADDED_MESSAGE;
Log_OC.e(TAG, "Not enough information provided in intent");
return START_NOT_STICKY;
} else {
- mAccount = intent.getParcelableExtra(EXTRA_ACCOUNT);
- mFile = intent.getParcelableExtra(EXTRA_FILE);
+ final Account account = intent.getParcelableExtra(EXTRA_ACCOUNT);
+ final OCFile file = intent.getParcelableExtra(EXTRA_FILE);
if (ACTION_CANCEL_FILE_DOWNLOAD.equals(intent.getAction())) {
new Thread(new Runnable() {
public void run() {
// Cancel the download
- cancel(mAccount,mFile);
+ cancel(account, file);
}
}).start();
} else {
AbstractList<String> requestedDownloads = new Vector<String>(); // dvelasco: now this always contains just one element, but that can change in a near future (download of multiple selection)
- String downloadKey = buildRemoteName(mAccount, mFile);
+ String downloadKey = buildRemoteName(account, file);
try {
- DownloadFileOperation newDownload = new DownloadFileOperation(mAccount, mFile);
+ DownloadFileOperation newDownload = new DownloadFileOperation(account, file);
mPendingDownloads.putIfAbsent(downloadKey, newDownload);
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);
}
}
}
+ */
/**
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());
}
* @param file File OCFile
*/
public void cancel(Account account, OCFile file){
- if(Looper.myLooper() == Looper.getMainLooper()) {
- Log_OC.d(TAG, "Current Thread is Main Thread.");
- } else {
- Log_OC.d(TAG, "Current Thread is NOT Main Thread.");
- }
-
DownloadFileOperation download = null;
String targetKey = buildRemoteName(account, file);
ArrayList<String> keyItems = new ArrayList<String>();
}
}
} else {
+ // this is not really expected...
Log_OC.d(TAG, "Canceling file download");
keyItems.add(buildRemoteName(account, file));
}