Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2021-03-20 21:49:27 +0300
committerStefan Niedermann <info@niedermann.it>2021-03-20 21:49:27 +0300
commit7bdf0df83e32cb566ac3a250419b689f5f9ebe55 (patch)
tree9cc589e4878c724bd2f7058888e9fe76e7c1d294
parent0df58bfd1b8d81943e66e8f077701bbaef7ae236 (diff)
#871 Allow to delete "file" attachments
Signed-off-by: Stefan Niedermann <info@niedermann.it>
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java3
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java10
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/AttachmentDataProvider.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/AttachmentViewHolder.java15
4 files changed, 16 insertions, 14 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java
index 988753d48..fe2e67366 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java
@@ -159,6 +159,9 @@ public interface DeckAPI {
@DELETE("v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}")
Observable<Void> deleteAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Path("attachmentId") long attachmentId);
+ @DELETE("v1.1/boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/file:{attachmentId}")
+ Observable<Void> deleteFileAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Path("attachmentId") long attachmentId);
+
@PUT("v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}/restore")
Observable<Attachment> restoreAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Path("attachmentId") long attachmentId);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java
index a1051b98c..4cd0e0edb 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java
@@ -224,7 +224,7 @@ public class ServerAdapter {
ensureInternetConnection();
RequestHelper.request(provider, () -> {
final Account account = responseCallback.getAccount();
- if(account != null && account.getServerDeckVersionAsObject().supportsFileAttachments()) {
+ if (account != null && account.getServerDeckVersionAsObject().supportsFileAttachments()) {
return provider.getDeckAPI().getCard_1_1(boardId, stackId, cardId, getLastSyncDateFormatted(responseCallback.getAccount().getId()));
}
return provider.getDeckAPI().getCard_1_0(boardId, stackId, cardId, getLastSyncDateFormatted(responseCallback.getAccount().getId()));
@@ -331,9 +331,13 @@ public class ServerAdapter {
RequestHelper.request(provider, () -> provider.getDeckAPI().downloadAttachment(remoteBoardId, remoteStackId, remoteCardId, remoteAttachmentId), responseCallback);
}
- public void deleteAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, long remoteAttachmentId, IResponseCallback<Void> responseCallback) {
+ public void deleteAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, @NonNull Attachment attachment, IResponseCallback<Void> responseCallback) {
ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().deleteAttachment(remoteBoardId, remoteStackId, remoteCardId, remoteAttachmentId), responseCallback);
+ if (EAttachmentType.DECK_FILE.equals(attachment.getType())) {
+ RequestHelper.request(provider, () -> provider.getDeckAPI().deleteFileAttachment(remoteBoardId, remoteStackId, remoteCardId, attachment.getId()), responseCallback);
+ } else {
+ RequestHelper.request(provider, () -> provider.getDeckAPI().deleteAttachment(remoteBoardId, remoteStackId, remoteCardId, attachment.getId()), responseCallback);
+ }
}
public void restoreAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, long remoteAttachmentId, IResponseCallback<Attachment> responseCallback) {
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/AttachmentDataProvider.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/AttachmentDataProvider.java
index 4a2b2c613..a215a35b1 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/AttachmentDataProvider.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/AttachmentDataProvider.java
@@ -102,7 +102,7 @@ public class AttachmentDataProvider extends AbstractSyncDataProvider<Attachment>
@Override
public void deleteOnServer(ServerAdapter serverAdapter, long accountId, IResponseCallback<Void> callback, Attachment entity, DataBaseAdapter dataBaseAdapter) {
- serverAdapter.deleteAttachment(board.getId(), stack.getId(), card.getId(), entity.getId(), callback);
+ serverAdapter.deleteAttachment(board.getId(), stack.getId(), card.getId(), entity, callback);
}
@Override
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/AttachmentViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/AttachmentViewHolder.java
index 51087584e..b563aa673 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/AttachmentViewHolder.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/AttachmentViewHolder.java
@@ -17,7 +17,6 @@ import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.model.Account;
import it.niedermann.nextcloud.deck.model.Attachment;
import it.niedermann.nextcloud.deck.model.enums.DBStatus;
-import it.niedermann.nextcloud.deck.model.enums.EAttachmentType;
import it.niedermann.nextcloud.deck.ui.branding.BrandingUtil;
import it.niedermann.nextcloud.deck.util.AttachmentUtil;
@@ -38,15 +37,11 @@ public abstract class AttachmentViewHolder extends RecyclerView.ViewHolder {
setNotSyncedYetStatus(!DBStatus.LOCAL_EDITED.equals(attachment.getStatusEnum()), mainColor);
itemView.setOnCreateContextMenuListener((menu, v, menuInfo) -> {
menuInflater.inflate(R.menu.attachment_menu, menu);
- if(EAttachmentType.DECK_FILE.equals(attachment.getType())) {
- menu.findItem(R.id.delete).setOnMenuItemClickListener(item -> {
- DeleteAttachmentDialogFragment.newInstance(attachment).show(fragmentManager, DeleteAttachmentDialogFragment.class.getCanonicalName());
- return false;
- });
- menu.findItem(R.id.delete).setVisible(true);
- } else {
- menu.findItem(R.id.delete).setVisible(false);
- }
+ menu.findItem(R.id.delete).setOnMenuItemClickListener(item -> {
+ DeleteAttachmentDialogFragment.newInstance(attachment).show(fragmentManager, DeleteAttachmentDialogFragment.class.getCanonicalName());
+ return false;
+ });
+ menu.findItem(R.id.delete).setVisible(true);
if (attachmentUri == null || attachment.getId() == null || cardRemoteId == null) {
menu.findItem(android.R.id.copyUrl).setVisible(false);
} else {