From 11e2b1accd933eb9fcb4477a60dd0864d9f72a67 Mon Sep 17 00:00:00 2001 From: steckbrief Date: Mon, 31 Jul 2017 08:44:32 +0200 Subject: Implements FS#245: Implement FiletransferHttp (upload and delete), some minor bug fixes including to fail a JingleTransfer in case criterias are not met --- .../http/delete/DeleteTokenReceived.java | 97 ---------------------- 1 file changed, 97 deletions(-) delete mode 100644 src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteTokenReceived.java (limited to 'src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteTokenReceived.java') 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 deleted file mode 100644 index d61a5c6a..00000000 --- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteTokenReceived.java +++ /dev/null @@ -1,97 +0,0 @@ -package de.thedevstack.conversationsplus.services.filetransfer.http.delete; - -import android.widget.Toast; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.io.IOException; - -import de.thedevstack.android.logcat.Logging; -import de.thedevstack.conversationsplus.R; -import de.thedevstack.conversationsplus.entities.Account; -import de.thedevstack.conversationsplus.enums.FileStatus; -import de.thedevstack.conversationsplus.http.HttpClient; -import de.thedevstack.conversationsplus.utils.MessageUtil; -import de.thedevstack.conversationsplus.utils.ui.ConversationsPlusToast; -import de.thedevstack.conversationsplus.xmpp.OnIqPacketReceived; -import de.thedevstack.conversationsplus.xmpp.exceptions.ServiceUnavailableException; -import de.thedevstack.conversationsplus.xmpp.exceptions.XmppException; -import de.thedevstack.conversationsplus.xmpp.filetransfer.http.delete.DeleteSlotPacketParser; -import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket; -import okhttp3.Call; -import okhttp3.Callback; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; - -/** - * - */ -public class DeleteTokenReceived implements OnIqPacketReceived { - private static final String HEADER_NAME_DELETE_TOKEN = "X-FILETRANSFER-HTTP-DELETE-TOKEN"; - private final DeleteRemoteFile remoteFile; - - public DeleteTokenReceived(DeleteRemoteFile remoteFile) { - this.remoteFile = remoteFile; - } - - @Override - public void onIqPacketReceived(Account account, IqPacket packet) { - try { - String url = this.remoteFile.getPath(); - String deleteToken = DeleteSlotPacketParser.parseDeleteToken(packet); - Logging.d("filetransfer.http.delete", "Got delete token '" + deleteToken + "' for remote file '" + remoteFile.getPath() + "'"); - OkHttpClient client = HttpClient.getOkHttpClient(true); - Request request = new Request.Builder() - .url(url) - .addHeader(HEADER_NAME_DELETE_TOKEN, deleteToken) - .delete() - .build(); - client.newCall(request).enqueue(new Callback() { - @Override - public void onFailure(Call call, IOException e) { - Logging.e("filetransfer.http.delete", "Error while connecting to '" + call.request().url() + "': " + e.getMessage()); - MessageUtil.setAndSaveFileStatus(remoteFile.getMessage(), FileStatus.DELETE_FAILED); - } - - @Override - public void onResponse(Call call, Response response) throws IOException { - if (response.isSuccessful()) { - 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 500: - try { - JSONObject jsonObject = new JSONObject(detailedMessage); - detailedMessage = jsonObject.getString("msg"); - } catch (JSONException e) { - 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.setAndSaveFileStatus(remoteFile.getMessage(), fileStatus); - } - } - }); - - } catch (XmppException e) { - Logging.e("filetransfer.http.delete", "Error while trying to get the delete token: " + e.getMessage()); - int messageResId = R.string.cplus_remote_file_delete_failed; - if (e instanceof ServiceUnavailableException) { - messageResId = R.string.cplus_remote_file_delete_service_unavailable; - } - ConversationsPlusToast.makeErrorToast(messageResId, Toast.LENGTH_LONG); - MessageUtil.setAndSaveFileStatus(remoteFile.getMessage(), FileStatus.DELETE_FAILED); - } - } -} -- cgit v1.2.3