Skip to content
This repository was archived by the owner on Mar 19, 2024. It is now read-only.

Commit c5e64bd

Browse files
authored
Merge pull request #312 from owncloud/fix/parseFileItemSourceAsString
Parse file_source and item_source as string
2 parents 96ea90e + 9ec6e74 commit c5e64bd

File tree

3 files changed

+50
-44
lines changed

3 files changed

+50
-44
lines changed

owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ data class RemoteShare(
4242
var sharedWithAdditionalInfo: String = "",
4343
var name: String = "",
4444
var shareLink: String = "",
45-
var fileSource: Long = 0,
46-
var itemSource: Long = 0,
45+
var fileSource: String = "0",
46+
var itemSource: String = "0",
4747
var shareType: ShareType? = ShareType.UNKNOWN,
4848
var permissions: Int = DEFAULT_PERMISSION,
4949
var sharedDate: Long = INIT_SHARED_DATE,

owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareUtils.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424

2525
package com.owncloud.android.lib.resources.shares;
2626

27-
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
28-
2927
/**
3028
* Contains Constants for Share Operation
3129
*

owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareXMLParser.kt

Lines changed: 48 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,16 @@ class ShareXMLParser {
110110
}
111111
val name = parser.name
112112
// read NODE_META and NODE_DATA
113-
if (name.equals(NODE_META, ignoreCase = true)) {
114-
readMeta(parser)
115-
} else if (name.equals(NODE_DATA, ignoreCase = true)) {
116-
shares = readData(parser)
117-
} else {
118-
skip(parser)
113+
when {
114+
name.equals(NODE_META, ignoreCase = true) -> {
115+
readMeta(parser)
116+
}
117+
name.equals(NODE_DATA, ignoreCase = true) -> {
118+
shares = readData(parser)
119+
}
120+
else -> {
121+
skip(parser)
122+
}
119123
}
120124
}
121125
return shares
@@ -136,17 +140,19 @@ class ShareXMLParser {
136140
}
137141
val name = parser.name
138142

139-
if (name.equals(NODE_STATUS, ignoreCase = true)) {
140-
status = readNode(parser, NODE_STATUS)
141-
142-
} else if (name.equals(NODE_STATUS_CODE, ignoreCase = true)) {
143-
statusCode = Integer.parseInt(readNode(parser, NODE_STATUS_CODE))
144-
145-
} else if (name.equals(NODE_MESSAGE, ignoreCase = true)) {
146-
message = readNode(parser, NODE_MESSAGE)
147-
148-
} else {
149-
skip(parser)
143+
when {
144+
name.equals(NODE_STATUS, ignoreCase = true) -> {
145+
status = readNode(parser, NODE_STATUS)
146+
}
147+
name.equals(NODE_STATUS_CODE, ignoreCase = true) -> {
148+
statusCode = Integer.parseInt(readNode(parser, NODE_STATUS_CODE))
149+
}
150+
name.equals(NODE_MESSAGE, ignoreCase = true) -> {
151+
message = readNode(parser, NODE_MESSAGE)
152+
}
153+
else -> {
154+
skip(parser)
155+
}
150156
}
151157
}
152158
}
@@ -169,27 +175,29 @@ class ShareXMLParser {
169175
continue
170176
}
171177
val name = parser.name
172-
if (name.equals(NODE_ELEMENT, ignoreCase = true)) {
173-
readElement(parser, shares)
174-
175-
} else if (name.equals(NODE_ID, ignoreCase = true)) {// Parse Create XML Response
176-
share = RemoteShare()
177-
val value = readNode(parser, NODE_ID)
178-
share.id = Integer.parseInt(value).toLong()
179-
180-
} else if (name.equals(NODE_URL, ignoreCase = true)) {
181-
// NOTE: this field is received in all the public shares from OC 9.0.0
182-
// in previous versions, it's received in the result of POST requests, but not
183-
// in GET requests
184-
share!!.shareType = ShareType.PUBLIC_LINK
185-
val value = readNode(parser, NODE_URL)
186-
share.shareLink = value
187-
188-
} else if (name.equals(NODE_TOKEN, ignoreCase = true)) {
189-
share!!.token = readNode(parser, NODE_TOKEN)
190-
191-
} else {
192-
skip(parser)
178+
when {
179+
name.equals(NODE_ELEMENT, ignoreCase = true) -> {
180+
readElement(parser, shares)
181+
}
182+
name.equals(NODE_ID, ignoreCase = true) -> {// Parse Create XML Response
183+
share = RemoteShare()
184+
val value = readNode(parser, NODE_ID)
185+
share.id = Integer.parseInt(value).toLong()
186+
}
187+
name.equals(NODE_URL, ignoreCase = true) -> {
188+
// NOTE: this field is received in all the public shares from OC 9.0.0
189+
// in previous versions, it's received in the result of POST requests, but not
190+
// in GET requests
191+
share!!.shareType = ShareType.PUBLIC_LINK
192+
val value = readNode(parser, NODE_URL)
193+
share.shareLink = value
194+
}
195+
name.equals(NODE_TOKEN, ignoreCase = true) -> {
196+
share!!.token = readNode(parser, NODE_TOKEN)
197+
}
198+
else -> {
199+
skip(parser)
200+
}
193201
}
194202
}
195203

@@ -240,7 +248,7 @@ class ShareXMLParser {
240248
}
241249

242250
name.equals(NODE_ITEM_SOURCE, ignoreCase = true) -> {
243-
remoteShare.itemSource = java.lang.Long.parseLong(readNode(parser, NODE_ITEM_SOURCE))
251+
remoteShare.itemSource = readNode(parser, NODE_ITEM_SOURCE)
244252
}
245253

246254
name.equals(NODE_PARENT, ignoreCase = true) -> {
@@ -257,7 +265,7 @@ class ShareXMLParser {
257265
}
258266

259267
name.equals(NODE_FILE_SOURCE, ignoreCase = true) -> {
260-
remoteShare.fileSource = java.lang.Long.parseLong(readNode(parser, NODE_FILE_SOURCE))
268+
remoteShare.fileSource = readNode(parser, NODE_FILE_SOURCE)
261269
}
262270

263271
name.equals(NODE_PATH, ignoreCase = true) -> {

0 commit comments

Comments
 (0)