From 858d5f106468ab2b78ee8f3ec6eeb8b00e8ff9a5 Mon Sep 17 00:00:00 2001 From: "David A. Velasco" Date: Thu, 6 Feb 2014 19:52:55 +0100 Subject: [PATCH 1/2] 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 From 546c19829c4139a95996faef619424b96347b15a Mon Sep 17 00:00:00 2001 From: "David A. Velasco" Date: Thu, 6 Feb 2014 20:09:02 +0100 Subject: [PATCH 2/2] OCShare made Serializable to be able to send it between components --- .../owncloud/android/lib/operations/common/OCShare.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/com/owncloud/android/lib/operations/common/OCShare.java b/src/com/owncloud/android/lib/operations/common/OCShare.java index 898c0d18..9149ab73 100644 --- a/src/com/owncloud/android/lib/operations/common/OCShare.java +++ b/src/com/owncloud/android/lib/operations/common/OCShare.java @@ -24,6 +24,8 @@ package com.owncloud.android.lib.operations.common; +import java.io.Serializable; + import com.owncloud.android.lib.utils.FileUtils; import android.os.Parcel; @@ -37,9 +39,12 @@ import android.util.Log; * @author masensio * */ -public class OCShare implements Parcelable{ +public class OCShare implements Parcelable, Serializable { - private static final String TAG = OCShare.class.getSimpleName(); + /** Generated - should be refreshed every time the class changes!! */ + private static final long serialVersionUID = 4124975224281327921L; + + private static final String TAG = OCShare.class.getSimpleName(); private long mId; private long mFileSource;