From 740f0deb82c3c6d23c30ee62adb2823e37213eae Mon Sep 17 00:00:00 2001 From: "David A. Velasco" Date: Fri, 1 Apr 2016 14:57:46 +0200 Subject: [PATCH 1/2] Fixed bug resulting in false success when one of multiple Share properties are updated --- .../lib/resources/shares/UpdateRemoteShareOperation.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java b/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java index aed53074..6f6e0dca 100644 --- a/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java +++ b/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java @@ -217,6 +217,9 @@ public class UpdateRemoteShareOperation extends RemoteOperation { } else { result = new RemoteOperationResult(false, status, put.getResponseHeaders()); } + if (!result.isSuccess()) { + break; + } } } catch (Exception e) { From 19e30a6236ca75a6e223ba6b7b0bd901b6615e12 Mon Sep 17 00:00:00 2001 From: "David A. Velasco" Date: Fri, 1 Apr 2016 14:58:23 +0200 Subject: [PATCH 2/2] Added util method to extract username from saved Account --- .../lib/common/OwnCloudClientFactory.java | 6 +++--- .../lib/common/accounts/AccountUtils.java | 20 +++++++++++++++++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/com/owncloud/android/lib/common/OwnCloudClientFactory.java b/src/com/owncloud/android/lib/common/OwnCloudClientFactory.java index 740aed54..dbddb78f 100644 --- a/src/com/owncloud/android/lib/common/OwnCloudClientFactory.java +++ b/src/com/owncloud/android/lib/common/OwnCloudClientFactory.java @@ -53,7 +53,7 @@ public class OwnCloudClientFactory { /** Default timeout for establishing a connection */ public static final int DEFAULT_CONNECTION_TIMEOUT = 60000; - + /** * Creates a OwnCloudClient setup for an ownCloud account * @@ -83,7 +83,7 @@ public class OwnCloudClientFactory { am.getUserData(account, AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null; OwnCloudClient client = createOwnCloudClient(baseUri, appContext, !isSamlSso); - String username = account.name.substring(0, account.name.lastIndexOf('@')); + String username = AccountUtils.getUsernameForAccount(account); if (isOauth2) { String accessToken = am.blockingGetAuthToken( account, @@ -137,7 +137,7 @@ public class OwnCloudClientFactory { am.getUserData(account, AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null; OwnCloudClient client = createOwnCloudClient(baseUri, appContext, !isSamlSso); - String username = account.name.substring(0, account.name.lastIndexOf('@')); + String username = AccountUtils.getUsernameForAccount(account); if (isOauth2) { // TODO avoid a call to getUserData here AccountManagerFuture future = am.getAuthToken( account, diff --git a/src/com/owncloud/android/lib/common/accounts/AccountUtils.java b/src/com/owncloud/android/lib/common/accounts/AccountUtils.java index 62eeed7b..a13225ce 100644 --- a/src/com/owncloud/android/lib/common/accounts/AccountUtils.java +++ b/src/com/owncloud/android/lib/common/accounts/AccountUtils.java @@ -145,7 +145,23 @@ public class AccountUtils { return baseurl; } - + + + /** + * Get the username corresponding to an OC account. + * + * @param account An OC account + * @return Username for the given account, extracted from the account.name + */ + public static String getUsernameForAccount(Account account) { + String username = null; + try { + username = account.name.substring(0, account.name.lastIndexOf('@')); + } catch (Exception e) { + Log_OC.e(TAG, "Couldn't get a username for the given account", e); + } + return username; + } /** * @@ -168,7 +184,7 @@ public class AccountUtils { account, AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null; - String username = account.name.substring(0, account.name.lastIndexOf('@')); + String username = AccountUtils.getUsernameForAccount(account); if (isOauth2) { String accessToken = am.blockingGetAuthToken(