X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/77870373d9f4644ce067b2f1780e9da7fca0baff..281212045672b8439f09e50896d90a1f5c7524f1:/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 798a0d42..0df160aa 100644 --- a/src/com/owncloud/android/services/OperationsService.java +++ b/src/com/owncloud/android/services/OperationsService.java @@ -1,5 +1,5 @@ /* ownCloud Android client application - * Copyright (C) 2012-2013 ownCloud Inc. + * Copyright (C) 2012-2014 ownCloud Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -19,25 +19,21 @@ package com.owncloud.android.services; import java.io.IOException; import java.util.HashMap; -import java.util.HashSet; import java.util.Iterator; import java.util.Map; -import java.util.Set; import java.util.concurrent.ConcurrentLinkedQueue; import com.owncloud.android.datamodel.FileDataStorageManager; - -import com.owncloud.android.lib.network.OnDatatransferProgressListener; -import com.owncloud.android.lib.network.OwnCloudClientFactory; -import com.owncloud.android.lib.network.OwnCloudClient; +import com.owncloud.android.lib.common.OwnCloudClientFactory; +import com.owncloud.android.lib.common.OwnCloudClient; +import com.owncloud.android.lib.common.operations.OnRemoteOperationListener; +import com.owncloud.android.lib.common.operations.RemoteOperation; +import com.owncloud.android.lib.common.operations.RemoteOperationResult; +import com.owncloud.android.lib.resources.shares.ShareType; +import com.owncloud.android.operations.common.SyncOperation; import com.owncloud.android.operations.CreateShareOperation; -import com.owncloud.android.operations.GetSharesOperation; +import com.owncloud.android.operations.DetectAuthenticationMethodOperation; import com.owncloud.android.operations.UnshareLinkOperation; -import com.owncloud.android.operations.common.SyncOperation; -import com.owncloud.android.lib.operations.common.OnRemoteOperationListener; -import com.owncloud.android.lib.operations.common.RemoteOperation; -import com.owncloud.android.lib.operations.common.RemoteOperationResult; -import com.owncloud.android.lib.operations.common.ShareType; import com.owncloud.android.utils.Log_OC; import android.accounts.Account; @@ -52,7 +48,6 @@ import android.os.IBinder; import android.os.Looper; import android.os.Message; import android.os.Process; -//import android.support.v4.content.LocalBroadcastManager; import android.util.Pair; public class OperationsService extends Service { @@ -64,9 +59,11 @@ public class OperationsService extends Service { public static final String EXTRA_REMOTE_PATH = "REMOTE_PATH"; public static final String EXTRA_SEND_INTENT = "SEND_INTENT"; public static final String EXTRA_RESULT = "RESULT"; + public static final String EXTRA_WEBDAV_PATH = "WEBDAV_PATH"; public static final String ACTION_CREATE_SHARE = "CREATE_SHARE"; public static final String ACTION_UNSHARE = "UNSHARE"; + public static final String ACTION_DETECT_AUTHENTICATION_METHOD = "DETECT_AUTHENTICATION_METHOD"; public static final String ACTION_OPERATION_ADDED = OperationsService.class.getName() + ".OPERATION_ADDED"; public static final String ACTION_OPERATION_FINISHED = OperationsService.class.getName() + ".OPERATION_FINISHED"; @@ -127,24 +124,29 @@ public class OperationsService extends Service { RemoteOperation operation = null; String action = intent.getAction(); - if (action == ACTION_CREATE_SHARE) { // Create Share + if (action.equals(ACTION_CREATE_SHARE)) { // Create Share String remotePath = intent.getStringExtra(EXTRA_REMOTE_PATH); Intent sendIntent = intent.getParcelableExtra(EXTRA_SEND_INTENT); if (remotePath.length() > 0) { operation = new CreateShareOperation(remotePath, ShareType.PUBLIC_LINK, "", false, "", 1, sendIntent); } - } else if (action == ACTION_UNSHARE) { // Unshare file + } else if (action.equals(ACTION_UNSHARE)) { // Unshare file String remotePath = intent.getStringExtra(EXTRA_REMOTE_PATH); if (remotePath.length() > 0) { operation = new UnshareLinkOperation(remotePath, this.getApplicationContext()); } + } else if (action.equals(ACTION_DETECT_AUTHENTICATION_METHOD)) { // Detect Authentication Method + String webdav_url = serverUrl + intent.getStringExtra(EXTRA_WEBDAV_PATH); + operation = new DetectAuthenticationMethodOperation(this.getApplicationContext(), webdav_url); + } else { - operation = new GetSharesOperation(); + // nothing we are going to handle + return START_NOT_STICKY; } mPendingOperations.add(new Pair(target, operation)); - sendBroadcastNewOperation(target, operation); + //sendBroadcastNewOperation(target, operation); Message msg = mServiceHandler.obtainMessage(); msg.arg1 = startId; @@ -202,6 +204,7 @@ public class OperationsService extends Service { public void clearListeners() { + mBoundListeners.clear(); } @@ -233,7 +236,7 @@ public class OperationsService extends Service { * @return 'True' when an operation that enforces the user to wait for completion is in process. */ public boolean isPerformingBlockingOperation() { - return (mPendingOperations.size() > 0); + return (!mPendingOperations.isEmpty()); } } @@ -326,7 +329,7 @@ public class OperationsService extends Service { } } - sendBroadcastOperationFinished(mLastTarget, mCurrentOperation, result); + //sendBroadcastOperationFinished(mLastTarget, mCurrentOperation, result); callbackOperationListeners(mLastTarget, mCurrentOperation, result); } }