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

Merge pull request #355 from owncloud/fix/parse_shareid_as_string

Parse shareId as String
This commit is contained in:
Abel García de Prada 2020-12-01 17:28:10 +01:00 committed by GitHub
commit a18528effc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 15 additions and 31 deletions

View File

@ -46,9 +46,9 @@ import java.net.URL;
public class GetRemoteShareOperation extends RemoteOperation<ShareParserResult> { public class GetRemoteShareOperation extends RemoteOperation<ShareParserResult> {
private long mRemoteId; private String mRemoteId;
public GetRemoteShareOperation(long remoteId) { public GetRemoteShareOperation(String remoteId) {
mRemoteId = remoteId; mRemoteId = remoteId;
} }
@ -60,7 +60,7 @@ public class GetRemoteShareOperation extends RemoteOperation<ShareParserResult>
Uri requestUri = client.getBaseUri(); Uri requestUri = client.getBaseUri();
Uri.Builder uriBuilder = requestUri.buildUpon(); Uri.Builder uriBuilder = requestUri.buildUpon();
uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH); uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH);
uriBuilder.appendEncodedPath(Long.toString(mRemoteId)); uriBuilder.appendEncodedPath(mRemoteId);
GetMethod getMethod = new GetMethod(new URL(uriBuilder.build().toString())); GetMethod getMethod = new GetMethod(new URL(uriBuilder.build().toString()));
getMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); getMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE);

View File

