diff --git a/src/com/owncloud/android/lib/common/OwnCloudClient.java b/src/com/owncloud/android/lib/common/OwnCloudClient.java index 60c84851..8ef9cd6e 100644 --- a/src/com/owncloud/android/lib/common/OwnCloudClient.java +++ b/src/com/owncloud/android/lib/common/OwnCloudClient.java @@ -58,6 +58,10 @@ import com.owncloud.android.lib.resources.status.OwnCloudVersion; public class OwnCloudClient extends HttpClient { + public static final String WEBDAV_PATH_4_0 = "/remote.php/webdav"; + public static final String STATUS_PATH = "/status.php"; + public static final String FILES_WEB_PATH = "/index.php/apps/files"; + private static final String TAG = OwnCloudClient.class.getSimpleName(); private static final int MAX_REDIRECTIONS_COUNT = 3; private static final int MAX_REPEAT_COUNT_WITH_FRESH_CREDENTIALS = 1; @@ -322,9 +326,7 @@ public class OwnCloudClient extends HttpClient { destination = method.getRequestHeader("destination"); } if (destination != null) { - int suffixIndex = locationStr.lastIndexOf( - AccountUtils.WEBDAV_PATH_4_0 - ); + int suffixIndex = locationStr.lastIndexOf(WEBDAV_PATH_4_0); String redirectionBase = locationStr.substring(0, suffixIndex); String destinationStr = destination.getValue(); @@ -378,7 +380,7 @@ public class OwnCloudClient extends HttpClient { } public Uri getWebdavUri() { - return Uri.parse(mBaseUri + AccountUtils.WEBDAV_PATH_4_0); + return Uri.parse(mBaseUri + WEBDAV_PATH_4_0); } /** diff --git a/src/com/owncloud/android/lib/common/accounts/AccountUtils.java b/src/com/owncloud/android/lib/common/accounts/AccountUtils.java index f59cfd59..a93ad141 100644 --- a/src/com/owncloud/android/lib/common/accounts/AccountUtils.java +++ b/src/com/owncloud/android/lib/common/accounts/AccountUtils.java @@ -51,9 +51,6 @@ public class AccountUtils { private static final String TAG = AccountUtils.class.getSimpleName(); - public static final String WEBDAV_PATH_4_0 = "/remote.php/webdav"; - public static final String STATUS_PATH = "/status.php"; - /** * Constructs full url to host and webdav resource basing on host version * @@ -65,7 +62,7 @@ public class AccountUtils { public static String getWebDavUrlForAccount(Context context, Account account) throws AccountNotFoundException { - return getBaseUrlForAccount(context, account) + WEBDAV_PATH_4_0; + return getBaseUrlForAccount(context, account) + OwnCloudClient.WEBDAV_PATH_4_0; } @@ -138,13 +135,13 @@ public class AccountUtils { OwnCloudCredentials credentials = null; AccountManager am = AccountManager.get(context); - boolean isOauth2 = am.getUserData( - account, - AccountUtils.Constants.KEY_SUPPORTS_OAUTH2) != null; + String supportsOAuth2 = am.getUserData(account, AccountUtils.Constants.KEY_SUPPORTS_OAUTH2); + boolean isOauth2 = supportsOAuth2 != null && supportsOAuth2.equals("TRUE"); - boolean isSamlSso = am.getUserData( - account, - AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null; + String supportsSamlSSo = am.getUserData(account, + AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO); + + boolean isSamlSso = supportsSamlSSo != null && supportsSamlSSo.equals("TRUE"); String username = AccountUtils.getUsernameForAccount(account); OwnCloudVersion version = new OwnCloudVersion(am.getUserData(account, Constants.KEY_OC_VERSION)); diff --git a/src/com/owncloud/android/lib/common/authentication/oauth/OAuth2QueryParser.java b/src/com/owncloud/android/lib/common/authentication/oauth/OAuth2QueryParser.java index 24825d2a..353cb7b5 100644 --- a/src/com/owncloud/android/lib/common/authentication/oauth/OAuth2QueryParser.java +++ b/src/com/owncloud/android/lib/common/authentication/oauth/OAuth2QueryParser.java @@ -45,26 +45,28 @@ public class OAuth2QueryParser { public Map parse(String query) { mOAuth2ParsedAuthorizationResponse.clear(); - String[] pairs = query.split("&"); - int i = 0; - String key = ""; - String value; - while (pairs.length > i) { - int j = 0; - String[] part = pairs[i].split("="); - while (part.length > j) { - String p = part[j]; - if (j == 0) { - key = p; - } else if (j == 1) { - value = p; - mOAuth2ParsedAuthorizationResponse.put(key, value); - } + if (query != null) { + String[] pairs = query.split("&"); + int i = 0; + String key = ""; + String value; + while (pairs.length > i) { + int j = 0; + String[] part = pairs[i].split("="); + while (part.length > j) { + String p = part[j]; + if (j == 0) { + key = p; + } else if (j == 1) { + value = p; + mOAuth2ParsedAuthorizationResponse.put(key, value); + } - Log_OC.v(TAG, "[" + i + "," + j + "] = " + p); - j++; + Log_OC.v(TAG, "[" + i + "," + j + "] = " + p); + j++; + } + i++; } - i++; } return mOAuth2ParsedAuthorizationResponse; diff --git a/src/com/owncloud/android/lib/resources/status/GetRemoteStatusOperation.java b/src/com/owncloud/android/lib/resources/status/GetRemoteStatusOperation.java index 10e1f1b7..a4f32168 100644 --- a/src/com/owncloud/android/lib/resources/status/GetRemoteStatusOperation.java +++ b/src/com/owncloud/android/lib/resources/status/GetRemoteStatusOperation.java @@ -78,7 +78,7 @@ public class GetRemoteStatusOperation extends RemoteOperation { GetMethod get = null; String baseUrlSt = client.getBaseUri().toString(); try { - get = new GetMethod(baseUrlSt + AccountUtils.STATUS_PATH); + get = new GetMethod(baseUrlSt + OwnCloudClient.STATUS_PATH); HttpParams params = get.getParams().getDefaultParams(); params.setParameter(HttpMethodParams.USER_AGENT, diff --git a/test_client/tests/src/com/owncloud/android/lib/test_project/test/OwnCloudClientTest.java b/test_client/tests/src/com/owncloud/android/lib/test_project/test/OwnCloudClientTest.java index 8210c3de..206fa0cc 100644 --- a/test_client/tests/src/com/owncloud/android/lib/test_project/test/OwnCloudClientTest.java +++ b/test_client/tests/src/com/owncloud/android/lib/test_project/test/OwnCloudClientTest.java @@ -297,7 +297,7 @@ public class OwnCloudClientTest extends AndroidTestCase { client.setCredentials(OwnCloudCredentialsFactory.newBearerCredentials("user", "fakeToken")); Uri webdavUri = client.getWebdavUri(); assertTrue("WebDAV URI does not point to the right entry point", - webdavUri.getPath().endsWith(AccountUtils.WEBDAV_PATH_4_0)); + webdavUri.getPath().endsWith(OwnCloudClient.WEBDAV_PATH_4_0)); assertTrue("WebDAV URI is not a subpath of base URI", webdavUri.getAuthority().equals(mServerUri.getAuthority()) && webdavUri.getPath().startsWith(mServerUri.getPath())); @@ -306,7 +306,7 @@ public class OwnCloudClientTest extends AndroidTestCase { mUsername, mPassword)); webdavUri = client.getWebdavUri(); assertTrue("WebDAV URI does not point to the right entry point", - webdavUri.getPath().endsWith(AccountUtils.WEBDAV_PATH_4_0)); + webdavUri.getPath().endsWith(OwnCloudClient.WEBDAV_PATH_4_0)); PropFindMethod propfind = null; try { propfind = new PropFindMethod(webdavUri + "/",