From 5924b6abbc56a129e9712e55c57f0b021d3f6656 Mon Sep 17 00:00:00 2001 From: masensio Date: Fri, 28 Mar 2014 09:36:12 +0100 Subject: [PATCH] Save version with two dots, for the comparison with MINIMUM_VERSION_FOR_SHARING_API --- .../lib/resources/status/OwnCloudVersion.java | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/com/owncloud/android/lib/resources/status/OwnCloudVersion.java b/src/com/owncloud/android/lib/resources/status/OwnCloudVersion.java index ff14dbc5..40243709 100644 --- a/src/com/owncloud/android/lib/resources/status/OwnCloudVersion.java +++ b/src/com/owncloud/android/lib/resources/status/OwnCloudVersion.java @@ -44,6 +44,7 @@ public class OwnCloudVersion implements Comparable { // for version AA.BB.CC // ie version 2.0.3 will be stored as 0x020003 private int mVersion; + private int mShortVersion; // version with 2 dots or less, for comparing with _MINIMUM_VERSION_FOR_SHARING_API private boolean mIsValid; // not parsed, saved same value offered by the server private String mVersionString; @@ -51,12 +52,14 @@ public class OwnCloudVersion implements Comparable { protected OwnCloudVersion(int version) { mVersion = version; + mShortVersion= version; mIsValid = true; mVersionString = ""; } public OwnCloudVersion(String version){ mVersion = 0; + mShortVersion = 0; mIsValid = false; mCountDots = version.length() - version.replace(".", "").length(); parseVersion(version); @@ -100,32 +103,29 @@ public class OwnCloudVersion implements Comparable { } private int getParsedVersion(String version) throws NumberFormatException { - int versionValue = 0; - + int versionValue = 0; + // get only numeric part - version = version.replaceAll("[^\\d.]", ""); - - String[] nums = version.split("\\."); - for (int i = 0; i < nums.length; i++) { - versionValue += Integer.parseInt(nums[i]); - if (i< nums.length -1) { - versionValue = versionValue << 8; - } - } - - return versionValue; + version = version.replaceAll("[^\\d.]", ""); + + String[] nums = version.split("\\."); + for (int i = 0; i < nums.length; i++) { + versionValue += Integer.parseInt(nums[i]); + if ( i<=2 ) { + mShortVersion = versionValue; + } + + if (i < nums.length -1) { + versionValue = versionValue << 8; + } + } + + return versionValue; } public boolean isSharedSupported() { -// int version = 0; -// try { -// version = getParsedVersion(mVersion); -// -// } catch (Exception e) { -// // nothing to do here -// } - return (mVersion >= MINIMUM_VERSION_FOR_SHARING_API); + return (mShortVersion >= MINIMUM_VERSION_FOR_SHARING_API); }