/*
* Copyright (C) 2015 Actor LLC. <https://actor.im>
*/
package im.actor.core.entity.content;
import im.actor.core.api.ApiDocumentMessage;
import im.actor.core.api.ApiFastThumb;
import im.actor.core.api.ApiFileLocation;
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.LocalDocument;
import im.actor.core.entity.content.internal.LocalFastThumb;
public class DocumentContent extends AbsContent {
public static DocumentContent createLocal(String fileName, int fileSize, String descriptor,
String mimeType, FastThumb fastThumb) {
return new DocumentContent(new ContentLocalContainer(new LocalDocument(fileName,
descriptor, fileSize, mimeType,
fastThumb != null ? new LocalFastThumb(fastThumb) : null)));
}
public static DocumentContent createRemoteDocument(FileReference reference, FastThumb fastThumb) {
return new DocumentContent(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,
null)));
}
protected FileSource source;
protected String mimeType;
protected String name;
protected FastThumb fastThumb;
public DocumentContent(ContentRemoteContainer contentContainer) {
super(contentContainer);
ApiDocumentMessage doc = ((ApiDocumentMessage) contentContainer.getMessage());
source = new FileRemoteSource(new FileReference(
new ApiFileLocation(doc.getFileId(), doc.getAccessHash()), doc.getName(),
doc.getFileSize()));
mimeType = doc.getMimeType();
name = doc.getName();
fastThumb = doc.getThumb() != null ? new FastThumb(doc.getThumb()) : null;
}
public DocumentContent(ContentLocalContainer contentContainer) {
super(contentContainer);
LocalDocument localDocument = (LocalDocument) contentContainer.getContent();
source = new FileLocalSource(localDocument.getFileName(),
localDocument.getFileSize(), localDocument.getFileDescriptor());
mimeType = localDocument.getMimeType();
name = localDocument.getFileName();
fastThumb = localDocument.getFastThumb() != null ? new FastThumb(localDocument.getFastThumb()) : null;
}
public FileSource getSource() {
return source;
}
public String getName() {
return name;
}
public FastThumb getFastThumb() {
return fastThumb;
}
public String getExt() {
String ext = "";
int dotIndex = name.lastIndexOf('.');
if (dotIndex >= 0) {
ext = name.substring(dotIndex + 1);
}
return ext;
}
public String getMimeType() {
return mimeType;
}
}