@ -34,7 +34,7 @@ import java.io.File
* @author David González Verdugo * @author David González Verdugo
*/ */
data class RemoteShare( data class RemoteShare(
var id: Long = 0, var id: String = "0",
var shareWith: String = "", var shareWith: String = "",
var path: String = "", var path: String = "",
var token: String = "", var token: String = "",
@ -42,15 +42,11 @@ data class RemoteShare(
var sharedWithAdditionalInfo: String = "", var sharedWithAdditionalInfo: String = "",
var name: String = "", var name: String = "",
var shareLink: String = "", var shareLink: String = "",
var fileSource: String = "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,
var expirationDate: Long = INIT_EXPIRATION_DATE_IN_MILLIS, var expirationDate: Long = INIT_EXPIRATION_DATE_IN_MILLIS,
var isFolder: Boolean = path.endsWith(File.separator), var isFolder: Boolean = path.endsWith(File.separator)
var userId: Long = 0,
val isValid: Boolean = id > -1
) { ) {
companion object { companion object {

View File

@ -48,7 +48,7 @@ import java.net.URL
* *
* @param remoteShareId Share ID * @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> { override fun run(client: OwnCloudClient): RemoteOperationResult<ShareParserResult> {
var result: RemoteOperationResult<ShareParserResult> var result: RemoteOperationResult<ShareParserResult>
@ -57,7 +57,7 @@ class RemoveRemoteShareOperation(private val remoteShareId: Long) : RemoteOperat
val requestUri = client.baseUri val requestUri = client.baseUri
val uriBuilder = requestUri.buildUpon() val uriBuilder = requestUri.buildUpon()
uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH) uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH)
uriBuilder.appendEncodedPath(remoteShareId.toString()) uriBuilder.appendEncodedPath(remoteShareId)
val deleteMethod = DeleteMethod( val deleteMethod = DeleteMethod(
URL(uriBuilder.build().toString()) URL(uriBuilder.build().toString())

View File

@ -179,7 +179,7 @@ class ShareXMLParser {
name.equals(NODE_ID, ignoreCase = true) -> {// Parse Create XML Response name.equals(NODE_ID, ignoreCase = true) -> {// Parse Create XML Response
share = RemoteShare() share = RemoteShare()
val value = readNode(parser, NODE_ID) val value = readNode(parser, NODE_ID)
share.id = Integer.parseInt(value).toLong() share.id = value
} }
name.equals(NODE_URL, ignoreCase = true) -> { name.equals(NODE_URL, ignoreCase = true) -> {
// NOTE: this field is received in all the public shares from OC 9.0.0 // 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) -> { 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) -> { name.equals(NODE_ITEM_TYPE, ignoreCase = true) -> {
@ -244,10 +244,6 @@ class ShareXMLParser {
fixPathForFolder(remoteShare) fixPathForFolder(remoteShare)
} }
name.equals(NODE_ITEM_SOURCE, ignoreCase = true) -> {
remoteShare.itemSource = readNode(parser, NODE_ITEM_SOURCE)
}
name.equals(NODE_PARENT, ignoreCase = true) -> { name.equals(NODE_PARENT, ignoreCase = true) -> {
readNode(parser, NODE_PARENT) readNode(parser, NODE_PARENT)
} }
@ -261,10 +257,6 @@ class ShareXMLParser {
remoteShare.shareWith = readNode(parser, NODE_SHARE_WITH) 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) -> { name.equals(NODE_PATH, ignoreCase = true) -> {
remoteShare.path = readNode(parser, NODE_PATH) remoteShare.path = readNode(parser, NODE_PATH)
fixPathForFolder(remoteShare) fixPathForFolder(remoteShare)
@ -320,9 +312,7 @@ class ShareXMLParser {
} }
} }
if (remoteShare.isValid) { shares.add(remoteShare)
shares.add(remoteShare)
}
} }
private fun fixPathForFolder(share: RemoteShare) { private fun fixPathForFolder(share: RemoteShare) {
@ -403,11 +393,9 @@ class ShareXMLParser {
private const val NODE_ELEMENT = "element" private const val NODE_ELEMENT = "element"
private const val NODE_ID = "id" private const val NODE_ID = "id"
private const val NODE_ITEM_TYPE = "item_type" 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_PARENT = "parent"
private const val NODE_SHARE_TYPE = "share_type" private const val NODE_SHARE_TYPE = "share_type"
private const val NODE_SHARE_WITH = "share_with" 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_PATH = "path"
private const val NODE_PERMISSIONS = "permissions" private const val NODE_PERMISSIONS = "permissions"
private const val NODE_STIME = "stime" private const val NODE_STIME = "stime"

View File

@ -55,7 +55,7 @@ class UpdateRemoteShareOperation
/** /**
* @param remoteId Identifier of the share to update. * @param remoteId Identifier of the share to update.
*/ */
private val remoteId: Long private val remoteId: String
) : RemoteOperation<ShareParserResult>() { ) : RemoteOperation<ShareParserResult>() {
/** /**

View File

@ -44,7 +44,7 @@ interface ShareService : Service {
): RemoteOperationResult<ShareParserResult> ): RemoteOperationResult<ShareParserResult>
fun updateShare( fun updateShare(
remoteId: Long, remoteId: String,
name: String, name: String,
password: String?, password: String?,
expirationDate: Long, expirationDate: Long,
@ -52,5 +52,5 @@ interface ShareService : Service {
publicUpload: Boolean publicUpload: Boolean
): RemoteOperationResult<ShareParserResult> ): RemoteOperationResult<ShareParserResult>
fun deleteShare(remoteId: Long): RemoteOperationResult<ShareParserResult> fun deleteShare(remoteId: String): RemoteOperationResult<ShareParserResult>
} }

View File

@ -66,7 +66,7 @@ class OCShareService(override val client: OwnCloudClient) :
}.execute(client) }.execute(client)
override fun updateShare( override fun updateShare(
remoteId: Long, remoteId: String,
name: String, name: String,
password: String?, password: String?,
expirationDate: Long, expirationDate: Long,
@ -84,7 +84,7 @@ class OCShareService(override val client: OwnCloudClient) :
this.retrieveShareDetails = true this.retrieveShareDetails = true
}.execute(client) }.execute(client)
override fun deleteShare(remoteId: Long): RemoteOperationResult<ShareParserResult> = override fun deleteShare(remoteId: String): RemoteOperationResult<ShareParserResult> =
RemoveRemoteShareOperation( RemoveRemoteShareOperation(
remoteId remoteId
).execute(client) ).execute(client)