X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/98929a9c8ff9d64936e728d3d660af242269773d..e6fc5d13ad8aff2f70a84d9cf96b253a108b836d:/src/com/owncloud/android/services/OperationsService.java diff --git a/src/com/owncloud/android/services/OperationsService.java b/src/com/owncloud/android/services/OperationsService.java index 6c6f24c4..2b51660d 100644 --- a/src/com/owncloud/android/services/OperationsService.java +++ b/src/com/owncloud/android/services/OperationsService.java @@ -449,6 +449,7 @@ public class OperationsService extends Service { } if (mCurrentSyncOperation != null) { + RemoteOperationResult result = null; try { @@ -460,7 +461,7 @@ public class OperationsService extends Service { mService.getContentResolver() ); - mCurrentSyncOperation.execute(mOwnCloudClient, mStorageManager); + result = mCurrentSyncOperation.execute(mOwnCloudClient, mStorageManager); } catch (AccountsException e) { Log_OC.e(TAG, "Error while trying to get autorization", e); @@ -470,6 +471,8 @@ public class OperationsService extends Service { synchronized(mPendingOperations) { mPendingOperations.remove(syncKey); } + + mService.dispatchResultToOperationListeners(null, mCurrentSyncOperation, result); } } } @@ -495,12 +498,13 @@ public class OperationsService extends Service { syncOperation.cancel(); } - Intent intent = new Intent( MainApp.getAppContext(), FileDownloader.class); + /// 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(mService, FileDownloader.class); intent.setAction(FileDownloader.ACTION_CANCEL_FILE_DOWNLOAD); intent.putExtra(FileDownloader.EXTRA_ACCOUNT, account); intent.putExtra(FileDownloader.EXTRA_FILE, file); - MainApp.getAppContext().startService(intent); - + mService.startService(intent); } /** @@ -687,7 +691,7 @@ public class OperationsService extends Service { String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH); Intent sendIntent = operationIntent.getParcelableExtra(EXTRA_SEND_INTENT); if (remotePath.length() > 0) { - operation = new CreateShareOperation(remotePath, ShareType.PUBLIC_LINK, + operation = new CreateShareOperation(OperationsService.this, remotePath, ShareType.PUBLIC_LINK, "", false, "", 1, sendIntent); } @@ -829,7 +833,7 @@ public class OperationsService extends Service { /** * Notifies the currently subscribed listeners about the end of an operation. - * + * * @param target Account or URL pointing to an OC server. * @param operation Finished operation. * @param result Result of the operation.