aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete')
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFile.java4
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFileService.java11
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteTokenReceived.java18
3 files changed, 21 insertions, 12 deletions
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFile.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFile.java
index 39a369ef..1549388e 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFile.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFile.java
@@ -3,10 +3,10 @@ package de.thedevstack.conversationsplus.services.filetransfer.http.delete;
import android.support.annotation.NonNull;
import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.RemoteFile;
+import de.thedevstack.conversationsplus.dto.RemoteFile;
/**
- * Created by steckbrief on 22.08.2016.
+ *
*/
public class DeleteRemoteFile extends RemoteFile {
private final Message message;
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFileService.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFileService.java
index 2b26fd85..eb9f1b04 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFileService.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFileService.java
@@ -1,8 +1,13 @@
package de.thedevstack.conversationsplus.services.filetransfer.http.delete;
+import de.thedevstack.conversationsplus.ConversationsPlusApplication;
import de.thedevstack.conversationsplus.entities.Account;
import de.thedevstack.conversationsplus.entities.Message;
+import de.thedevstack.conversationsplus.enums.FileStatus;
+import de.thedevstack.conversationsplus.persistance.DatabaseBackend;
import de.thedevstack.conversationsplus.ui.listeners.SimpleUserDecisionCallback;
+import de.thedevstack.conversationsplus.utils.MessageUtil;
+import de.thedevstack.conversationsplus.utils.UiUpdateHelper;
import de.thedevstack.conversationsplus.utils.XmppSendUtil;
import de.thedevstack.conversationsplus.xmpp.filetransfer.http.FileTransferHttp;
import de.thedevstack.conversationsplus.xmpp.filetransfer.http.delete.FileTransferHttpDeleteSlotRequestPacketGenerator;
@@ -10,7 +15,7 @@ import de.thedevstack.conversationsplus.xmpp.jid.Jid;
import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
/**
- * Created by steckbrief on 21.08.2016.
+ *
*/
public class DeleteRemoteFileService implements SimpleUserDecisionCallback {
private Message message;
@@ -23,14 +28,14 @@ public class DeleteRemoteFileService implements SimpleUserDecisionCallback {
if (this.message.isHttpUploaded()) {
String path = this.message.getBody();
if (this.message.hasFileOnRemoteHost()) {
- path = this.message.getFileParams().url.toString();
+ path = this.message.getFileParams().getUrl();
}
DeleteRemoteFile remoteFile = new DeleteRemoteFile(path, this.message);
Account account = this.message.getConversation().getAccount();
Jid host = account.getXmppConnection().findDiscoItemByFeature(FileTransferHttp.NAMESPACE);
IqPacket request = FileTransferHttpDeleteSlotRequestPacketGenerator.generate(host, path);
-
+ MessageUtil.setAndSaveFileStatus(this.message, FileStatus.DELETING);
XmppSendUtil.sendIqPacket(account, request, new DeleteTokenReceived(remoteFile));
}
}
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteTokenReceived.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteTokenReceived.java
index a8bef0ed..186454e4 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteTokenReceived.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteTokenReceived.java
@@ -7,7 +7,7 @@ import java.io.IOException;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Message;
+import de.thedevstack.conversationsplus.enums.FileStatus;
import de.thedevstack.conversationsplus.http.HttpClient;
import de.thedevstack.conversationsplus.utils.MessageUtil;
import de.thedevstack.conversationsplus.xmpp.OnIqPacketReceived;
@@ -21,7 +21,7 @@ import okhttp3.Request;
import okhttp3.Response;
/**
- * Created by steckbrief on 21.08.2016.
+ *
*/
public class DeleteTokenReceived implements OnIqPacketReceived {
private static final String HEADER_NAME_DELETE_TOKEN = "X-FILETRANSFER-HTTP-DELETE-TOKEN";
@@ -47,19 +47,19 @@ public class DeleteTokenReceived implements OnIqPacketReceived {
@Override
public void onFailure(Call call, IOException e) {
Logging.e("filetransfer.http.delete", "Error while connecting to '" + call.request().url() + "': " + e.getMessage());
- MessageUtil.markMessage(remoteFile.getMessage(), Message.STATUS_REMOTE_FILE_DELETE_FAILED);
+ MessageUtil.setAndSaveFileStatus(remoteFile.getMessage(), FileStatus.DELETE_FAILED);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
- MessageUtil.markMessage(remoteFile.getMessage(), Message.STATUS_REMOTE_FILE_DELETED);
+ MessageUtil.setAndSaveFileStatus(remoteFile.getMessage(), FileStatus.DELETED);
Logging.i("filetransfer.http.delete", "Remote file successfully deleted '" + remoteFile.getPath() + "'");
} else {
String detailedMessage = response.body().string();
+ FileStatus fileStatus = FileStatus.DELETE_FAILED;
switch (response.code()) {
case 403:
- case 404:
case 500:
try {
JSONObject jsonObject = new JSONObject(detailedMessage);
@@ -68,16 +68,20 @@ public class DeleteTokenReceived implements OnIqPacketReceived {
Logging.e("filetransfer.http.delete", "Failed to get error message from expected json response: " + detailedMessage);
}
break;
+ case 404:
+ fileStatus = FileStatus.DELETED;
+ Logging.i("filetransfer.http.delete", "Failed to delete file - it was already deleted.");
+ break;
}
Logging.e("filetransfer.http.delete", "Could not delete remote file '" + remoteFile.getPath() + "'. Response Code: " + response.code() + ", details: " + detailedMessage);
- MessageUtil.markMessage(remoteFile.getMessage(), Message.STATUS_REMOTE_FILE_DELETE_FAILED);
+ MessageUtil.setAndSaveFileStatus(remoteFile.getMessage(), fileStatus);
}
}
});
} catch (XmppException e) {
Logging.e("filetransfer.http.delete", "Error while trying to get the delete token: " + e.getMessage());
- MessageUtil.markMessage(remoteFile.getMessage(), Message.STATUS_REMOTE_FILE_DELETE_FAILED);
+ MessageUtil.setAndSaveFileStatus(remoteFile.getMessage(), FileStatus.DELETE_FAILED);
}
}
}