X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/81fd95ad6f9de92b8c2a65234758c605559d933e..01a610360e898e6d33e4162b45f3e52771e56d53:/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 a6388488..6fea5084 100644 --- a/src/com/owncloud/android/services/OperationsService.java +++ b/src/com/owncloud/android/services/OperationsService.java @@ -25,8 +25,9 @@ import java.util.concurrent.ConcurrentMap; import com.owncloud.android.R; import com.owncloud.android.datamodel.FileDataStorageManager; -import com.owncloud.android.lib.common.OwnCloudClientFactory; import com.owncloud.android.lib.common.OwnCloudClient; +import com.owncloud.android.lib.common.OwnCloudClientFactory; +import com.owncloud.android.lib.common.OwnCloudClientMap; import com.owncloud.android.lib.common.operations.OnRemoteOperationListener; import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; @@ -388,13 +389,19 @@ public class OperationsService extends Service { } } - public void dispatchResultIfFinished(int operationId, OnRemoteOperationListener listener) { + public boolean dispatchResultIfFinished(int operationId, OnRemoteOperationListener listener) { Pair undispatched = mUndispatchedFinishedOperations.remove(operationId); if (undispatched != null) { listener.onRemoteOperationFinish(undispatched.first, undispatched.second); + return true; //Log_OC.wtf(TAG, "Sending callback later"); } else { + if (!mPendingOperations.isEmpty()) { + return true; + } else { + return false; + } //Log_OC.wtf(TAG, "Not finished yet"); } } @@ -447,8 +454,12 @@ public class OperationsService extends Service { if (mLastTarget == null || !mLastTarget.equals(next.first)) { mLastTarget = next.first; if (mLastTarget.mAccount != null) { - mOwnCloudClient = OwnCloudClientFactory.createOwnCloudClient(mLastTarget.mAccount, getApplicationContext()); - mStorageManager = new FileDataStorageManager(mLastTarget.mAccount, getContentResolver()); + mOwnCloudClient = + OwnCloudClientMap.getClientFor(mLastTarget.mAccount, this); + mStorageManager = + new FileDataStorageManager( + mLastTarget.mAccount, + getContentResolver()); } else { mOwnCloudClient = OwnCloudClientFactory.createOwnCloudClient(mLastTarget.mServerUrl, getApplicationContext(), mLastTarget.mFollowRedirects); // this is not good enough