X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/c39e851f5eada08c93d3a57d41054ea112b4bfcf..01a610360e898e6d33e4162b45f3e52771e56d53:/src/com/owncloud/android/services/OperationsService.java?ds=sidebyside diff --git a/src/com/owncloud/android/services/OperationsService.java b/src/com/owncloud/android/services/OperationsService.java index 1c841f51..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; @@ -172,10 +173,10 @@ public class OperationsService extends Service { @Override public void onDestroy() { //Log_OC.wtf(TAG, "onDestroy init" ); - super.onDestroy(); //Log_OC.wtf(TAG, "Clear mUndispatchedFinisiedOperations" ); mUndispatchedFinishedOperations.clear(); //Log_OC.wtf(TAG, "onDestroy end" ); + super.onDestroy(); } @@ -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