Loading src/com/owncloud/android/lib/resources/shares/OCShare.java +11 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ package com.owncloud.android.lib.resources.shares; import android.os.Parcel; import android.os.Parcelable; import android.support.annotation.NonNull; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.lib.resources.files.FileUtils; Loading Loading @@ -96,6 +97,7 @@ public class OCShare implements Parcelable, Serializable { private long mRemoteId; private String mShareLink; private boolean mIsPasswordProtected; private String mNote; public OCShare() { super(); Loading Loading @@ -131,6 +133,7 @@ public class OCShare implements Parcelable, Serializable { mRemoteId = -1; mShareLink = ""; mIsPasswordProtected = false; mNote = ""; } /// Getters and Setters Loading Loading @@ -267,6 +270,14 @@ public class OCShare implements Parcelable, Serializable { } } public void setNote(@NonNull String note) { this.mNote = note; } public String getNote() { return this.mNote; } /** * Parcelable Methods */ Loading src/com/owncloud/android/lib/resources/shares/ShareXMLParser.java +3 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ public class ShareXMLParser { private static final String NODE_MAIL_SEND = "mail_send"; private static final String NODE_PASSWORD = "password"; private static final String NODE_SHARE_WITH_DISPLAY_NAME = "share_with_displayname"; private static final String NODE_NOTE = "note"; private static final String NODE_URL = "url"; Loading Loading @@ -358,6 +359,8 @@ public class ShareXMLParser { String value = readNode(parser, NODE_URL); share.setShareLink(value); } else if (name.equalsIgnoreCase(NODE_NOTE)) { share.setNote(readNode(parser, NODE_NOTE)); } else { skip(parser); } Loading src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java +37 −27 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ import java.util.List; /** * Updates parameters of an existing Share resource, known its remote ID. * <p/> * * Allow updating several parameters, triggering a request to the server per parameter. */ public class UpdateRemoteShareOperation extends RemoteOperation { Loading @@ -57,6 +57,7 @@ public class UpdateRemoteShareOperation extends RemoteOperation { private static final String PARAM_EXPIRATION_DATE = "expireDate"; private static final String PARAM_PERMISSIONS = "permissions"; private static final String PARAM_PUBLIC_UPLOAD = "publicUpload"; private static final String PARAM_NOTE = "note"; private static final String FORMAT_EXPIRATION_DATE = "yyyy-MM-dd"; private static final String ENTITY_CONTENT_TYPE = "application/x-www-form-urlencoded"; private static final String ENTITY_CHARSET = "UTF-8"; Loading @@ -65,27 +66,29 @@ public class UpdateRemoteShareOperation extends RemoteOperation { /** * Identifier of the share to update */ private long mRemoteId; private long remoteId; /** * Password to set for the public link */ private String mPassword; private String password; /** * Expiration date to set for the public link */ private long mExpirationDateInMillis; private long expirationDateInMillis; /** * Access permissions for the file bound to the share */ private int mPermissions; private int permissions; /** * Upload permissions for the public link (only folders) */ private Boolean mPublicUpload; private Boolean publicUpload; private String note; /** Loading @@ -94,10 +97,11 @@ public class UpdateRemoteShareOperation extends RemoteOperation { * @param remoteId Identifier of the share to update. */ public UpdateRemoteShareOperation(long remoteId) { mRemoteId = remoteId; mPassword = null; // no update mExpirationDateInMillis = 0; // no update mPublicUpload = null; this.remoteId = remoteId; password = null; // no update expirationDateInMillis = 0; // no update publicUpload = null; note = ""; } Loading @@ -109,7 +113,7 @@ public class UpdateRemoteShareOperation extends RemoteOperation { * Null results in no update applied to the password. */ public void setPassword(String password) { mPassword = password; this.password = password; } Loading @@ -122,7 +126,7 @@ public class UpdateRemoteShareOperation extends RemoteOperation { * the expiration date. */ public void setExpirationDate(long expirationDateInMillis) { mExpirationDateInMillis = expirationDateInMillis; this.expirationDateInMillis = expirationDateInMillis; } Loading @@ -133,7 +137,7 @@ public class UpdateRemoteShareOperation extends RemoteOperation { * Values <= 0 result in no update applied to the permissions. */ public void setPermissions(int permissions) { mPermissions = permissions; this.permissions = permissions; } /** Loading @@ -143,50 +147,56 @@ public class UpdateRemoteShareOperation extends RemoteOperation { * Null results in no update applied to the upload permission. */ public void setPublicUpload(Boolean publicUpload) { mPublicUpload = publicUpload; this.publicUpload = publicUpload; } public void setNote(String note) { this.note = note; } @Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result = null; int status = -1; int status; /// prepare array of parameters to update List<Pair<String, String>> parametersToUpdate = new ArrayList<Pair<String, String>>(); if (mPassword != null) { parametersToUpdate.add(new Pair<String, String>(PARAM_PASSWORD, mPassword)); List<Pair<String, String>> parametersToUpdate = new ArrayList<>(); if (password != null) { parametersToUpdate.add(new Pair<>(PARAM_PASSWORD, password)); } if (mExpirationDateInMillis < 0) { if (expirationDateInMillis < 0) { // clear expiration date parametersToUpdate.add(new Pair<>(PARAM_EXPIRATION_DATE, "")); } else if (mExpirationDateInMillis > 0) { } else if (expirationDateInMillis > 0) { // set expiration date DateFormat dateFormat = new SimpleDateFormat(FORMAT_EXPIRATION_DATE); Calendar expirationDate = Calendar.getInstance(); expirationDate.setTimeInMillis(mExpirationDateInMillis); expirationDate.setTimeInMillis(expirationDateInMillis); String formattedExpirationDate = dateFormat.format(expirationDate.getTime()); parametersToUpdate.add(new Pair<>(PARAM_EXPIRATION_DATE, formattedExpirationDate)); } // else, ignore - no update if (mPermissions > 0) { if (permissions > 0) { // set permissions parametersToUpdate.add(new Pair<>(PARAM_PERMISSIONS, Integer.toString(mPermissions))); parametersToUpdate.add(new Pair<>(PARAM_PERMISSIONS, Integer.toString(permissions))); } if (mPublicUpload != null) { parametersToUpdate.add(new Pair<>(PARAM_PUBLIC_UPLOAD, Boolean.toString(mPublicUpload))); if (publicUpload != null) { parametersToUpdate.add(new Pair<>(PARAM_PUBLIC_UPLOAD, Boolean.toString(publicUpload))); } parametersToUpdate.add(new Pair<>(PARAM_NOTE, note)); /// perform required PUT requests PutMethod put = null; String uriString = null; String uriString; try { Uri requestUri = client.getBaseUri(); Uri.Builder uriBuilder = requestUri.buildUpon(); uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH.substring(1)); uriBuilder.appendEncodedPath(Long.toString(mRemoteId)); uriBuilder.appendEncodedPath(Long.toString(remoteId)); uriString = uriBuilder.build().toString(); for (Pair<String, String> parameter : parametersToUpdate) { Loading Loading
src/com/owncloud/android/lib/resources/shares/OCShare.java +11 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ package com.owncloud.android.lib.resources.shares; import android.os.Parcel; import android.os.Parcelable; import android.support.annotation.NonNull; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.lib.resources.files.FileUtils; Loading Loading @@ -96,6 +97,7 @@ public class OCShare implements Parcelable, Serializable { private long mRemoteId; private String mShareLink; private boolean mIsPasswordProtected; private String mNote; public OCShare() { super(); Loading Loading @@ -131,6 +133,7 @@ public class OCShare implements Parcelable, Serializable { mRemoteId = -1; mShareLink = ""; mIsPasswordProtected = false; mNote = ""; } /// Getters and Setters Loading Loading @@ -267,6 +270,14 @@ public class OCShare implements Parcelable, Serializable { } } public void setNote(@NonNull String note) { this.mNote = note; } public String getNote() { return this.mNote; } /** * Parcelable Methods */ Loading
src/com/owncloud/android/lib/resources/shares/ShareXMLParser.java +3 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ public class ShareXMLParser { private static final String NODE_MAIL_SEND = "mail_send"; private static final String NODE_PASSWORD = "password"; private static final String NODE_SHARE_WITH_DISPLAY_NAME = "share_with_displayname"; private static final String NODE_NOTE = "note"; private static final String NODE_URL = "url"; Loading Loading @@ -358,6 +359,8 @@ public class ShareXMLParser { String value = readNode(parser, NODE_URL); share.setShareLink(value); } else if (name.equalsIgnoreCase(NODE_NOTE)) { share.setNote(readNode(parser, NODE_NOTE)); } else { skip(parser); } Loading
src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java +37 −27 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ import java.util.List; /** * Updates parameters of an existing Share resource, known its remote ID. * <p/> * * Allow updating several parameters, triggering a request to the server per parameter. */ public class UpdateRemoteShareOperation extends RemoteOperation { Loading @@ -57,6 +57,7 @@ public class UpdateRemoteShareOperation extends RemoteOperation { private static final String PARAM_EXPIRATION_DATE = "expireDate"; private static final String PARAM_PERMISSIONS = "permissions"; private static final String PARAM_PUBLIC_UPLOAD = "publicUpload"; private static final String PARAM_NOTE = "note"; private static final String FORMAT_EXPIRATION_DATE = "yyyy-MM-dd"; private static final String ENTITY_CONTENT_TYPE = "application/x-www-form-urlencoded"; private static final String ENTITY_CHARSET = "UTF-8"; Loading @@ -65,27 +66,29 @@ public class UpdateRemoteShareOperation extends RemoteOperation { /** * Identifier of the share to update */ private long mRemoteId; private long remoteId; /** * Password to set for the public link */ private String mPassword; private String password; /** * Expiration date to set for the public link */ private long mExpirationDateInMillis; private long expirationDateInMillis; /** * Access permissions for the file bound to the share */ private int mPermissions; private int permissions; /** * Upload permissions for the public link (only folders) */ private Boolean mPublicUpload; private Boolean publicUpload; private String note; /** Loading @@ -94,10 +97,11 @@ public class UpdateRemoteShareOperation extends RemoteOperation { * @param remoteId Identifier of the share to update. */ public UpdateRemoteShareOperation(long remoteId) { mRemoteId = remoteId; mPassword = null; // no update mExpirationDateInMillis = 0; // no update mPublicUpload = null; this.remoteId = remoteId; password = null; // no update expirationDateInMillis = 0; // no update publicUpload = null; note = ""; } Loading @@ -109,7 +113,7 @@ public class UpdateRemoteShareOperation extends RemoteOperation { * Null results in no update applied to the password. */ public void setPassword(String password) { mPassword = password; this.password = password; } Loading @@ -122,7 +126,7 @@ public class UpdateRemoteShareOperation extends RemoteOperation { * the expiration date. */ public void setExpirationDate(long expirationDateInMillis) { mExpirationDateInMillis = expirationDateInMillis; this.expirationDateInMillis = expirationDateInMillis; } Loading @@ -133,7 +137,7 @@ public class UpdateRemoteShareOperation extends RemoteOperation { * Values <= 0 result in no update applied to the permissions. */ public void setPermissions(int permissions) { mPermissions = permissions; this.permissions = permissions; } /** Loading @@ -143,50 +147,56 @@ public class UpdateRemoteShareOperation extends RemoteOperation { * Null results in no update applied to the upload permission. */ public void setPublicUpload(Boolean publicUpload) { mPublicUpload = publicUpload; this.publicUpload = publicUpload; } public void setNote(String note) { this.note = note; } @Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result = null; int status = -1; int status; /// prepare array of parameters to update List<Pair<String, String>> parametersToUpdate = new ArrayList<Pair<String, String>>(); if (mPassword != null) { parametersToUpdate.add(new Pair<String, String>(PARAM_PASSWORD, mPassword)); List<Pair<String, String>> parametersToUpdate = new ArrayList<>(); if (password != null) { parametersToUpdate.add(new Pair<>(PARAM_PASSWORD, password)); } if (mExpirationDateInMillis < 0) { if (expirationDateInMillis < 0) { // clear expiration date parametersToUpdate.add(new Pair<>(PARAM_EXPIRATION_DATE, "")); } else if (mExpirationDateInMillis > 0) { } else if (expirationDateInMillis > 0) { // set expiration date DateFormat dateFormat = new SimpleDateFormat(FORMAT_EXPIRATION_DATE); Calendar expirationDate = Calendar.getInstance(); expirationDate.setTimeInMillis(mExpirationDateInMillis); expirationDate.setTimeInMillis(expirationDateInMillis); String formattedExpirationDate = dateFormat.format(expirationDate.getTime()); parametersToUpdate.add(new Pair<>(PARAM_EXPIRATION_DATE, formattedExpirationDate)); } // else, ignore - no update if (mPermissions > 0) { if (permissions > 0) { // set permissions parametersToUpdate.add(new Pair<>(PARAM_PERMISSIONS, Integer.toString(mPermissions))); parametersToUpdate.add(new Pair<>(PARAM_PERMISSIONS, Integer.toString(permissions))); } if (mPublicUpload != null) { parametersToUpdate.add(new Pair<>(PARAM_PUBLIC_UPLOAD, Boolean.toString(mPublicUpload))); if (publicUpload != null) { parametersToUpdate.add(new Pair<>(PARAM_PUBLIC_UPLOAD, Boolean.toString(publicUpload))); } parametersToUpdate.add(new Pair<>(PARAM_NOTE, note)); /// perform required PUT requests PutMethod put = null; String uriString = null; String uriString; try { Uri requestUri = client.getBaseUri(); Uri.Builder uriBuilder = requestUri.buildUpon(); uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH.substring(1)); uriBuilder.appendEncodedPath(Long.toString(mRemoteId)); uriBuilder.appendEncodedPath(Long.toString(remoteId)); uriString = uriBuilder.build().toString(); for (Pair<String, String> parameter : parametersToUpdate) { Loading