package de.thedevstack.conversationsplus.utils; import android.graphics.BitmapFactory; import java.net.URL; import de.thedevstack.conversationsplus.entities.DownloadableFile; import de.thedevstack.conversationsplus.entities.Message; import de.thedevstack.conversationsplus.persistance.FileBackend; /** * Created by tzur on 15.12.2015. */ public final class MessageUtil { public static void updateMessageWithImageDetails(Message message, String filePath, long size, int imageWidth, int imageHeight) { message.setRelativeFilePath(filePath); MessageUtil.updateMessageBodyWithImageParams(message, size, imageWidth, imageHeight); } public static void updateFileParams(Message message) { updateFileParams(message, null); } public static void updateFileParams(Message message, URL url) { DownloadableFile file = FileBackend.getFile(message); int imageWidth = -1; int imageHeight = -1; if (message.getType() == Message.TYPE_IMAGE || file.getMimeType().startsWith("image/")) { BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(file.getAbsolutePath(), options); imageHeight = options.outHeight; imageWidth = options.outWidth; } MessageUtil.updateMessageBodyWithFileParams(message, url, file.getSize(), imageWidth, imageHeight); } private static void updateMessageBodyWithFileParams(Message message, URL url, long fileSize, int imageWidth, int imageHeight) { message.setBody(MessageUtil.getMessageBodyWithImageParams(url, fileSize, imageWidth, imageHeight)); } private static void updateMessageBodyWithImageParams(Message message, long size, int imageWidth, int imageHeight) { MessageUtil.updateMessageBodyWithImageParams(message, null, size, imageWidth, imageHeight); } private static void updateMessageBodyWithImageParams(Message message, URL url, long size, int imageWidth, int imageHeight) { message.setBody(MessageUtil.getMessageBodyWithImageParams(url, size, imageWidth, imageHeight)); } private static String getMessageBodyWithImageParams(URL url, long size, int imageWidth, int imageHeight) { StringBuilder sb = new StringBuilder(); if (null != url) { sb.append(url.toString()); sb.append('|'); } sb.append(size); if (-1 < imageWidth) { sb.append('|'); sb.append(imageWidth); } if (-1 < imageHeight) { sb.append('|'); sb.append(imageHeight); } return sb.toString(); } private MessageUtil() { // Static helper class } }