1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-07 16:06:08 +00:00

Merge pull request #312 from owncloud/fix/parseFileItemSourceAsString

Parse file_source and item_source as string
This commit is contained in:
Abel García de Prada 2020-04-16 09:28:10 +02:00 committed by GitHub
commit c5e64bd7ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 50 additions and 44 deletions

View File

@ -42,8 +42,8 @@ data class RemoteShare(
var sharedWithAdditionalInfo: String = "", var sharedWithAdditionalInfo: String = "",
var name: String = "", var name: String = "",
var shareLink: String = "", var shareLink: String = "",
var fileSource: Long = 0, var fileSource: String = "0",
var itemSource: Long = 0, var itemSource: String = "0",
var shareType: ShareType? = ShareType.UNKNOWN, var shareType: ShareType? = ShareType.UNKNOWN,
var permissions: Int = DEFAULT_PERMISSION, var permissions: Int = DEFAULT_PERMISSION,
var sharedDate: Long = INIT_SHARED_DATE, var sharedDate: Long = INIT_SHARED_DATE,

View File

@ -24,8 +24,6 @@
package com.owncloud.android.lib.resources.shares; package com.owncloud.android.lib.resources.shares;
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
/** /**
* Contains Constants for Share Operation * Contains Constants for Share Operation
* *

View File

@ -110,12 +110,16 @@ class ShareXMLParser {
} }
val name = parser.name val name = parser.name
// read NODE_META and NODE_DATA // read NODE_META and NODE_DATA
if (name.equals(NODE_META, ignoreCase = true)) { when {
readMeta(parser) name.equals(NODE_META, ignoreCase = true) -> {
} else if (name.equals(NODE_DATA, ignoreCase = true)) { readMeta(parser)
shares = readData(parser) }
} else { name.equals(NODE_DATA, ignoreCase = true) -> {
skip(parser) shares = readData(parser)
}
else -> {
skip(parser)
}
} }
} }
return shares return shares
@ -136,17 +140,19 @@ class ShareXMLParser {
} }
val name = parser.name val name = parser.name
if (name.equals(NODE_STATUS, ignoreCase = true)) { when {
status = readNode(parser, NODE_STATUS) name.equals(NODE_STATUS, ignoreCase = true) -> {
status = readNode(parser, NODE_STATUS)
} else if (name.equals(NODE_STATUS_CODE, ignoreCase = true)) { }
statusCode = Integer.parseInt(readNode(parser, NODE_STATUS_CODE)) name.equals(NODE_STATUS_CODE, ignoreCase = true) -> {
statusCode = Integer.parseInt(readNode(parser, NODE_STATUS_CODE))
} else if (name.equals(NODE_MESSAGE, ignoreCase = true)) { }
message = readNode(parser, NODE_MESSAGE) name.equals(NODE_MESSAGE, ignoreCase = true) -> {
message = readNode(parser, NODE_MESSAGE)
} else { }
skip(parser) else -> {
skip(parser)
}
} }
} }
} }
@ -169,27 +175,29 @@ class ShareXMLParser {
continue continue
} }
val name = parser.name val name = parser.name
if (name.equals(NODE_ELEMENT, ignoreCase = true)) { when {
readElement(parser, shares) name.equals(NODE_ELEMENT, ignoreCase = true) -> {
readElement(parser, shares)
} else if (name.equals(NODE_ID, ignoreCase = true)) {// Parse Create XML Response }
share = RemoteShare() name.equals(NODE_ID, ignoreCase = true) -> {// Parse Create XML Response
val value = readNode(parser, NODE_ID) share = RemoteShare()
share.id = Integer.parseInt(value).toLong() val value = readNode(parser, NODE_ID)
share.id = Integer.parseInt(value).toLong()
} else if (name.equals(NODE_URL, ignoreCase = true)) { }
// NOTE: this field is received in all the public shares from OC 9.0.0 name.equals(NODE_URL, ignoreCase = true) -> {
// in previous versions, it's received in the result of POST requests, but not // NOTE: this field is received in all the public shares from OC 9.0.0
// in GET requests // in previous versions, it's received in the result of POST requests, but not
share!!.shareType = ShareType.PUBLIC_LINK // in GET requests
val value = readNode(parser, NODE_URL) share!!.shareType = ShareType.PUBLIC_LINK
share.shareLink = value val value = readNode(parser, NODE_URL)
share.shareLink = value
} else if (name.equals(NODE_TOKEN, ignoreCase = true)) { }
share!!.token = readNode(parser, NODE_TOKEN) name.equals(NODE_TOKEN, ignoreCase = true) -> {
share!!.token = readNode(parser, NODE_TOKEN)
} else { }
skip(parser) else -> {
skip(parser)
}
} }
} }
@ -240,7 +248,7 @@ class ShareXMLParser {
} }
name.equals(NODE_ITEM_SOURCE, ignoreCase = true) -> { name.equals(NODE_ITEM_SOURCE, ignoreCase = true) -> {
remoteShare.itemSource = java.lang.Long.parseLong(readNode(parser, NODE_ITEM_SOURCE)) remoteShare.itemSource = readNode(parser, NODE_ITEM_SOURCE)
} }
name.equals(NODE_PARENT, ignoreCase = true) -> { name.equals(NODE_PARENT, ignoreCase = true) -> {
@ -257,7 +265,7 @@ class ShareXMLParser {
} }
name.equals(NODE_FILE_SOURCE, ignoreCase = true) -> { name.equals(NODE_FILE_SOURCE, ignoreCase = true) -> {
remoteShare.fileSource = java.lang.Long.parseLong(readNode(parser, NODE_FILE_SOURCE)) remoteShare.fileSource = readNode(parser, NODE_FILE_SOURCE)
} }
name.equals(NODE_PATH, ignoreCase = true) -> { name.equals(NODE_PATH, ignoreCase = true) -> {