"Received request to download file"
);*/
- /*
- if (ACTION_CANCEL_FILE_DOWNLOAD.equals(intent.getAction())) {
-
- new Thread(new Runnable() {
- public void run() {
- // Cancel the download
- cancel(account, file);
- }
- }).start();
-
- } else {
- */
-
AbstractList<String> requestedDownloads = new Vector<String>();
try {
DownloadFileOperation newDownload = new DownloadFileOperation(account, file);
RemoteOperationResult downloadResult = null;
try {
/// prepare client object to send the request to the ownCloud server
- if (mDownloadClient == null || !mCurrentAccount.equals(mCurrentDownload.getAccount())) {
+ if (mCurrentAccount == null || !mCurrentAccount.equals(mCurrentDownload.getAccount())) {
mCurrentAccount = mCurrentDownload.getAccount();
- mStorageManager =
- new FileDataStorageManager(mCurrentAccount, getContentResolver());
- OwnCloudAccount ocAccount = new OwnCloudAccount(mCurrentAccount, this);
- mDownloadClient = OwnCloudClientManagerFactory.getDefaultSingleton().
- getClientFor(ocAccount, this);
- }
+ mStorageManager = new FileDataStorageManager(
+ mCurrentAccount,
+ getContentResolver()
+ );
+ } // else, reuse storage manager from previous operation
+
+ // always get client from client manager, to get fresh credentials in case of update
+ OwnCloudAccount ocAccount = new OwnCloudAccount(mCurrentAccount, this);
+ mDownloadClient = OwnCloudClientManagerFactory.getDefaultSingleton().
+ getClientFor(ocAccount, this);
+
/// perform the download
/*Log_OC.v( "NOW " + TAG + ", thread " + Thread.currentThread().getName(),
downloadResult = mCurrentDownload.execute(mDownloadClient);
if (downloadResult.isSuccess()) {
saveDownloadedFile();
- /*} else {
- updateUnsuccessfulDownloadedFile();
- */
}
} catch (AccountsException e) {
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());
}
.setContentIntent(PendingIntent.getActivity(
this, (int) System.currentTimeMillis(), updateAccountCredentials, PendingIntent.FLAG_ONE_SHOT));
- mDownloadClient = null; // grant that future retries on the same account will get the fresh credentials
-
} else {
// TODO put something smart in showDetailsIntent
Intent showDetailsIntent = new Intent();