From 3441f4048c7210d95bde115d05e7a7627a67c8b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Abel=20Garci=CC=81a=20de=20Prada?= <agdeprada@izertis.com>
Date: Tue, 3 Nov 2020 11:46:20 +0100
Subject: [PATCH 1/2] Convert long shareId to String

---
 .../lib/resources/shares/GetRemoteShareOperation.java     | 6 +++---
 .../owncloud/android/lib/resources/shares/RemoteShare.kt  | 5 ++---
 .../lib/resources/shares/RemoveRemoteShareOperation.kt    | 4 ++--
 .../android/lib/resources/shares/ShareXMLParser.kt        | 8 +++-----
 .../lib/resources/shares/UpdateRemoteShareOperation.kt    | 2 +-
 .../android/lib/resources/shares/services/ShareService.kt | 4 ++--
 .../shares/services/implementation/OCShareService.kt      | 4 ++--
 7 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/GetRemoteShareOperation.java b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/GetRemoteShareOperation.java
index 4b815df1..9e71252e 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/GetRemoteShareOperation.java
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/GetRemoteShareOperation.java
@@ -46,9 +46,9 @@ import java.net.URL;
 
 public class GetRemoteShareOperation extends RemoteOperation<ShareParserResult> {
 
-    private long mRemoteId;
+    private String mRemoteId;
 
-    public GetRemoteShareOperation(long remoteId) {
+    public GetRemoteShareOperation(String remoteId) {
         mRemoteId = remoteId;
     }
 
@@ -60,7 +60,7 @@ public class GetRemoteShareOperation extends RemoteOperation<ShareParserResult>
             Uri requestUri = client.getBaseUri();
             Uri.Builder uriBuilder = requestUri.buildUpon();
             uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH);
-            uriBuilder.appendEncodedPath(Long.toString(mRemoteId));
+            uriBuilder.appendEncodedPath(mRemoteId);
 
             GetMethod getMethod = new GetMethod(new URL(uriBuilder.build().toString()));
             getMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE);
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.kt
index 21e3835b..83149d8e 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.kt
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.kt
@@ -34,7 +34,7 @@ import java.io.File
  * @author David González Verdugo
  */
 data class RemoteShare(
-    var id: Long = 0,
+    var id: String = "0",
     var shareWith: String = "",
     var path: String = "",
     var token: String = "",
@@ -49,8 +49,7 @@ data class RemoteShare(
     var sharedDate: Long = INIT_SHARED_DATE,
     var expirationDate: Long = INIT_EXPIRATION_DATE_IN_MILLIS,
     var isFolder: Boolean = path.endsWith(File.separator),
-    var userId: Long = 0,
-    val isValid: Boolean = id > -1
+    var userId: Long = 0
 ) {
 
     companion object {
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoveRemoteShareOperation.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoveRemoteShareOperation.kt
index 5fa18169..a7d18e5d 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoveRemoteShareOperation.kt
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoveRemoteShareOperation.kt
@@ -48,7 +48,7 @@ import java.net.URL
  *
  * @param remoteShareId Share ID
  */
-class RemoveRemoteShareOperation(private val remoteShareId: Long) : RemoteOperation<ShareParserResult>() {
+class RemoveRemoteShareOperation(private val remoteShareId: String) : RemoteOperation<ShareParserResult>() {
 
     override fun run(client: OwnCloudClient): RemoteOperationResult<ShareParserResult> {
         var result: RemoteOperationResult<ShareParserResult>
@@ -57,7 +57,7 @@ class RemoveRemoteShareOperation(private val remoteShareId: Long) : RemoteOperat
             val requestUri = client.baseUri
             val uriBuilder = requestUri.buildUpon()
             uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH)
-            uriBuilder.appendEncodedPath(remoteShareId.toString())
+            uriBuilder.appendEncodedPath(remoteShareId)
 
             val deleteMethod = DeleteMethod(
                 URL(uriBuilder.build().toString())
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareXMLParser.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareXMLParser.kt
index a63c35a7..75160d8d 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareXMLParser.kt
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareXMLParser.kt
@@ -179,7 +179,7 @@ class ShareXMLParser {
                 name.equals(NODE_ID, ignoreCase = true) -> {// Parse Create XML Response
                     share = RemoteShare()
                     val value = readNode(parser, NODE_ID)
-                    share.id = Integer.parseInt(value).toLong()
+                    share.id = value
                 }
                 name.equals(NODE_URL, ignoreCase = true) -> {
                     // NOTE: this field is received in all the public shares from OC 9.0.0
@@ -236,7 +236,7 @@ class ShareXMLParser {
                 }
 
                 name.equals(NODE_ID, ignoreCase = true) -> {
-                    remoteShare.id = Integer.parseInt(readNode(parser, NODE_ID)).toLong()
+                    remoteShare.id = readNode(parser, NODE_ID)
                 }
 
                 name.equals(NODE_ITEM_TYPE, ignoreCase = true) -> {
@@ -320,9 +320,7 @@ class ShareXMLParser {
             }
         }
 
-        if (remoteShare.isValid) {
-            shares.add(remoteShare)
-        }
+        shares.add(remoteShare)
     }
 
     private fun fixPathForFolder(share: RemoteShare) {
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.kt
index e2af8959..0df80bc9 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.kt
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.kt
@@ -55,7 +55,7 @@ class UpdateRemoteShareOperation
     /**
      * @param remoteId Identifier of the share to update.
      */
-    private val remoteId: Long
+    private val remoteId: String
 
 ) : RemoteOperation<ShareParserResult>() {
     /**
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/ShareService.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/ShareService.kt
index 38980256..caca3cd8 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/ShareService.kt
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/ShareService.kt
@@ -44,7 +44,7 @@ interface ShareService : Service {
     ): RemoteOperationResult<ShareParserResult>
 
     fun updateShare(
-        remoteId: Long,
+        remoteId: String,
         name: String,
         password: String?,
         expirationDate: Long,
@@ -52,5 +52,5 @@ interface ShareService : Service {
         publicUpload: Boolean
     ): RemoteOperationResult<ShareParserResult>
 
-    fun deleteShare(remoteId: Long): RemoteOperationResult<ShareParserResult>
+    fun deleteShare(remoteId: String): RemoteOperationResult<ShareParserResult>
 }
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/implementation/OCShareService.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/implementation/OCShareService.kt
index a22919bf..109c2204 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/implementation/OCShareService.kt
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/implementation/OCShareService.kt
@@ -66,7 +66,7 @@ class OCShareService(override val client: OwnCloudClient) :
         }.execute(client)
 
     override fun updateShare(
-        remoteId: Long,
+        remoteId: String,
         name: String,
         password: String?,
         expirationDate: Long,
@@ -84,7 +84,7 @@ class OCShareService(override val client: OwnCloudClient) :
             this.retrieveShareDetails = true
         }.execute(client)
 
-    override fun deleteShare(remoteId: Long): RemoteOperationResult<ShareParserResult> =
+    override fun deleteShare(remoteId: String): RemoteOperationResult<ShareParserResult> =
         RemoveRemoteShareOperation(
             remoteId
         ).execute(client)

From 20c7c88a1fbdf6ecf24498f8ff0baf45e9c23ed2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Abel=20Garci=CC=81a=20de=20Prada?= <agdeprada@izertis.com>
Date: Tue, 3 Nov 2020 18:31:51 +0100
Subject: [PATCH 2/2] Remove item_source and file_source

---
 .../android/lib/resources/shares/RemoteShare.kt        |  5 +----
 .../android/lib/resources/shares/ShareXMLParser.kt     | 10 ----------
 2 files changed, 1 insertion(+), 14 deletions(-)

diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.kt
index 83149d8e..320da5fc 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.kt
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.kt
@@ -42,14 +42,11 @@ data class RemoteShare(
     var sharedWithAdditionalInfo: String = "",
     var name: String = "",
     var shareLink: String = "",
-    var fileSource: String = "0",
-    var itemSource: String = "0",
     var shareType: ShareType? = ShareType.UNKNOWN,
     var permissions: Int = DEFAULT_PERMISSION,
     var sharedDate: Long = INIT_SHARED_DATE,
     var expirationDate: Long = INIT_EXPIRATION_DATE_IN_MILLIS,
-    var isFolder: Boolean = path.endsWith(File.separator),
-    var userId: Long = 0
+    var isFolder: Boolean = path.endsWith(File.separator)
 ) {
 
     companion object {
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareXMLParser.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareXMLParser.kt
index 75160d8d..389d6f3f 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareXMLParser.kt
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareXMLParser.kt
@@ -244,10 +244,6 @@ class ShareXMLParser {
                     fixPathForFolder(remoteShare)
                 }
 
-                name.equals(NODE_ITEM_SOURCE, ignoreCase = true) -> {
-                    remoteShare.itemSource = readNode(parser, NODE_ITEM_SOURCE)
-                }
-
                 name.equals(NODE_PARENT, ignoreCase = true) -> {
                     readNode(parser, NODE_PARENT)
                 }
@@ -261,10 +257,6 @@ class ShareXMLParser {
                     remoteShare.shareWith = readNode(parser, NODE_SHARE_WITH)
                 }
 
-                name.equals(NODE_FILE_SOURCE, ignoreCase = true) -> {
-                    remoteShare.fileSource = readNode(parser, NODE_FILE_SOURCE)
-                }
-
                 name.equals(NODE_PATH, ignoreCase = true) -> {
                     remoteShare.path = readNode(parser, NODE_PATH)
                     fixPathForFolder(remoteShare)
@@ -401,11 +393,9 @@ class ShareXMLParser {
         private const val NODE_ELEMENT = "element"
         private const val NODE_ID = "id"
         private const val NODE_ITEM_TYPE = "item_type"
-        private const val NODE_ITEM_SOURCE = "item_source"
         private const val NODE_PARENT = "parent"
         private const val NODE_SHARE_TYPE = "share_type"
         private const val NODE_SHARE_WITH = "share_with"
-        private const val NODE_FILE_SOURCE = "file_source"
         private const val NODE_PATH = "path"
         private const val NODE_PERMISSIONS = "permissions"
         private const val NODE_STIME = "stime"