diff options
author | Stefan Niedermann <info@niedermann.it> | 2024-01-22 10:08:36 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2024-01-22 10:08:43 +0300 |
commit | 82e2b25e15a530b4eb93bb074a4838b355a16969 (patch) | |
tree | d118667bbe7a77ad9c7ee2ea1f90a7ed41e9f591 | |
parent | d0198d39d002a1fe20852ccf6a37a6b3772f99b2 (diff) |
fix(attachments): Allow to delete "file" attachments
Refs: #871
Signed-off-by: Stefan Niedermann <info@niedermann.it>
7 files changed, 13 insertions, 15 deletions
@@ -81,7 +81,6 @@ We opened a [feature request](https://github.com/nextcloud/deck/issues/3101) to Here is a collection of issues which are caused by the (not by us developed) Deck server app and can not be fixed within Deck Android. Please [contact the Nextcloud GmbH](https://nextcloud.com/contact/) if you want them to be fixed. -- Attachments are not deletable since Deck server 1.3: https://github.com/nextcloud/deck/issues/2904 - Viewing archived cards is not possible: https://github.com/nextcloud/deck/issues/2613 - Renaming a list in the web UI does not update in Deck Android: https://github.com/nextcloud/deck/issues/2866 diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java index 7a6aba31d..ccb236ea6 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java @@ -173,6 +173,10 @@ public class Version implements Comparable<Version> { return isGreaterOrEqualTo(VERSION_1_3_0); } + public boolean supportsDeletingFileAttachments() { + return isGreaterOrEqualTo(VERSION_1_12_2); + } + /** * Cards started to have an additional property called <a href="https://github.com/nextcloud/deck/pull/4137"><code>done</code></a> with version <a href="https://github.com/nextcloud/deck/releases/tag/v1.12.0">{@link #VERSION_1_12_0}</a> of the Deck server app. * However, there was an <a href="https://github.com/nextcloud/deck/issues/534#issuecomment-1892061055">issue that would have required to call a second endpoint when marking a card as <code>undone</code></a> which was <a href="https://github.com/nextcloud/deck/pull/5491">fixed</a> in {@link #VERSION_1_12_2}. diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/remote/adapters/ServerAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/remote/adapters/ServerAdapter.java index ec5dc551b..cc7bedbf1 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/remote/adapters/ServerAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/remote/adapters/ServerAdapter.java @@ -305,9 +305,9 @@ 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, @NonNull ResponseCallback<EmptyResponse> responseCallback) { + public void deleteAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, @NonNull Attachment attachment, @NonNull ResponseCallback<EmptyResponse> responseCallback) { ensureInternetConnection(); - RequestHelper.request(provider, () -> provider.getDeckAPI().deleteAttachment(remoteBoardId, remoteStackId, remoteCardId, remoteAttachmentId), responseCallback); + RequestHelper.request(provider, () -> provider.getDeckAPI().deleteAttachment(attachment.getType().getValue(), remoteBoardId, remoteStackId, remoteCardId, attachment.getId()), responseCallback); } public void restoreAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, long remoteAttachmentId, @NonNull ResponseCallback<Attachment> responseCallback) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/DeckAPI.java b/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/DeckAPI.java index 1f17d2daa..710082c5d 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/DeckAPI.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/DeckAPI.java @@ -161,7 +161,7 @@ public interface DeckAPI { Observable<Attachment> updateAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Path("attachmentId") long attachmentId, @Part MultipartBody.Part type, @Part MultipartBody.Part attachment); @DELETE("v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}") - Observable<EmptyResponse> deleteAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Path("attachmentId") long attachmentId); + Observable<EmptyResponse> deleteAttachment(@Query("type") String type, @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/remote/helpers/providers/AttachmentDataProvider.java b/app/src/main/java/it/niedermann/nextcloud/deck/remote/helpers/providers/AttachmentDataProvider.java index e3f84fdaf..09ad2c81b 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/remote/helpers/providers/AttachmentDataProvider.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/remote/helpers/providers/AttachmentDataProvider.java @@ -104,7 +104,7 @@ public class AttachmentDataProvider extends AbstractSyncDataProvider<Attachment> @Override public void deleteOnServer(ServerAdapter serverAdapter, long accountId, ResponseCallback<EmptyResponse> 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 85c84dc00..dd586bd84 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 @@ -18,7 +18,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.theme.ThemeUtils; import it.niedermann.nextcloud.deck.util.AttachmentUtil; @@ -36,15 +35,10 @@ public abstract class AttachmentViewHolder extends RecyclerView.ViewHolder { getNotSyncedYetStatusIcon().setVisibility(synced ? View.GONE : View.VISIBLE); 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; + }); if (attachmentUri == null || attachment.getId() == null || cardRemoteId == null) { menu.findItem(android.R.id.copyUrl).setVisible(false); } else { diff --git a/fastlane/metadata/android/en-US/changelogs/1024000.txt b/fastlane/metadata/android/en-US/changelogs/1024000.txt index b0d209ea3..fdb6e58f8 100644 --- a/fastlane/metadata/android/en-US/changelogs/1024000.txt +++ b/fastlane/metadata/android/en-US/changelogs/1024000.txt @@ -1,4 +1,5 @@ - ☑️ Support Completed / Uncompleted state (#1556) - Requires deck server ≥ 1.12.2 - 📎 Open file attachments in Nextcloud Files app (#1561) - Requires deck server ≥ 1.12.2 +- 🗑️ Allow to delete "file" attachments (#871) - ☑️ Share text as task to card description (#1558) - ☀️ Force keeping screen on while importing first account
\ No newline at end of file |