package de.thedevstack.conversationsplus.services.filetransfer.http.delete; import de.thedevstack.conversationsplus.enums.FileStatus; import de.thedevstack.conversationsplus.ui.listeners.SimpleUserDecisionCallback; import de.thedevstack.conversationsplus.utils.MessageUtil; import de.thedevstack.conversationsplus.utils.XmppSendUtil; import de.thedevstack.conversationsplus.xmpp.filetransfer.http.FileTransferHttp; import de.thedevstack.conversationsplus.xmpp.filetransfer.http.delete.FileTransferHttpDeleteSlotRequestPacketGenerator; import eu.siacs.conversations.entities.Account; import eu.siacs.conversations.entities.Message; import eu.siacs.conversations.xmpp.jid.Jid; import eu.siacs.conversations.xmpp.stanzas.IqPacket; /** * */ public class DeleteRemoteFileService implements SimpleUserDecisionCallback { private Message message; public DeleteRemoteFileService(Message message) { this.message = message; } public void deleteRemoteFile() { if (this.message.isHttpUploaded()) { String path = this.message.getBody(); if (this.message.hasFileOnRemoteHost()) { 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)); } } @Override public void onYes() { this.deleteRemoteFile(); } @Override public void onNo() { // Nothing to do } }