sendBroadcastForNotifyingUIUpdate(result.isSuccess());
}
}
+
+ if (mCancellationRequested.get()) {
+ throw new OperationCancelledException();
+ }
+
} catch (OperationCancelledException e) {
result = new RemoteOperationResult(e);
for (SyncOperation synchOp: mFoldersToWalkDown) {
((SynchronizeFolderOperation) synchOp).cancel();
}
+
+ /// cancellation of download needs to be done separately in any case; a SynchronizeFolderOperation
+ // may finish much sooner than the real download of the files in the folder
+ Intent intent = new Intent(mContext, FileDownloader.class);
+ intent.setAction(FileDownloader.ACTION_CANCEL_FILE_DOWNLOAD);
+ intent.putExtra(FileDownloader.EXTRA_ACCOUNT, mAccount);
+ intent.putExtra(FileDownloader.EXTRA_FILE, mLocalFolder);
+ mContext.startService(intent);
}
return result;
public void cancel() {
mCancellationRequested.set(true);
}
+
+ public String getFolderPath() {
+ String path = mLocalFolder.getStoragePath();
+ if (path != null && path.length() > 0) {
+ return path;
+ }
+ return FileStorageUtils.getDefaultSavePathFor(mAccount.name, mLocalFolder);
+ }
}