mirror of
				https://github.com/oxen-io/session-android.git
				synced 2025-10-30 23:09:20 +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);
 | |
|   }
 | |
| }
 | 
