Signal-Android/src/org/thoughtcrime/securesms/database/model/MmsMessageRecord.java

89 lines
2.8 KiB
Java
Raw Normal View History

package org.thoughtcrime.securesms.database.model;
2019-06-05 21:47:14 +02:00
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.thoughtcrime.securesms.contactshare.Contact;
import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch;
import org.thoughtcrime.securesms.database.documents.NetworkFailure;
2019-01-15 09:41:05 +01:00
import org.thoughtcrime.securesms.linkpreview.LinkPreview;
import org.thoughtcrime.securesms.mms.Slide;
import org.thoughtcrime.securesms.mms.SlideDeck;
import org.thoughtcrime.securesms.recipients.Recipient;
import java.util.LinkedList;
import java.util.List;
public abstract class MmsMessageRecord extends MessageRecord {
2019-01-15 09:41:05 +01:00
private final @NonNull SlideDeck slideDeck;
private final @Nullable Quote quote;
private final @NonNull List<Contact> contacts = new LinkedList<>();
private final @NonNull List<LinkPreview> linkPreviews = new LinkedList<>();
2019-08-01 01:33:56 +02:00
private final boolean viewOnce;
2019-06-11 08:18:45 +02:00
MmsMessageRecord(long id, String body, Recipient conversationRecipient,
Recipient individualRecipient, int recipientDeviceId, long dateSent,
2017-09-16 07:38:53 +02:00
long dateReceived, long threadId, int deliveryStatus, int deliveryReceiptCount,
long type, List<IdentityKeyMismatch> mismatches,
List<NetworkFailure> networkFailures, int subscriptionId, long expiresIn,
2019-08-01 01:33:56 +02:00
long expireStarted, boolean viewOnce,
2019-06-11 08:18:45 +02:00
@NonNull SlideDeck slideDeck, int readReceiptCount,
2019-01-15 09:41:05 +01:00
@Nullable Quote quote, @NonNull List<Contact> contacts,
@NonNull List<LinkPreview> linkPreviews, boolean unidentified)
{
super(id, body, conversationRecipient, individualRecipient, recipientDeviceId, dateSent, dateReceived, threadId, deliveryStatus, deliveryReceiptCount, type, mismatches, networkFailures, subscriptionId, expiresIn, expireStarted, readReceiptCount, unidentified);
2018-02-07 23:01:37 +01:00
2019-08-01 01:33:56 +02:00
this.slideDeck = slideDeck;
this.quote = quote;
this.viewOnce = viewOnce;
this.contacts.addAll(contacts);
2019-01-15 09:41:05 +01:00
this.linkPreviews.addAll(linkPreviews);
}
@Override
public boolean isMms() {
return true;
}
@NonNull
public SlideDeck getSlideDeck() {
return slideDeck;
}
@Override
public boolean isMediaPending() {
for (Slide slide : getSlideDeck().getSlides()) {
if (slide.isInProgress() || slide.isPendingDownload()) {
return true;
}
}
return false;
}
2019-09-27 15:10:30 +02:00
@Override
public boolean isViewOnce() {
return viewOnce;
}
public boolean containsMediaSlide() {
return slideDeck.containsMediaSlide();
}
2018-02-07 23:01:37 +01:00
public @Nullable Quote getQuote() {
return quote;
}
public @NonNull List<Contact> getSharedContacts() {
return contacts;
}
2019-01-15 09:41:05 +01:00
public @NonNull List<LinkPreview> getLinkPreviews() {
return linkPreviews;
}
}