package de.thedevstack.conversationsplus.services.filetransfer.http.download; import de.thedevstack.android.logcat.Logging; import de.thedevstack.conversationsplus.ConversationsPlusApplication; import de.thedevstack.conversationsplus.ConversationsPlusPreferences; import de.thedevstack.conversationsplus.entities.Message; import de.thedevstack.conversationsplus.http.HttpHeadRetrievedListener; import de.thedevstack.conversationsplus.services.filetransfer.FileTransferManager; import de.thedevstack.conversationsplus.utils.XmppConnectionServiceAccessor; /** * */ public class AutomaticFileDownload implements HttpHeadRetrievedListener { @Override public void onFileSizeRetrieved(long size, Message message) { if (!this.transferFile(message)) { } } /** * Transfers a file for the corresponding message. * * @param message the message containing the file to transfer * @return true if the file transfer was successful, false otherwise */ public boolean transferFile(Message message) { if (this.accept(message)) { Logging.d("http-download", "Starting automatic download"); FileTransferManager ftm = FileTransferManager.getInstance(); if (ftm.accept(message)) { return ftm.transferFile(message); } } return false; } /** * Checks whether a message can be sent using this service or not. * * @param message the message to be checked * @return true if the message can be processed, false otherwise */ public boolean accept(Message message) { long size = message.getFileParams().getSize(); return ConversationsPlusApplication.hasStoragePermission() && size > -1 && size <= ConversationsPlusPreferences.autoAcceptFileSize() && XmppConnectionServiceAccessor.xmppConnectionService.isDownloadAllowedInConnection(); } }