package de.thedevstack.conversationsplus.services.filetransfer.http.download; import android.os.PowerManager; import de.thedevstack.conversationsplus.entities.FileParams; import de.thedevstack.conversationsplus.entities.Message; import de.thedevstack.conversationsplus.http.ProgressListener; import de.thedevstack.conversationsplus.services.filetransfer.FileTransferEntity; import de.thedevstack.conversationsplus.utils.UiUpdateHelper; /** * */ public class HttpDownloadFileTransferEntity extends FileTransferEntity implements ProgressListener { public PowerManager.WakeLock wakeLock; /** * Initializes the FileTransferEntity based on the associated message. * This initialization includes loading the file and associating this transferable to the message. * * @param message the message in which the file to transfer is contained. */ public HttpDownloadFileTransferEntity(Message message) { super(message, false); FileParams fileParams = message.getFileParams(); this.initFile(); this.getFile().setExpectedSize(fileParams.getSize()); } /** * Returns the global transferable status. * * @return {@value STATUS_FAILED} if #isFailed returns true, {@value STATUS_DOWNLOADING} otherwise */ @Override public int getStatus() { int status = (isFailed()) ? STATUS_FAILED : STATUS_DOWNLOADING; return status; } @Override public void update(long bytesRead, long contentLength, boolean done) { if (0 >= getFile().getExpectedSize()) { getFile().setExpectedSize(contentLength); getMessage().getFileParams().setSize(contentLength); } if (done) { this.transferred(); } else { this.updateProgress(bytesRead); } UiUpdateHelper.updateConversationUi(); } }