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>2024-01-22 10:08:36 +0300
committerStefan Niedermann <info@niedermann.it>2024-01-22 10:08:43 +0300
commit82e2b25e15a530b4eb93bb074a4838b355a16969 (patch)
treed118667bbe7a77ad9c7ee2ea1f90a7ed41e9f591
parentd0198d39d002a1fe20852ccf6a37a6b3772f99b2 (diff)
fix(attachments): Allow to delete "file" attachments
Refs: #871 Signed-off-by: Stefan Niedermann <info@niedermann.it>
-rw-r--r--FAQ.md1
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/remote/adapters/ServerAdapter.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/remote/api/DeckAPI.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/remote/helpers/providers/AttachmentDataProvider.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/AttachmentViewHolder.java14
-rw-r--r--fastlane/metadata/android/en-US/changelogs/1024000.txt1
7 files changed, 13 insertions, 15 deletions
diff --git a/FAQ.md b/FAQ.md
index 7fb1aa631..a3eca4904 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -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