From 858d5f106468ab2b78ee8f3ec6eeb8b00e8ff9a5 Mon Sep 17 00:00:00 2001 From: "David A. Velasco" Date: Thu, 6 Feb 2014 19:52:55 +0100 Subject: [PATCH] Fixed path of shares on folders, and changed 'drectory' by 'folder' --- .../android/lib/operations/common/OCShare.java | 16 ++++++++-------- .../lib/utils/GetSharesForFileXMLParser.java | 2 +- .../android/lib/utils/ShareXMLParser.java | 10 +++++++++- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/com/owncloud/android/lib/operations/common/OCShare.java b/src/com/owncloud/android/lib/operations/common/OCShare.java index d7f051f4..898c0d18 100644 --- a/src/com/owncloud/android/lib/operations/common/OCShare.java +++ b/src/com/owncloud/android/lib/operations/common/OCShare.java @@ -52,7 +52,7 @@ public class OCShare implements Parcelable{ private long mExpirationDate; private String mToken; private String mSharedWithDisplayName; - private boolean mIsDirectory; + private boolean mIsFolder; private long mUserId; private long mIdRemoteShared; private String mShareLink; @@ -86,7 +86,7 @@ public class OCShare implements Parcelable{ mExpirationDate = 0; mToken = null; mSharedWithDisplayName = null; - mIsDirectory = false; + mIsFolder = false; mUserId = -1; mIdRemoteShared = -1; mShareLink = null; @@ -182,12 +182,12 @@ public class OCShare implements Parcelable{ this.mSharedWithDisplayName = sharedWithDisplayName; } - public boolean isDirectory() { - return mIsDirectory; + public boolean isFolder() { + return mIsFolder; } - public void setIsDirectory(boolean isDirectory) { - this.mIsDirectory = isDirectory; + public void setIsFolder(boolean isFolder) { + this.mIsFolder = isFolder; } public long getUserId() { @@ -255,7 +255,7 @@ public class OCShare implements Parcelable{ mExpirationDate = source.readLong(); mToken = source.readString(); mSharedWithDisplayName = source.readString(); - mIsDirectory = source.readInt() == 0; + mIsFolder = source.readInt() == 0; mUserId = source.readLong(); mIdRemoteShared = source.readLong(); mShareLink = source.readString(); @@ -281,7 +281,7 @@ public class OCShare implements Parcelable{ dest.writeLong(mExpirationDate); dest.writeString(mToken); dest.writeString(mSharedWithDisplayName); - dest.writeInt(mIsDirectory ? 1 : 0); + dest.writeInt(mIsFolder ? 1 : 0); dest.writeLong(mUserId); dest.writeLong(mIdRemoteShared); dest.writeString(mShareLink); diff --git a/src/com/owncloud/android/lib/utils/GetSharesForFileXMLParser.java b/src/com/owncloud/android/lib/utils/GetSharesForFileXMLParser.java index 3ad8b1b5..25c46e15 100644 --- a/src/com/owncloud/android/lib/utils/GetSharesForFileXMLParser.java +++ b/src/com/owncloud/android/lib/utils/GetSharesForFileXMLParser.java @@ -244,7 +244,7 @@ public class GetSharesForFileXMLParser { share.setIdRemoteShared(Integer.parseInt(readNode(parser, NODE_ID))); } else if (name.equalsIgnoreCase(NODE_ITEM_TYPE)) { - share.setIsDirectory(readNode(parser, NODE_ITEM_TYPE).equalsIgnoreCase(TYPE_FOLDER)); + share.setIsFolder(readNode(parser, NODE_ITEM_TYPE).equalsIgnoreCase(TYPE_FOLDER)); } else if (name.equalsIgnoreCase(NODE_ITEM_SOURCE)) { share.setItemSource(Long.parseLong(readNode(parser, NODE_ITEM_SOURCE))); diff --git a/src/com/owncloud/android/lib/utils/ShareXMLParser.java b/src/com/owncloud/android/lib/utils/ShareXMLParser.java index 828714c5..4d456a7f 100644 --- a/src/com/owncloud/android/lib/utils/ShareXMLParser.java +++ b/src/com/owncloud/android/lib/utils/ShareXMLParser.java @@ -275,7 +275,8 @@ public class ShareXMLParser { share.setIdRemoteShared(Integer.parseInt(readNode(parser, NODE_ID))); } else if (name.equalsIgnoreCase(NODE_ITEM_TYPE)) { - share.setIsDirectory(readNode(parser, NODE_ITEM_TYPE).equalsIgnoreCase(TYPE_FOLDER)); + share.setIsFolder(readNode(parser, NODE_ITEM_TYPE).equalsIgnoreCase(TYPE_FOLDER)); + fixPathForFolder(share); } else if (name.equalsIgnoreCase(NODE_ITEM_SOURCE)) { share.setItemSource(Long.parseLong(readNode(parser, NODE_ITEM_SOURCE))); @@ -295,6 +296,7 @@ public class ShareXMLParser { } else if (name.equalsIgnoreCase(NODE_PATH)) { share.setPath(readNode(parser, NODE_PATH)); + fixPathForFolder(share); } else if (name.equalsIgnoreCase(NODE_PERMISSIONS)) { share.setPermissions(Integer.parseInt(readNode(parser, NODE_PERMISSIONS))); @@ -327,6 +329,12 @@ public class ShareXMLParser { return share; } + private void fixPathForFolder(OCShare share) { + if (share.isFolder() && share.getPath() != null && share.getPath().length() > 0 && !share.getPath().endsWith(FileUtils.PATH_SEPARATOR)) { + share.setPath(share.getPath() + FileUtils.PATH_SEPARATOR); + } + } + /** * Parse a node, to obtain its text. Needs readText method * @param parser