mirror of
				https://github.com/owncloud/android-library.git
				synced 2025-10-31 10:27:45 +00:00 
			
		
		
		
	Merge branch 'develop' into operations_service
This commit is contained in:
		
						commit
						6b69b5af1a
					
				| @ -81,10 +81,9 @@ public class AccountUtils { | |||||||
|         AccountManager ama = AccountManager.get(context); |         AccountManager ama = AccountManager.get(context); | ||||||
|         String baseurl = ama.getUserData(account, Constants.KEY_OC_BASE_URL); |         String baseurl = ama.getUserData(account, Constants.KEY_OC_BASE_URL); | ||||||
|         String version  = ama.getUserData(account, Constants.KEY_OC_VERSION); |         String version  = ama.getUserData(account, Constants.KEY_OC_VERSION); | ||||||
|         String versionString  = ama.getUserData(account, Constants.KEY_OC_VERSION_STRING); |  | ||||||
|         boolean supportsOAuth = (ama.getUserData(account, Constants.KEY_SUPPORTS_OAUTH2) != null); |         boolean supportsOAuth = (ama.getUserData(account, Constants.KEY_SUPPORTS_OAUTH2) != null); | ||||||
|         boolean supportsSamlSso = (ama.getUserData(account, Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null); |         boolean supportsSamlSso = (ama.getUserData(account, Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null); | ||||||
|         OwnCloudVersion ver = new OwnCloudVersion(version, versionString); |         OwnCloudVersion ver = new OwnCloudVersion(version); | ||||||
|         String webdavpath = getWebdavPath(ver, supportsOAuth, supportsSamlSso); |         String webdavpath = getWebdavPath(ver, supportsOAuth, supportsSamlSso); | ||||||
| 
 | 
 | ||||||
|         if (baseurl == null || webdavpath == null)  |         if (baseurl == null || webdavpath == null)  | ||||||
| @ -149,10 +148,6 @@ public class AccountUtils { | |||||||
| 	     * http://server/path or https://owncloud.server | 	     * http://server/path or https://owncloud.server | ||||||
| 	     */ | 	     */ | ||||||
| 	    public static final String KEY_OC_BASE_URL = "oc_base_url"; | 	    public static final String KEY_OC_BASE_URL = "oc_base_url"; | ||||||
| 	    /** |  | ||||||
| 	     * Version string as shown in the status.php resource in the server side |  | ||||||
| 	     */ |  | ||||||
| 		public static final String KEY_OC_VERSION_STRING = "oc_version_string"; |  | ||||||
| 	    /** | 	    /** | ||||||
| 	     * Flag signaling if the ownCloud server can be accessed with OAuth2 access tokens. | 	     * Flag signaling if the ownCloud server can be accessed with OAuth2 access tokens. | ||||||
| 	     */ | 	     */ | ||||||
|  | |||||||
| @ -58,7 +58,6 @@ public class GetRemoteStatusOperation extends RemoteOperation { | |||||||
|      |      | ||||||
|     private static final String NODE_INSTALLED = "installed"; |     private static final String NODE_INSTALLED = "installed"; | ||||||
|     private static final String NODE_VERSION = "version"; |     private static final String NODE_VERSION = "version"; | ||||||
|     private static final String NODE_VERSIONSTRING = "versionstring"; |  | ||||||
|      |      | ||||||
|     private String mUrl; |     private String mUrl; | ||||||
|     private RemoteOperationResult mLatestResult; |     private RemoteOperationResult mLatestResult; | ||||||
| @ -82,8 +81,7 @@ public class GetRemoteStatusOperation extends RemoteOperation { | |||||||
|                     mLatestResult = new RemoteOperationResult(RemoteOperationResult.ResultCode.INSTANCE_NOT_CONFIGURED); |                     mLatestResult = new RemoteOperationResult(RemoteOperationResult.ResultCode.INSTANCE_NOT_CONFIGURED); | ||||||
|                 } else { |                 } else { | ||||||
|                     String version = json.getString(NODE_VERSION); |                     String version = json.getString(NODE_VERSION); | ||||||
|                     String versionString = json.getString(NODE_VERSIONSTRING); | 					OwnCloudVersion ocVersion = new OwnCloudVersion(version); | ||||||
|                     OwnCloudVersion ocVersion = new OwnCloudVersion(version, versionString); |  | ||||||
|                     if (!ocVersion.isVersionValid()) { |                     if (!ocVersion.isVersionValid()) { | ||||||
|                         mLatestResult = new RemoteOperationResult(RemoteOperationResult.ResultCode.BAD_OC_VERSION); |                         mLatestResult = new RemoteOperationResult(RemoteOperationResult.ResultCode.BAD_OC_VERSION); | ||||||
|                          |                          | ||||||
|  | |||||||
| @ -27,58 +27,58 @@ package com.owncloud.android.lib.resources.status; | |||||||
| 
 | 
 | ||||||
| public class OwnCloudVersion implements Comparable<OwnCloudVersion> { | public class OwnCloudVersion implements Comparable<OwnCloudVersion> { | ||||||
|     public static final OwnCloudVersion owncloud_v1 = new OwnCloudVersion( |     public static final OwnCloudVersion owncloud_v1 = new OwnCloudVersion( | ||||||
|             0x010000); |             0x01000000); | ||||||
|     public static final OwnCloudVersion owncloud_v2 = new OwnCloudVersion( |     public static final OwnCloudVersion owncloud_v2 = new OwnCloudVersion( | ||||||
|             0x020000); |             0x02000000); | ||||||
|     public static final OwnCloudVersion owncloud_v3 = new OwnCloudVersion( |     public static final OwnCloudVersion owncloud_v3 = new OwnCloudVersion( | ||||||
|             0x030000); |             0x03000000); | ||||||
|     public static final OwnCloudVersion owncloud_v4 = new OwnCloudVersion( |     public static final OwnCloudVersion owncloud_v4 = new OwnCloudVersion( | ||||||
|             0x040000); |             0x04000000); | ||||||
|     public static final OwnCloudVersion owncloud_v4_5 = new OwnCloudVersion( |     public static final OwnCloudVersion owncloud_v4_5 = new OwnCloudVersion( | ||||||
|             0x040500); |             0x04050000); | ||||||
|      |      | ||||||
|     public static final int MINIMUM_VERSION_STRING_FOR_SHARING_API = 0x05000D; |     public static final int MINIMUM_VERSION_FOR_SHARING_API = 0x05001B00; // 5.0.27 | ||||||
|  |      | ||||||
|  |     private static final int MAX_DOTS = 3; | ||||||
|      |      | ||||||
|     // format is in version |     // format is in version | ||||||
|     // 0xAABBCC |     // 0xAABBCCDD | ||||||
|     // for version AA.BB.CC |     // for version AA.BB.CC.DD | ||||||
|     // ie version 2.0.3 will be stored as 0x020003 |     // ie version 2.0.3 will be stored as 0x02000300 | ||||||
|     private int mVersion; |     private int mVersion; | ||||||
|     private boolean mIsValid; |     private boolean mIsValid; | ||||||
|     // not parsed, saved same value offered by the server |  | ||||||
|     private String mVersionString; |  | ||||||
| 
 | 
 | ||||||
|     protected OwnCloudVersion(int version) { |     protected OwnCloudVersion(int version) { | ||||||
|         mVersion = version; |         mVersion = version; | ||||||
|         mIsValid = true; |         mIsValid = true; | ||||||
|         mVersionString = ""; |  | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     public OwnCloudVersion(String version, String versionString) { |     public OwnCloudVersion(String version){ | ||||||
|         mVersion = 0; |     	 mVersion = 0; | ||||||
|         mIsValid = false; |          mIsValid = false; | ||||||
|         parseVersionString(version); |          int countDots = version.length() - version.replace(".", "").length(); | ||||||
|         if (versionString != null && versionString.length() > 0) { | 
 | ||||||
|         	mVersionString = versionString; |          // Complete the version. Version must have 3 dots | ||||||
|  |          for (int i = countDots; i < MAX_DOTS; i++) { | ||||||
|  |         	 version = version + ".0"; | ||||||
|  |          } | ||||||
|  |           | ||||||
|  |          parseVersion(version); | ||||||
| 
 | 
 | ||||||
|         } else if (mIsValid) { |  | ||||||
|         	mVersionString = version; |  | ||||||
|         } |  | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     public String toString() { |     public String toString() { | ||||||
|         return ((mVersion >> 16) % 256) + "." + ((mVersion >> 8) % 256) + "." |     	String versionToString = String.valueOf((mVersion >> (8*MAX_DOTS)) % 256); | ||||||
|                 + ((mVersion) % 256); |     	for (int i = MAX_DOTS - 1; i >= 0; i-- ) { | ||||||
|  |     		versionToString = versionToString + "." + String.valueOf((mVersion >> (8*i)) % 256); | ||||||
|  |     	} | ||||||
|  |         return versionToString; | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     public String getVersion() { |     public String getVersion() { | ||||||
|     	return toString(); |     	return toString(); | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     public String getVersionString() { |  | ||||||
|     	return mVersionString; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public boolean isVersionValid() { |     public boolean isVersionValid() { | ||||||
|         return mIsValid; |         return mIsValid; | ||||||
|     } |     } | ||||||
| @ -89,9 +89,9 @@ public class OwnCloudVersion implements Comparable<OwnCloudVersion> { | |||||||
|                 : another.mVersion < mVersion ? 1 : -1; |                 : another.mVersion < mVersion ? 1 : -1; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private void parseVersionString(String versionString) { |     private void parseVersion(String version) { | ||||||
|     	try { |     	try { | ||||||
|     		mVersion = getParsedVersionString(versionString); |     		mVersion = getParsedVersion(version); | ||||||
|     		mIsValid = true; |     		mIsValid = true; | ||||||
|     		 |     		 | ||||||
|     	} catch (Exception e) { |     	} catch (Exception e) { | ||||||
| @ -99,37 +99,26 @@ public class OwnCloudVersion implements Comparable<OwnCloudVersion> { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     private int getParsedVersionString(String versionString) throws NumberFormatException { |     private int getParsedVersion(String version) throws NumberFormatException { | ||||||
| 		int version = 0; |     	int versionValue = 0; | ||||||
| 
 | 
 | ||||||
|     	// get only numeric part  |     	// get only numeric part  | ||||||
| 		versionString = versionString.replaceAll("[^\\d.]", ""); |     	version = version.replaceAll("[^\\d.]", ""); | ||||||
| 
 | 
 | ||||||
| 		String[] nums = versionString.split("\\."); |     	String[] nums = version.split("\\."); | ||||||
| 		if (nums.length > 0) { |     	for (int i = 0; i < nums.length && i <= MAX_DOTS; i++) { | ||||||
| 			version += Integer.parseInt(nums[0]); |     		versionValue += Integer.parseInt(nums[i]); | ||||||
| 		} |     		if (i < nums.length - 1) { | ||||||
| 		version = version << 8; |     			versionValue = versionValue << 8; | ||||||
| 		if (nums.length > 1) { |     		} | ||||||
| 			version += Integer.parseInt(nums[1]); |     	} | ||||||
| 		} | 
 | ||||||
| 		version = version << 8; |     	return versionValue;  | ||||||
| 		if (nums.length > 2) { |  | ||||||
| 			version += Integer.parseInt(nums[2]); |  | ||||||
| 		} |  | ||||||
| 		return version;  |  | ||||||
|     } |     } | ||||||
|      |      | ||||||
|      |      | ||||||
|     public boolean isSharedSupported() { |     public boolean isSharedSupported() { | ||||||
|     	int versionString = 0; |     	return (mVersion >= MINIMUM_VERSION_FOR_SHARING_API); | ||||||
|     	try { |  | ||||||
|     		versionString = getParsedVersionString(mVersionString); |  | ||||||
|     		 |  | ||||||
|     	} catch (Exception e) { |  | ||||||
|     		// nothing to do here |  | ||||||
|     	} |  | ||||||
|     	return (versionString >= MINIMUM_VERSION_STRING_FOR_SHARING_API); |  | ||||||
|     } |     } | ||||||
|      |      | ||||||
|      |      | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user