/* * Copyright (C) 2015 Actor LLC. <https://actor.im> */ package im.actor.core.entity.content; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import im.actor.core.api.ApiDocumentExPhoto; import im.actor.core.api.ApiDocumentMessage; import im.actor.core.api.ApiFastThumb; import im.actor.core.entity.FileReference; import im.actor.core.entity.content.internal.ContentLocalContainer; import im.actor.core.entity.content.internal.ContentRemoteContainer; import im.actor.core.entity.content.internal.LocalFastThumb; import im.actor.core.entity.content.internal.LocalPhoto; public class PhotoContent extends DocumentContent { @NotNull public static PhotoContent createLocalPhoto(@NotNull String descriptor, @NotNull String fileName, int fileSize, int w, int h, @Nullable FastThumb fastThumb) { return new PhotoContent(new ContentLocalContainer( new LocalPhoto( fileName, descriptor, fileSize, "image/jpeg", fastThumb != null ? new LocalFastThumb(fastThumb) : null, w, h))); } @NotNull public static PhotoContent createRemotePhoto(@NotNull FileReference reference, int w, int h, @Nullable FastThumb fastThumb) { return new PhotoContent(new ContentRemoteContainer( new ApiDocumentMessage(reference.getFileId(), reference.getAccessHash(), reference.getFileSize(), reference.getFileName(), "image/jpeg", fastThumb != null ? new ApiFastThumb( fastThumb.getW(), fastThumb.getH(), fastThumb.getImage()) : null, new ApiDocumentExPhoto(w, h)))); } private int w; private int h; public PhotoContent(ContentLocalContainer contentLocalContainer) { super(contentLocalContainer); LocalPhoto photo = ((LocalPhoto) contentLocalContainer.getContent()); w = photo.getW(); h = photo.getH(); } public PhotoContent(ContentRemoteContainer contentRemoteContainer) { super(contentRemoteContainer); ApiDocumentMessage message = (ApiDocumentMessage) contentRemoteContainer.getMessage(); ApiDocumentExPhoto photo = (ApiDocumentExPhoto) message.getExt(); if (photo != null) { w = photo.getW(); h = photo.getH(); } } public int getW() { return w; } public int getH() { return h; } }