aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/AbstractFileTransferService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/thedevstack/conversationsplus/services/filetransfer/AbstractFileTransferService.java')
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/AbstractFileTransferService.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/AbstractFileTransferService.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/AbstractFileTransferService.java
new file mode 100644
index 00000000..02bd04b9
--- /dev/null
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/AbstractFileTransferService.java
@@ -0,0 +1,31 @@
+package de.thedevstack.conversationsplus.services.filetransfer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import de.thedevstack.conversationsplus.entities.Message;
+import de.thedevstack.conversationsplus.services.FileTransferService;
+
+/**
+ *
+ */
+public abstract class AbstractFileTransferService implements FileTransferService, FileTransferStatusListener {
+ protected List<Message> failedMessages = new ArrayList<>();
+
+ @Override
+ public void onFailure(Message message, boolean delay) {
+ this.failedMessages.add(message);
+ }
+
+ @Override
+ public void onSuccess(Message message, boolean delay) {
+ if (this.failedMessages.contains(message)) {
+ this.failedMessages.remove(message);
+ }
+ }
+
+ @Override
+ public boolean accept(Message message) {
+ return !this.failedMessages.contains(message);
+ }
+}