aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/thedevstack/conversationsplus/ui/listeners/DeleteFileCallback.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/thedevstack/conversationsplus/ui/listeners/DeleteFileCallback.java')
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/ui/listeners/DeleteFileCallback.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/DeleteFileCallback.java b/src/main/java/de/thedevstack/conversationsplus/ui/listeners/DeleteFileCallback.java
new file mode 100644
index 00000000..222e473b
--- /dev/null
+++ b/src/main/java/de/thedevstack/conversationsplus/ui/listeners/DeleteFileCallback.java
@@ -0,0 +1,45 @@
+package de.thedevstack.conversationsplus.ui.listeners;
+
+import de.thedevstack.conversationsplus.utils.UiUpdateHelper;
+
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.entities.TransferablePlaceholder;
+import eu.siacs.conversations.persistance.FileBackend;
+
+/**
+ * Callback for the user decision if a file should be deleted or not.
+ */
+public class DeleteFileCallback implements SimpleUserDecisionCallback {
+ private final Message message;
+
+ public DeleteFileCallback(Message message) {
+ this.message = message;
+ }
+
+ /**
+ * Deletes the file and updates the UI.
+ */
+ private void deleteFile() {
+ if (FileBackend.deleteFile(this.message)) {
+ this.message.setTransferable(new TransferablePlaceholder(Transferable.STATUS_DELETED));
+ UiUpdateHelper.updateConversationUi();
+ }
+ }
+
+ /**
+ * Deletes the file.
+ */
+ @Override
+ public void onYes() {
+ this.deleteFile();
+ }
+
+ /**
+ * Nothing to do in this case.
+ */
+ @Override
+ public void onNo() {
+ // Nothing to do
+ }
+}