mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-18 07:28:27 +00:00
79 lines
2.2 KiB
Java
79 lines
2.2 KiB
Java
package org.thoughtcrime.securesms.linkpreview;
|
|
|
|
import android.support.annotation.NonNull;
|
|
import android.support.annotation.Nullable;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
|
|
import org.thoughtcrime.securesms.attachments.Attachment;
|
|
import org.thoughtcrime.securesms.attachments.AttachmentId;
|
|
import org.thoughtcrime.securesms.attachments.DatabaseAttachment;
|
|
import org.thoughtcrime.securesms.util.JsonUtils;
|
|
import org.whispersystems.libsignal.util.guava.Optional;
|
|
|
|
import java.io.IOException;
|
|
|
|
public class LinkPreview {
|
|
|
|
@JsonProperty
|
|
private final String url;
|
|
|
|
@JsonProperty
|
|
private final String title;
|
|
|
|
@JsonProperty
|
|
private final AttachmentId attachmentId;
|
|
|
|
@JsonIgnore
|
|
public Optional<Attachment> thumbnail;
|
|
|
|
public LinkPreview(@NonNull String url, @NonNull String title, @NonNull DatabaseAttachment thumbnail) {
|
|
this.url = url;
|
|
this.title = title;
|
|
this.thumbnail = Optional.of(thumbnail);
|
|
this.attachmentId = thumbnail.getAttachmentId();
|
|
}
|
|
|
|
public LinkPreview(@NonNull String url, @NonNull String title, @NonNull Optional<Attachment> thumbnail) {
|
|
this.url = url;
|
|
this.title = title;
|
|
this.thumbnail = thumbnail;
|
|
this.attachmentId = null;
|
|
}
|
|
|
|
public LinkPreview(@JsonProperty("url") @NonNull String url,
|
|
@JsonProperty("title") @NonNull String title,
|
|
@JsonProperty("attachmentId") @Nullable AttachmentId attachmentId)
|
|
{
|
|
this.url = url;
|
|
this.title = title;
|
|
this.attachmentId = attachmentId;
|
|
this.thumbnail = Optional.absent();
|
|
}
|
|
|
|
public String getUrl() {
|
|
return url;
|
|
}
|
|
|
|
public String getTitle() {
|
|
return title;
|
|
}
|
|
|
|
public Optional<Attachment> getThumbnail() {
|
|
return thumbnail;
|
|
}
|
|
|
|
public @Nullable AttachmentId getAttachmentId() {
|
|
return attachmentId;
|
|
}
|
|
|
|
public String serialize() throws IOException {
|
|
return JsonUtils.toJson(this);
|
|
}
|
|
|
|
public static LinkPreview deserialize(@NonNull String serialized) throws IOException {
|
|
return JsonUtils.fromJson(serialized, LinkPreview.class);
|
|
}
|
|
}
|