From 54283c0ba963e72ccbd8e600be07714b45e4e8fb Mon Sep 17 00:00:00 2001
From: davigonz <dgonzalez@solidgear.es>
Date: Thu, 3 Jan 2019 14:33:03 +0100
Subject: [PATCH] Rename OCShare to RemoteShare

---
 .../shares/CreateRemoteShareOperation.java    |   4 +-
 .../shares/{OCShare.java => RemoteShare.java} |  46 +-
 .../resources/shares/ShareParserResult.java   |   6 +-
 .../shares/SharePermissionsBuilder.java       |  14 +-
 .../ShareToRemoteOperationResultParser.java   |   6 +-
 .../lib/resources/shares/ShareXMLParser.java  | 611 +++++++++---------
 .../shares/UpdateRemoteShareOperation.java    |   2 +-
 7 files changed, 335 insertions(+), 354 deletions(-)
 rename owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/{OCShare.java => RemoteShare.java} (91%)

diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/CreateRemoteShareOperation.java b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/CreateRemoteShareOperation.java
index 631af0ee..9faeff67 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/CreateRemoteShareOperation.java
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/CreateRemoteShareOperation.java
@@ -214,7 +214,7 @@ public class CreateRemoteShareOperation extends RemoteOperation {
             if (mPassword != null && mPassword.length() > 0) {
                 formBodyBuilder.add(PARAM_PASSWORD, mPassword);
             }
-            if (OCShare.DEFAULT_PERMISSION != mPermissions) {
+            if (RemoteShare.DEFAULT_PERMISSION != mPermissions) {
                 formBodyBuilder.add(PARAM_PERMISSIONS, Integer.toString(mPermissions));
             }
 
@@ -245,7 +245,7 @@ public class CreateRemoteShareOperation extends RemoteOperation {
 
                     // TODO Use executeHttpMethod
                     // retrieve more info - POST only returns the index of the new share
-                    OCShare emptyShare = result.getData().getShares().get(0);
+                    RemoteShare emptyShare = result.getData().getShares().get(0);
                     GetRemoteShareOperation getInfo = new GetRemoteShareOperation(
                             emptyShare.getRemoteId()
                     );
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/OCShare.java b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.java
similarity index 91%
rename from owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/OCShare.java
rename to owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.java
index 72bccd50..2a01e71a 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/OCShare.java
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.java
@@ -34,6 +34,7 @@ import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.resources.files.FileUtils;
 
 
+
 /**
  * Contains the data of a Share from the Share API
  *
@@ -41,7 +42,14 @@ import com.owncloud.android.lib.resources.files.FileUtils;
  * @author David A. Velasco
  * @author David González Verdugo
  */
-public class OCShare implements Parcelable, Serializable {
+public class RemoteShare implements Parcelable, Serializable {
+
+    /**
+     * Generated - should be refreshed every time the class changes!!
+     */
+    private static final long serialVersionUID = 4124975224281327921L;
+
+    private static final String TAG = RemoteShare.class.getSimpleName();
 
     /**
      * Generated - should be refreshed every time the class changes!!
@@ -80,7 +88,6 @@ public class OCShare implements Parcelable, Serializable {
             FEDERATED_PERMISSIONS_FOR_FOLDER_UP_TO_OC9 +
                     SHARE_PERMISSION_FLAG;
 
-    private long mId;
     private long mFileSource;
     private long mItemSource;
     private ShareType mShareType;
@@ -98,16 +105,16 @@ public class OCShare implements Parcelable, Serializable {
     private long mRemoteId;
     private String mShareLink;
 
-    public OCShare() {
+    public RemoteShare() {
         super();
         resetData();
     }
 
-    public OCShare(String path) {
+    public RemoteShare(String path) {
         resetData();
         if (path == null || path.length() <= 0 || !path.startsWith(FileUtils.PATH_SEPARATOR)) {
-            Log_OC.e(TAG, "Trying to create a OCShare with a non valid path");
-            throw new IllegalArgumentException("Trying to create a OCShare with a non valid path: " + path);
+            Log_OC.e(TAG, "Trying to create a RemoteShare with a non valid path");
+            throw new IllegalArgumentException("Trying to create a RemoteShare with a non valid path: " + path);
         }
         mPath = path;
     }
@@ -116,7 +123,6 @@ public class OCShare implements Parcelable, Serializable {
      * Used internally. Reset all file properties
      */
     private void resetData() {
-        mId = -1;
         mFileSource = 0;
         mItemSource = 0;
         mShareType = ShareType.NO_SHARED;
@@ -136,15 +142,6 @@ public class OCShare implements Parcelable, Serializable {
     }
 
     /// Getters and Setters
-
-    public long getId() {
-        return mId;
-    }
-
-    public void setId(long id) {
-        mId = id;
-    }
-
     public long getFileSource() {
         return mFileSource;
     }
@@ -280,15 +277,15 @@ public class OCShare implements Parcelable, Serializable {
     /**
      * Parcelable Methods
      */
-    public static final Parcelable.Creator<OCShare> CREATOR = new Parcelable.Creator<OCShare>() {
+    public static final Parcelable.Creator<RemoteShare> CREATOR = new Parcelable.Creator<RemoteShare>() {
         @Override
-        public OCShare createFromParcel(Parcel source) {
-            return new OCShare(source);
+        public RemoteShare createFromParcel(Parcel source) {
+            return new RemoteShare(source);
         }
 
         @Override
-        public OCShare[] newArray(int size) {
-            return new OCShare[size];
+        public RemoteShare[] newArray(int size) {
+            return new RemoteShare[size];
         }
     };
 
@@ -297,13 +294,11 @@ public class OCShare implements Parcelable, Serializable {
      *
      * @param source The source parcel
      */
-    protected OCShare(Parcel source) {
+    protected RemoteShare(Parcel source) {
         readFromParcel(source);
     }
 
     public void readFromParcel(Parcel source) {
-        mId = source.readLong();
-
         mFileSource = source.readLong();
         mItemSource = source.readLong();
         try {
@@ -335,7 +330,6 @@ public class OCShare implements Parcelable, Serializable {
 
     @Override
     public void writeToParcel(Parcel dest, int flags) {
-        dest.writeLong(mId);
         dest.writeLong(mFileSource);
         dest.writeLong(mItemSource);
         dest.writeString((mShareType == null) ? "" : mShareType.name());
@@ -353,4 +347,4 @@ public class OCShare implements Parcelable, Serializable {
         dest.writeString(mShareLink);
         dest.writeString(mName);
     }
-}
\ No newline at end of file
+}
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareParserResult.java b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareParserResult.java
index c98fd6e3..a03a5839 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareParserResult.java
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareParserResult.java
@@ -28,15 +28,15 @@ package com.owncloud.android.lib.resources.shares;
 import java.util.ArrayList;
 
 public class ShareParserResult {
-    private ArrayList<OCShare> shares;
+    private ArrayList<RemoteShare> shares;
     private String parserMessage;
 
-    public ShareParserResult(ArrayList<OCShare> shares, String parserMessage) {
+    public ShareParserResult(ArrayList<RemoteShare> shares, String parserMessage) {
         this.shares = shares;
         this.parserMessage = parserMessage;
     }
 
-    public ArrayList<OCShare> getShares() {
+    public ArrayList<RemoteShare> getShares() {
         return shares;
     }
 
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/SharePermissionsBuilder.java b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/SharePermissionsBuilder.java
index 2b0682dd..a38d7970 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/SharePermissionsBuilder.java
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/SharePermissionsBuilder.java
@@ -31,10 +31,8 @@ package com.owncloud.android.lib.resources.shares;
  */
 public class SharePermissionsBuilder {
 
-    /**
-     * Set of permissions
-     */
-    private int mPermissions = OCShare.READ_PERMISSION_FLAG;    // READ is minimum permission
+    /** Set of permissions */
+    private int mPermissions = RemoteShare.READ_PERMISSION_FLAG;    // READ is minimum permission
 
     /**
      * Sets or clears permission to reshare a file or folder.
@@ -43,7 +41,7 @@ public class SharePermissionsBuilder {
      * @return Instance to builder itself, to allow consecutive calls to setters
      */
     public SharePermissionsBuilder setSharePermission(boolean enabled) {
-        updatePermission(OCShare.SHARE_PERMISSION_FLAG, enabled);
+        updatePermission(RemoteShare.SHARE_PERMISSION_FLAG, enabled);
         return this;
     }
 
@@ -54,7 +52,7 @@ public class SharePermissionsBuilder {
      * @return Instance to builder itself, to allow consecutive calls to setters
      */
     public SharePermissionsBuilder setUpdatePermission(boolean enabled) {
-        updatePermission(OCShare.UPDATE_PERMISSION_FLAG, enabled);
+        updatePermission(RemoteShare.UPDATE_PERMISSION_FLAG, enabled);
         return this;
     }
 
@@ -65,7 +63,7 @@ public class SharePermissionsBuilder {
      * @return Instance to builder itself, to allow consecutive calls to setters
      */
     public SharePermissionsBuilder setCreatePermission(boolean enabled) {
-        updatePermission(OCShare.CREATE_PERMISSION_FLAG, enabled);
+        updatePermission(RemoteShare.CREATE_PERMISSION_FLAG, enabled);
         return this;
     }
 
@@ -76,7 +74,7 @@ public class SharePermissionsBuilder {
      * @return Instance to builder itself, to allow consecutive calls to setters
      */
     public SharePermissionsBuilder setDeletePermission(boolean enabled) {
-        updatePermission(OCShare.DELETE_PERMISSION_FLAG, enabled);
+        updatePermission(RemoteShare.DELETE_PERMISSION_FLAG, enabled);
         return this;
     }
 
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareToRemoteOperationResultParser.java b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareToRemoteOperationResultParser.java
index 5b6aa671..8292ca02 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareToRemoteOperationResultParser.java
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareToRemoteOperationResultParser.java
@@ -71,7 +71,7 @@ public class ShareToRemoteOperationResultParser {
         }
 
         RemoteOperationResult<ShareParserResult> result;
-        final ArrayList<OCShare> resultData = new ArrayList<>();
+        final ArrayList<RemoteShare> resultData = new ArrayList<>();
 
         try {
             // Parse xml response and obtain the list of shares
@@ -80,13 +80,13 @@ public class ShareToRemoteOperationResultParser {
                 Log_OC.w(TAG, "No ShareXmlParser provided, creating new instance ");
                 mShareXmlParser = new ShareXMLParser();
             }
-            List<OCShare> shares = mShareXmlParser.parseXMLResponse(is);
+            List<RemoteShare> shares = mShareXmlParser.parseXMLResponse(is);
 
             if (mShareXmlParser.isSuccess()) {
                 if ((shares != null && shares.size() > 0) || !mOneOrMoreSharesRequired) {
                     result = new RemoteOperationResult<>(RemoteOperationResult.ResultCode.OK);
                     if (shares != null) {
-                        for (OCShare share : shares) {
+                        for (RemoteShare share : shares) {
                             resultData.add(share);
                             // build the share link if not in the response
                             // (needed for OC servers < 9.0.0, see ShareXMLParser.java#line256)
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareXMLParser.java b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareXMLParser.java
index a6265e1a..fb8e877c 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareXMLParser.java
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/ShareXMLParser.java
@@ -78,375 +78,364 @@ public class ShareXMLParser {
     private static final String NODE_SHARE_WITH_DISPLAY_NAME = "share_with_displayname";
     private static final String NODE_SHARE_WITH_ADDITIONAL_INFO = "share_with_additional_info";
     private static final String NODE_NAME = "name";
+	
+	private static final String NODE_URL = "url";
 
-    private static final String NODE_URL = "url";
+	private static final String TYPE_FOLDER = "folder";
+	
+	private static final int SUCCESS = 200;
+	private static final int ERROR_WRONG_PARAMETER = 400;
+	private static final int ERROR_FORBIDDEN = 403;
+	private static final int ERROR_NOT_FOUND = 404;
 
-    private static final String TYPE_FOLDER = "folder";
+	private String mStatus;
+	private int mStatusCode;
+	private String mMessage;
 
-    private static final int SUCCESS = 200;
-    private static final int ERROR_WRONG_PARAMETER = 400;
-    private static final int ERROR_FORBIDDEN = 403;
-    private static final int ERROR_NOT_FOUND = 404;
+	// Getters and Setters
+	public String getStatus() {
+		return mStatus;
+	}
 
-    private String mStatus;
-    private int mStatusCode;
-    private String mMessage;
+	public void setStatus(String status) {
+		this.mStatus = status;
+	}
 
-    // Getters and Setters
-    public String getStatus() {
-        return mStatus;
-    }
+	public int getStatusCode() {
+		return mStatusCode;
+	}
 
-    public void setStatus(String status) {
-        this.mStatus = status;
-    }
+	public void setStatusCode(int statusCode) {
+		this.mStatusCode = statusCode;
+	}
 
-    public int getStatusCode() {
-        return mStatusCode;
-    }
+	public String getMessage() {
+		return mMessage;
+	}
 
-    public void setStatusCode(int statusCode) {
-        this.mStatusCode = statusCode;
-    }
+	public void setMessage(String message) {
+		this.mMessage = message;
+	}
 
-    public String getMessage() {
-        return mMessage;
-    }
+	// Constructor
+	public ShareXMLParser() {
+		mStatusCode = -1;
+	}
 
-    public void setMessage(String message) {
-        this.mMessage = message;
-    }
+	public boolean isSuccess() {
+		return mStatusCode == SUCCESS;
+	}
 
-    // Constructor
-    public ShareXMLParser() {
-        mStatusCode = -1;
-    }
+	public boolean isForbidden() {
+		return mStatusCode == ERROR_FORBIDDEN;
+	}
 
-    public boolean isSuccess() {
-        return mStatusCode == SUCCESS;
-    }
+	public boolean isNotFound() {
+		return mStatusCode == ERROR_NOT_FOUND;
+	}
 
-    public boolean isForbidden() {
-        return mStatusCode == ERROR_FORBIDDEN;
-    }
+	public boolean isWrongParameter() {
+		return mStatusCode == ERROR_WRONG_PARAMETER;
+	}
 
-    public boolean isNotFound() {
-        return mStatusCode == ERROR_NOT_FOUND;
-    }
+	/**
+	 * Parse is as response of Share API
+	 * @param is
+	 * @return List of ShareRemoteFiles
+	 * @throws XmlPullParserException
+	 * @throws IOException
+	 */
+	public ArrayList<RemoteShare> parseXMLResponse(InputStream is) throws XmlPullParserException,
+			IOException {
 
-    public boolean isWrongParameter() {
-        return mStatusCode == ERROR_WRONG_PARAMETER;
-    }
+		try {
+			// XMLPullParser
+			XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
+			factory.setNamespaceAware(true);
 
-    /**
-     * Parse is as response of Share API
-     *
-     * @param is
-     * @return List of ShareRemoteFiles
-     * @throws XmlPullParserException
-     * @throws IOException
-     */
-    public ArrayList<OCShare> parseXMLResponse(InputStream is) throws XmlPullParserException,
-            IOException {
+			XmlPullParser parser = Xml.newPullParser();
+			parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
+			parser.setInput(is, null);
+			parser.nextTag();
+			return readOCS(parser);
 
-        try {
-            // XMLPullParser
-            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
-            factory.setNamespaceAware(true);
+		} finally {
+			is.close();
+		}
+	}
 
-            XmlPullParser parser = Xml.newPullParser();
-            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
-            parser.setInput(is, null);
-            parser.nextTag();
-            return readOCS(parser);
+	/**
+	 * Parse OCS node
+	 * @param parser
+	 * @return List of ShareRemoteFiles
+	 * @throws XmlPullParserException
+	 * @throws IOException
+	 */
+	private ArrayList<RemoteShare> readOCS (XmlPullParser parser) throws XmlPullParserException,
+			IOException {
+		ArrayList<RemoteShare> shares = new ArrayList<>();
+		parser.require(XmlPullParser.START_TAG,  ns , NODE_OCS);
+		while (parser.next() != XmlPullParser.END_TAG) {
+			if (parser.getEventType() != XmlPullParser.START_TAG) {
+				continue;
+			}
+			String name = parser.getName();
+			// read NODE_META and NODE_DATA
+			if (name.equalsIgnoreCase(NODE_META)) {
+				readMeta(parser);
+			} else if (name.equalsIgnoreCase(NODE_DATA)) {
+				shares = readData(parser);
+			} else {
+				skip(parser);
+			}
 
-        } finally {
-            is.close();
-        }
-    }
+		}
+		return shares;
+	}
 
-    /**
-     * Parse OCS node
-     *
-     * @param parser
-     * @return List of ShareRemoteFiles
-     * @throws XmlPullParserException
-     * @throws IOException
-     */
-    private ArrayList<OCShare> readOCS(XmlPullParser parser) throws XmlPullParserException,
-            IOException {
-        ArrayList<OCShare> shares = new ArrayList<>();
-        parser.require(XmlPullParser.START_TAG, ns, NODE_OCS);
-        while (parser.next() != XmlPullParser.END_TAG) {
-            if (parser.getEventType() != XmlPullParser.START_TAG) {
-                continue;
-            }
-            String name = parser.getName();
-            // read NODE_META and NODE_DATA
-            if (name.equalsIgnoreCase(NODE_META)) {
-                readMeta(parser);
-            } else if (name.equalsIgnoreCase(NODE_DATA)) {
-                shares = readData(parser);
-            } else {
-                skip(parser);
-            }
+	/**
+	 * Parse Meta node
+	 * @param parser
+	 * @throws XmlPullParserException
+	 * @throws IOException
+	 */
+	private void readMeta(XmlPullParser parser) throws XmlPullParserException, IOException {
+		parser.require(XmlPullParser.START_TAG, ns, NODE_META);
+		//Log_OC.d(TAG, "---- NODE META ---");
+		while (parser.next() != XmlPullParser.END_TAG) {
+			if (parser.getEventType() != XmlPullParser.START_TAG) {
+				continue;
+			}
+			String name = parser.getName();
 
-        }
-        return shares;
-    }
+			if  (name.equalsIgnoreCase(NODE_STATUS)) {
+				setStatus(readNode(parser, NODE_STATUS));
 
-    /**
-     * Parse Meta node
-     *
-     * @param parser
-     * @throws XmlPullParserException
-     * @throws IOException
-     */
-    private void readMeta(XmlPullParser parser) throws XmlPullParserException, IOException {
-        parser.require(XmlPullParser.START_TAG, ns, NODE_META);
-        //Log_OC.d(TAG, "---- NODE META ---");
-        while (parser.next() != XmlPullParser.END_TAG) {
-            if (parser.getEventType() != XmlPullParser.START_TAG) {
-                continue;
-            }
-            String name = parser.getName();
+			} else if (name.equalsIgnoreCase(NODE_STATUS_CODE)) {
+				setStatusCode(Integer.parseInt(readNode(parser, NODE_STATUS_CODE)));
 
-            if (name.equalsIgnoreCase(NODE_STATUS)) {
-                setStatus(readNode(parser, NODE_STATUS));
+			} else if (name.equalsIgnoreCase(NODE_MESSAGE)) {
+				setMessage(readNode(parser, NODE_MESSAGE));
 
-            } else if (name.equalsIgnoreCase(NODE_STATUS_CODE)) {
-                setStatusCode(Integer.parseInt(readNode(parser, NODE_STATUS_CODE)));
+			} else {
+				skip(parser);
+			}
 
-            } else if (name.equalsIgnoreCase(NODE_MESSAGE)) {
-                setMessage(readNode(parser, NODE_MESSAGE));
+		}
+	}
 
-            } else {
-                skip(parser);
-            }
+	/**
+	 * Parse Data node
+	 * @param parser
+	 * @return
+	 * @throws XmlPullParserException
+	 * @throws IOException
+	 */
+	private ArrayList<RemoteShare> readData(XmlPullParser parser) throws XmlPullParserException,
+			IOException {
+		ArrayList<RemoteShare> shares = new ArrayList<RemoteShare>();
+		RemoteShare share = null;
 
-        }
-    }
+		parser.require(XmlPullParser.START_TAG, ns, NODE_DATA);		
+		//Log_OC.d(TAG, "---- NODE DATA ---");
+		while (parser.next() != XmlPullParser.END_TAG) {
+			if (parser.getEventType() != XmlPullParser.START_TAG) {
+				continue;
+			}
+			String name = parser.getName();
+			if (name.equalsIgnoreCase(NODE_ELEMENT)) {
+				readElement(parser, shares);
+				
+			}  else if (name.equalsIgnoreCase(NODE_ID)) {// Parse Create XML Response
+				share = new RemoteShare();
+				String value = readNode(parser, NODE_ID);
+				share.setIdRemoteShared(Integer.parseInt(value));
 
-    /**
-     * Parse Data node
-     *
-     * @param parser
-     * @return
-     * @throws XmlPullParserException
-     * @throws IOException
-     */
-    private ArrayList<OCShare> readData(XmlPullParser parser) throws XmlPullParserException,
-            IOException {
-        ArrayList<OCShare> shares = new ArrayList<OCShare>();
-        OCShare share = null;
+			} else if (name.equalsIgnoreCase(NODE_URL)) {
+				// NOTE: this field is received in all the public shares from OC 9.0.0
+				// in previous versions, it's received in the result of POST requests, but not
+				// in GET requests
+				share.setShareType(ShareType.PUBLIC_LINK);
+				String value = readNode(parser, NODE_URL);
+				share.setShareLink(value);
 
-        parser.require(XmlPullParser.START_TAG, ns, NODE_DATA);
-        //Log_OC.d(TAG, "---- NODE DATA ---");
-        while (parser.next() != XmlPullParser.END_TAG) {
-            if (parser.getEventType() != XmlPullParser.START_TAG) {
-                continue;
-            }
-            String name = parser.getName();
-            if (name.equalsIgnoreCase(NODE_ELEMENT)) {
-                readElement(parser, shares);
+			}  else if (name.equalsIgnoreCase(NODE_TOKEN)) {
+				share.setToken(readNode(parser, NODE_TOKEN));
 
-            } else if (name.equalsIgnoreCase(NODE_ID)) {// Parse Create XML Response
-                share = new OCShare();
-                String value = readNode(parser, NODE_ID);
-                share.setIdRemoteShared(Integer.parseInt(value));
+			} else {
+				skip(parser);
+				
+			} 
+		}
+		
+		if (share != null) {
+			// this is the response of a request for creation; don't pass to isValidShare()
+			shares.add(share);
+		}
 
-            } else if (name.equalsIgnoreCase(NODE_URL)) {
-                // NOTE: this field is received in all the public shares from OC 9.0.0
-                // in previous versions, it's received in the result of POST requests, but not
-                // in GET requests
-                share.setShareType(ShareType.PUBLIC_LINK);
-                String value = readNode(parser, NODE_URL);
-                share.setShareLink(value);
+		return shares;
 
-            } else if (name.equalsIgnoreCase(NODE_TOKEN)) {
-                share.setToken(readNode(parser, NODE_TOKEN));
-
-            } else {
-                skip(parser);
-
-            }
-        }
-
-        if (share != null) {
-            // this is the response of a request for creation; don't pass to isValidShare()
-            shares.add(share);
-        }
-
-        return shares;
-
-    }
+	}
 
 
-    /**
-     * Parse Element node
-     *
-     * @param parser
-     * @return
-     * @throws XmlPullParserException
-     * @throws IOException
-     */
-    private void readElement(XmlPullParser parser, ArrayList<OCShare> shares)
-            throws XmlPullParserException, IOException {
-        parser.require(XmlPullParser.START_TAG, ns, NODE_ELEMENT);
+	/** 
+	 * Parse Element node
+	 * @param parser
+	 * @return
+	 * @throws XmlPullParserException
+	 * @throws IOException
+	 */
+	private void readElement(XmlPullParser parser, ArrayList<RemoteShare> shares)
+			throws XmlPullParserException, IOException {
+		parser.require(XmlPullParser.START_TAG, ns, NODE_ELEMENT);
+		
+		RemoteShare share = new RemoteShare();
+		
+		//Log_OC.d(TAG, "---- NODE ELEMENT ---");
+		while (parser.next() != XmlPullParser.END_TAG) {
+			if (parser.getEventType() != XmlPullParser.START_TAG) {
+	            continue;
+	        }
+			
+			String name = parser.getName();
 
-        OCShare share = new OCShare();
+			if (name.equalsIgnoreCase(NODE_ELEMENT)) {
+				// patch to work around servers responding with extra <element> surrounding all
+				// the shares on the same file before
+				// https://github.com/owncloud/core/issues/6992 was fixed
+				readElement(parser, shares);
 
-        //Log_OC.d(TAG, "---- NODE ELEMENT ---");
-        while (parser.next() != XmlPullParser.END_TAG) {
-            if (parser.getEventType() != XmlPullParser.START_TAG) {
-                continue;
-            }
+			} else if (name.equalsIgnoreCase(NODE_ID)) {
+				share.setIdRemoteShared(Integer.parseInt(readNode(parser, NODE_ID)));
 
-            String name = parser.getName();
+			} else if (name.equalsIgnoreCase(NODE_ITEM_TYPE)) {
+				share.setIsFolder(readNode(parser, NODE_ITEM_TYPE).equalsIgnoreCase(TYPE_FOLDER));
+				fixPathForFolder(share);
 
-            if (name.equalsIgnoreCase(NODE_ELEMENT)) {
-                // patch to work around servers responding with extra <element> surrounding all
-                // the shares on the same file before
-                // https://github.com/owncloud/core/issues/6992 was fixed
-                readElement(parser, shares);
+			} else if (name.equalsIgnoreCase(NODE_ITEM_SOURCE)) {
+				share.setItemSource(Long.parseLong(readNode(parser, NODE_ITEM_SOURCE)));
 
-            } else if (name.equalsIgnoreCase(NODE_ID)) {
-                share.setIdRemoteShared(Integer.parseInt(readNode(parser, NODE_ID)));
+			} else if (name.equalsIgnoreCase(NODE_PARENT)) {
+				readNode(parser, NODE_PARENT);
 
-            } else if (name.equalsIgnoreCase(NODE_ITEM_TYPE)) {
-                share.setIsFolder(readNode(parser, NODE_ITEM_TYPE).equalsIgnoreCase(TYPE_FOLDER));
-                fixPathForFolder(share);
+			} else if (name.equalsIgnoreCase(NODE_SHARE_TYPE)) {
+				int value = Integer.parseInt(readNode(parser, NODE_SHARE_TYPE));
+				share.setShareType(ShareType.fromValue(value));
 
-            } else if (name.equalsIgnoreCase(NODE_ITEM_SOURCE)) {
-                share.setItemSource(Long.parseLong(readNode(parser, NODE_ITEM_SOURCE)));
+			} else if (name.equalsIgnoreCase(NODE_SHARE_WITH)) {
+				share.setShareWith(readNode(parser, NODE_SHARE_WITH));
 
-            } else if (name.equalsIgnoreCase(NODE_PARENT)) {
-                readNode(parser, NODE_PARENT);
+			} else if (name.equalsIgnoreCase(NODE_FILE_SOURCE)) {
+				share.setFileSource(Long.parseLong(readNode(parser, NODE_FILE_SOURCE)));
 
-            } else if (name.equalsIgnoreCase(NODE_SHARE_TYPE)) {
-                int value = Integer.parseInt(readNode(parser, NODE_SHARE_TYPE));
-                share.setShareType(ShareType.fromValue(value));
+			} else if (name.equalsIgnoreCase(NODE_PATH)) {
+				share.setPath(readNode(parser, NODE_PATH));
+				fixPathForFolder(share);
 
-            } else if (name.equalsIgnoreCase(NODE_SHARE_WITH)) {
-                share.setShareWith(readNode(parser, NODE_SHARE_WITH));
+			} else if (name.equalsIgnoreCase(NODE_PERMISSIONS)) {
+				share.setPermissions(Integer.parseInt(readNode(parser, NODE_PERMISSIONS)));
 
-            } else if (name.equalsIgnoreCase(NODE_FILE_SOURCE)) {
-                share.setFileSource(Long.parseLong(readNode(parser, NODE_FILE_SOURCE)));
+			} else if (name.equalsIgnoreCase(NODE_STIME)) {
+				share.setSharedDate(Long.parseLong(readNode(parser, NODE_STIME)));
 
-            } else if (name.equalsIgnoreCase(NODE_PATH)) {
-                share.setPath(readNode(parser, NODE_PATH));
-                fixPathForFolder(share);
+			} else if (name.equalsIgnoreCase(NODE_EXPIRATION)) {
+				String value = readNode(parser, NODE_EXPIRATION);
+				if (!(value.length() == 0)) {
+					share.setExpirationDate(WebdavUtils.parseResponseDate(value).getTime()); 
+				}
 
-            } else if (name.equalsIgnoreCase(NODE_PERMISSIONS)) {
-                share.setPermissions(Integer.parseInt(readNode(parser, NODE_PERMISSIONS)));
+			} else if (name.equalsIgnoreCase(NODE_TOKEN)) {
+				share.setToken(readNode(parser, NODE_TOKEN));
 
-            } else if (name.equalsIgnoreCase(NODE_STIME)) {
-                share.setSharedDate(Long.parseLong(readNode(parser, NODE_STIME)));
+			} else if (name.equalsIgnoreCase(NODE_STORAGE)) {
+				readNode(parser, NODE_STORAGE);
+			} else if (name.equalsIgnoreCase(NODE_MAIL_SEND)) {
+				readNode(parser, NODE_MAIL_SEND);
 
-            } else if (name.equalsIgnoreCase(NODE_EXPIRATION)) {
-                String value = readNode(parser, NODE_EXPIRATION);
-                if (!(value.length() == 0)) {
-                    share.setExpirationDate(WebdavUtils.parseResponseDate(value).getTime());
-                }
+			} else if (name.equalsIgnoreCase(NODE_SHARE_WITH_DISPLAY_NAME)) {
+				share.setSharedWithDisplayName(readNode(parser, NODE_SHARE_WITH_DISPLAY_NAME));
 
-            } else if (name.equalsIgnoreCase(NODE_TOKEN)) {
-                share.setToken(readNode(parser, NODE_TOKEN));
-
-            } else if (name.equalsIgnoreCase(NODE_STORAGE)) {
-                readNode(parser, NODE_STORAGE);
-            } else if (name.equalsIgnoreCase(NODE_MAIL_SEND)) {
-                readNode(parser, NODE_MAIL_SEND);
-
-            } else if (name.equalsIgnoreCase(NODE_SHARE_WITH_DISPLAY_NAME)) {
-                share.setSharedWithDisplayName(readNode(parser, NODE_SHARE_WITH_DISPLAY_NAME));
-
-            } else if (name.equalsIgnoreCase(NODE_SHARE_WITH_ADDITIONAL_INFO)) {
-                share.setSharedWithAdditionalInfo(readNode(parser, NODE_SHARE_WITH_ADDITIONAL_INFO));
-
-            } else if (name.equalsIgnoreCase(NODE_URL)) {
-                String value = readNode(parser, NODE_URL);
-                share.setShareLink(value);
+			} else if (name.equalsIgnoreCase(NODE_URL)) {
+				String value = readNode(parser, NODE_URL);
+				share.setShareLink(value);
 
             } else if (name.equalsIgnoreCase(NODE_NAME)) {
                 share.setName(readNode(parser, NODE_NAME));
 
             } else {
-                skip(parser);
-            }
-        }
+				skip(parser);
+			} 
+		}		
 
-        if (isValidShare(share)) {
-            shares.add(share);
-        }
-    }
+		if (isValidShare(share)) {
+			shares.add(share);
+		}
+	}
 
-    private boolean isValidShare(OCShare share) {
-        return (share.getRemoteId() > -1);
-    }
+	private boolean isValidShare(RemoteShare share) {
+		return (share.getRemoteId() > -1);
+	}
 
-    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);
-        }
-    }
+	private void fixPathForFolder(RemoteShare 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
-     * @param node
-     * @return Text of the node
-     * @throws XmlPullParserException
-     * @throws IOException
-     */
-    private String readNode(XmlPullParser parser, String node) throws XmlPullParserException,
-            IOException {
-        parser.require(XmlPullParser.START_TAG, ns, node);
-        String value = readText(parser);
-        //Log_OC.d(TAG, "node= " + node + ", value= " + value);
-        parser.require(XmlPullParser.END_TAG, ns, node);
-        return value;
-    }
+	/**
+	 * Parse a node, to obtain its text. Needs readText method
+	 * @param parser
+	 * @param node
+	 * @return Text of the node
+	 * @throws XmlPullParserException
+	 * @throws IOException
+	 */
+	private String readNode (XmlPullParser parser, String node) throws XmlPullParserException,
+			IOException{
+		parser.require(XmlPullParser.START_TAG, ns, node);
+		String value = readText(parser);
+		//Log_OC.d(TAG, "node= " + node + ", value= " + value);
+		parser.require(XmlPullParser.END_TAG, ns, node);
+		return value;
+	}
+	
+	/**
+	 * Read the text from a node
+	 * @param parser
+	 * @return Text of the node
+	 * @throws IOException
+	 * @throws XmlPullParserException
+	 */
+	private String readText(XmlPullParser parser) throws IOException, XmlPullParserException {
+		String result = "";
+		if (parser.next() == XmlPullParser.TEXT) {
+			result = parser.getText();
+			parser.nextTag();
+		}
+		return result;
+	}
 
-    /**
-     * Read the text from a node
-     *
-     * @param parser
-     * @return Text of the node
-     * @throws IOException
-     * @throws XmlPullParserException
-     */
-    private String readText(XmlPullParser parser) throws IOException, XmlPullParserException {
-        String result = "";
-        if (parser.next() == XmlPullParser.TEXT) {
-            result = parser.getText();
-            parser.nextTag();
-        }
-        return result;
-    }
-
-    /**
-     * Skip tags in parser procedure
-     *
-     * @param parser
-     * @throws XmlPullParserException
-     * @throws IOException
-     */
-    private void skip(XmlPullParser parser) throws XmlPullParserException, IOException {
-        if (parser.getEventType() != XmlPullParser.START_TAG) {
-            throw new IllegalStateException();
-        }
-        int depth = 1;
-        while (depth != 0) {
-            switch (parser.next()) {
-                case XmlPullParser.END_TAG:
-                    depth--;
-                    break;
-                case XmlPullParser.START_TAG:
-                    depth++;
-                    break;
-            }
-        }
-    }
+	/**
+	 * Skip tags in parser procedure
+	 * @param parser
+	 * @throws XmlPullParserException
+	 * @throws IOException
+	 */
+	private void skip(XmlPullParser parser) throws XmlPullParserException, IOException {
+		if (parser.getEventType() != XmlPullParser.START_TAG) {
+			throw new IllegalStateException();
+		}
+		int depth = 1;
+		while (depth != 0) {
+			switch (parser.next()) {
+			case XmlPullParser.END_TAG:
+				depth--;
+				break;
+			case XmlPullParser.START_TAG:
+				depth++;
+				break;
+			}
+		}
+	}
 }
\ No newline at end of file
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java
index 0122d86e..83bb4d37 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java
@@ -99,7 +99,7 @@ public class UpdateRemoteShareOperation extends RemoteOperation<ShareParserResul
         mPassword = null;               // no update
         mExpirationDateInMillis = 0;    // no update
         mPublicUpload = null;
-        mPermissions = OCShare.DEFAULT_PERMISSION;
+        mPermissions = RemoteShare.DEFAULT_PERMISSION;
     }
 
     /**