import com.owncloud.android.authentication.SsoWebViewClient.SsoWebViewClientListener;\r
import com.owncloud.android.lib.common.accounts.AccountTypeUtils;\r
import com.owncloud.android.lib.common.accounts.AccountUtils.Constants;\r
-import com.owncloud.android.lib.common.OwnCloudClientFactory;\r
-import com.owncloud.android.lib.common.OwnCloudClient;\r
import com.owncloud.android.operations.DetectAuthenticationMethodOperation.AuthenticationMethod;\r
import com.owncloud.android.operations.GetServerInfoOperation;\r
import com.owncloud.android.operations.OAuth2GetAccessToken;\r
private Thread mOperationThread;\r
private GetServerInfoOperation mServerInfoOperation;\r
\r
- //private ExistenceCheckRemoteOperation mAuthCheckOperation;\r
private int mExistenceCheckOpId = -1;\r
+ private int mGetUserNameOpId = -1;\r
\r
private Uri mNewCapturedUriFromOAuth2Redirection;\r
\r
onAuthorizationCheckFinish(result);\r
}\r
} else if (operation instanceof GetRemoteUserNameOperation) {\r
- onGetUserNameFinish((GetRemoteUserNameOperation) operation, result);\r
-\r
+ onGetUserNameFinish(result);\r
}\r
\r
}\r
\r
- private void onGetUserNameFinish(GetRemoteUserNameOperation operation, RemoteOperationResult result) {\r
-\r
+ private void onGetUserNameFinish(RemoteOperationResult result) {\r
+ mGetUserNameOpId = -1;\r
if (result.isSuccess()) {\r
boolean success = false;\r
- String username = operation.getUserName();\r
+ String username = (String) result.getData().get(0);\r
\r
if ( mAction == ACTION_CREATE) {\r
mUsernameInput.setText(username);\r
if (sessionCookie != null && sessionCookie.length() > 0) {\r
mAuthToken = sessionCookie;\r
\r
- GetRemoteUserNameOperation getUserOperation = new GetRemoteUserNameOperation(); \r
- OwnCloudClient client = OwnCloudClientFactory.createOwnCloudClient(Uri.parse(mHostBaseUrl), getApplicationContext(), true);\r
- client.setSsoSessionCookie(mAuthToken);\r
- getUserOperation.execute(client, this, mHandler);\r
+// GetRemoteUserNameOperation getUserOperation = new GetRemoteUserNameOperation();\r
+// OwnCloudClient client = OwnCloudClientFactory.createOwnCloudClient(Uri.parse(mHostBaseUrl), getApplicationContext(), true);\r
+// client.setSsoSessionCookie(mAuthToken);\r
+// getUserOperation.execute(client, this, mHandler);\r
+ boolean followRedirects = true;\r
+ getRemoteUserNameOperation(sessionCookie, followRedirects);\r
+ }\r
+ }\r
+ \r
+ private void getRemoteUserNameOperation(String sessionCookie, boolean followRedirects) {\r
+ \r
+ Intent getUserNameIntent = new Intent();\r
+ getUserNameIntent.setAction(OperationsService.ACTION_GET_USER_NAME);\r
+ getUserNameIntent.putExtra(OperationsService.EXTRA_SERVER_URL, mHostBaseUrl);\r
+ getUserNameIntent.putExtra(OperationsService.EXTRA_COOKIE, sessionCookie);\r
+ getUserNameIntent.putExtra(OperationsService.EXTRA_FOLLOW_REDIRECTS, followRedirects);\r
+ \r
+ if (mOperationsServiceBinder != null) {\r
+ Log_OC.wtf(TAG, "starting getRemoteUserNameOperation..." );\r
+ mGetUserNameOpId = mOperationsServiceBinder.newOperation(getUserNameIntent);\r
}\r
-\r
-\r
}\r
\r
\r
onAuthorizationCheckFinish(result);\r
}\r
}\r
- }\r
+ }if (mGetUserNameOpId != -1) {\r
+ RemoteOperationResult result = \r
+ mOperationsServiceBinder.getOperationResultIfFinished(mGetUserNameOpId);\r
+ if (result != null) {\r
+ //Log_OC.wtf(TAG, "found result of operation finished while rotating");\r
+ onGetUserNameFinish(result);\r
+ }\r
+ \r
+ } \r
+ \r
}\r
\r
/** \r
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;
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_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 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,
- boolean followRedirects) {
+ boolean followRedirects, String cookie) {
mAccount = account;
mServerUrl = serverUrl;
mWebDavUrl = webdavUrl;
mPassword = password;
mAuthToken = authToken;
mFollowRedirects = followRedirects;
+ mCookie = cookie;
}
}
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),
(username == null) ? "" : username,
(password == null) ? "" : password,
(authToken == null) ? "" : authToken,
- followRedirects
+ followRedirects,
+ (cookie == null) ? "" : cookie
);
String action = operationIntent.getAction();
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();
}
}
mOwnCloudClient.setBasicCredentials(mLastTarget.mUsername, mLastTarget.mPassword);
} else if (mLastTarget.mAuthToken != "") {
mOwnCloudClient.setBearerCredentials(mLastTarget.mAuthToken);
+ } else if (mLastTarget.mCookie != "") {
+ mOwnCloudClient.setSsoSessionCookie(mLastTarget.mCookie);
}
mStorageManager = null;
}