projects
/
pub
/
Android
/
ownCloud.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'origin/operations_service' into operations_service
[pub/Android/ownCloud.git]
/
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
f0f37f5
..
798c371
100644
(file)
--- a/
src/com/owncloud/android/services/OperationsService.java
+++ b/
src/com/owncloud/android/services/OperationsService.java
@@
-32,6
+32,7
@@
import com.owncloud.android.lib.common.operations.RemoteOperation;
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.resources.files.ExistenceCheckRemoteOperation;
import com.owncloud.android.lib.resources.shares.ShareType;
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.resources.files.ExistenceCheckRemoteOperation;
import com.owncloud.android.lib.resources.shares.ShareType;
+import com.owncloud.android.lib.resources.users.GetRemoteUserNameOperation;
import com.owncloud.android.operations.common.SyncOperation;
import com.owncloud.android.operations.CreateShareOperation;
import com.owncloud.android.operations.GetServerInfoOperation;
import com.owncloud.android.operations.common.SyncOperation;
import com.owncloud.android.operations.CreateShareOperation;
import com.owncloud.android.operations.GetServerInfoOperation;
@@
-72,12
+73,14
@@
public class OperationsService extends Service {
public static final String EXTRA_PASSWORD = "PASSWORD";
public static final String EXTRA_AUTH_TOKEN = "AUTH_TOKEN";
public static final String EXTRA_FOLLOW_REDIRECTS = "FOLLOW_REDIRECTS";
public static final String EXTRA_PASSWORD = "PASSWORD";
public static final String EXTRA_AUTH_TOKEN = "AUTH_TOKEN";
public static final String EXTRA_FOLLOW_REDIRECTS = "FOLLOW_REDIRECTS";
+ public static final String EXTRA_COOKIE = "COOKIE";
public static final String ACTION_CREATE_SHARE = "CREATE_SHARE";
public static final String ACTION_UNSHARE = "UNSHARE";
public static final String ACTION_GET_SERVER_INFO = "GET_SERVER_INFO";
public static final String ACTION_OAUTH2_GET_ACCESS_TOKEN = "OAUTH2_GET_ACCESS_TOKEN";
public static final String ACTION_EXISTENCE_CHECK = "EXISTENCE_CHECK";
public static final String ACTION_CREATE_SHARE = "CREATE_SHARE";
public static final String ACTION_UNSHARE = "UNSHARE";
public static final String ACTION_GET_SERVER_INFO = "GET_SERVER_INFO";
public static final String ACTION_OAUTH2_GET_ACCESS_TOKEN = "OAUTH2_GET_ACCESS_TOKEN";
public static final String ACTION_EXISTENCE_CHECK = "EXISTENCE_CHECK";
+ public static final String ACTION_GET_USER_NAME = "GET_USER_NAME";
public static final String ACTION_OPERATION_ADDED = OperationsService.class.getName() + ".OPERATION_ADDED";
public static final String ACTION_OPERATION_FINISHED = OperationsService.class.getName() + ".OPERATION_FINISHED";
public static final String ACTION_OPERATION_ADDED = OperationsService.class.getName() + ".OPERATION_ADDED";
public static final String ACTION_OPERATION_FINISHED = OperationsService.class.getName() + ".OPERATION_FINISHED";
@@
-96,9
+99,10
@@
public class OperationsService extends Service {
public String mPassword = "";
public String mAuthToken = "";
public boolean mFollowRedirects = true;
public String mPassword = "";
public String mAuthToken = "";
public boolean mFollowRedirects = true;
+ public String mCookie = "";
public Target(Account account, Uri serverUrl, String webdavUrl, String username, String password, String authToken,
public Target(Account account, Uri serverUrl, String webdavUrl, String username, String password, String authToken,
- boolean followRedirects) {
+ boolean followRedirects
, String cookie
) {
mAccount = account;
mServerUrl = serverUrl;
mWebDavUrl = webdavUrl;
mAccount = account;
mServerUrl = serverUrl;
mWebDavUrl = webdavUrl;
@@
-106,6
+110,7
@@
public class OperationsService extends Service {
mPassword = password;
mAuthToken = authToken;
mFollowRedirects = followRedirects;
mPassword = password;
mAuthToken = authToken;
mFollowRedirects = followRedirects;
+ mCookie = cookie;
}
}
}
}
@@
-151,7
+156,16
@@
public class OperationsService extends Service {
return START_NOT_STICKY;
}
return START_NOT_STICKY;
}
-
+ @Override
+ public void onDestroy() {
+ //Log.wtf(TAG, "onDestroy init" );
+ super.onDestroy();
+ //Log.wtf(TAG, "Clear mOperationResults" );
+ mOperationResults.clear();
+ //Log.wtf(TAG, "onDestroy end" );
+ }
+
+
/**
* Provides a binder object that clients can use to perform actions on the queue of operations,
* except the addition of new operations.
/**
* Provides a binder object that clients can use to perform actions on the queue of operations,
* except the addition of new operations.
@@
-260,6
+274,7
@@
public class OperationsService extends Service {
String password = operationIntent.getStringExtra(EXTRA_PASSWORD);
String authToken = operationIntent.getStringExtra(EXTRA_AUTH_TOKEN);
boolean followRedirects = operationIntent.getBooleanExtra(EXTRA_FOLLOW_REDIRECTS, true);
String password = operationIntent.getStringExtra(EXTRA_PASSWORD);
String authToken = operationIntent.getStringExtra(EXTRA_AUTH_TOKEN);
boolean followRedirects = operationIntent.getBooleanExtra(EXTRA_FOLLOW_REDIRECTS, true);
+ String cookie = operationIntent.getStringExtra(EXTRA_COOKIE);
target = new Target(
account,
(serverUrl == null) ? null : Uri.parse(serverUrl),
target = new Target(
account,
(serverUrl == null) ? null : Uri.parse(serverUrl),
@@
-267,7
+282,8
@@
public class OperationsService extends Service {
(username == null) ? "" : username,
(password == null) ? "" : password,
(authToken == null) ? "" : authToken,
(username == null) ? "" : username,
(password == null) ? "" : password,
(authToken == null) ? "" : authToken,
- followRedirects
+ followRedirects,
+ (cookie == null) ? "" : cookie
);
String action = operationIntent.getAction();
);
String action = operationIntent.getAction();
@@
-310,6
+326,9
@@
public class OperationsService extends Service {
boolean successIfAbsent = operationIntent.getBooleanExtra(EXTRA_SUCCESS_IF_ABSENT, true);
operation = new ExistenceCheckRemoteOperation(remotePath, OperationsService.this, successIfAbsent);
boolean successIfAbsent = operationIntent.getBooleanExtra(EXTRA_SUCCESS_IF_ABSENT, true);
operation = new ExistenceCheckRemoteOperation(remotePath, OperationsService.this, successIfAbsent);
+ } else if (action.equals(ACTION_GET_USER_NAME)) {
+ // Get User Name
+ operation = new GetRemoteUserNameOperation();
}
}
}
}
@@
-328,9
+347,9
@@
public class OperationsService extends Service {
}
}
}
}
- public RemoteOperationResult getOperationResultIfFinished(int
mDetectAuthOp
Id) {
- //Log_OC.wtf(TAG, "Searching result for operation with id " +
mDetectAuthOp
Id);
- return mOperationResults.remove(
mDetectAuthOp
Id);
+ public RemoteOperationResult getOperationResultIfFinished(int
operation
Id) {
+ //Log_OC.wtf(TAG, "Searching result for operation with id " +
operation
Id);
+ return mOperationResults.remove(
operation
Id);
}
}
}
}
@@
-393,6
+412,8
@@
public class OperationsService extends Service {
mOwnCloudClient.setBasicCredentials(mLastTarget.mUsername, mLastTarget.mPassword);
} else if (mLastTarget.mAuthToken != "") {
mOwnCloudClient.setBearerCredentials(mLastTarget.mAuthToken);
mOwnCloudClient.setBasicCredentials(mLastTarget.mUsername, mLastTarget.mPassword);
} else if (mLastTarget.mAuthToken != "") {
mOwnCloudClient.setBearerCredentials(mLastTarget.mAuthToken);
+ } else if (mLastTarget.mCookie != "") {
+ mOwnCloudClient.setSsoSessionCookie(mLastTarget.mCookie);
}
mStorageManager = null;
}
}
mStorageManager = null;
}
@@
-431,12
+452,11
@@
public class OperationsService extends Service {
} finally {
synchronized(mPendingOperations) {
mPendingOperations.poll();
} finally {
synchronized(mPendingOperations) {
mPendingOperations.poll();
- mOperationResults.put(mCurrentOperation.hashCode(), result);
}
}
//sendBroadcastOperationFinished(mLastTarget, mCurrentOperation, result);
}
}
//sendBroadcastOperationFinished(mLastTarget, mCurrentOperation, result);
-
callback
OperationListeners(mLastTarget, mCurrentOperation, result);
+
dispatch
OperationListeners(mLastTarget, mCurrentOperation, result);
}
}
}
}
@@
-494,7
+514,7
@@
public class OperationsService extends Service {
* @param operation Finished operation.
* @param result Result of the operation.
*/
* @param operation Finished operation.
* @param result Result of the operation.
*/
- private void
callback
OperationListeners(
+ private void
dispatch
OperationListeners(
Target target, final RemoteOperation operation, final RemoteOperationResult result) {
int count = 0;
Iterator<OnRemoteOperationListener> listeners = mBinder.mBoundListeners.keySet().iterator();
Target target, final RemoteOperation operation, final RemoteOperationResult result) {
int count = 0;
Iterator<OnRemoteOperationListener> listeners = mBinder.mBoundListeners.keySet().iterator();
@@
-511,6
+531,9
@@
public class OperationsService extends Service {
count += 1;
}
}
count += 1;
}
}
+ if (count == 0) {
+ mOperationResults.put(operation.hashCode(), result);
+ }
Log_OC.d(TAG, "Called " + count + " listeners");
}
Log_OC.d(TAG, "Called " + count + " listeners");
}