2013-07-19 00:42:45 +00:00
|
|
|
package org.thoughtcrime.securesms.mms;
|
|
|
|
|
2015-10-13 01:25:05 +00:00
|
|
|
import org.thoughtcrime.securesms.attachments.Attachment;
|
|
|
|
import org.thoughtcrime.securesms.attachments.PointerAttachment;
|
2017-07-26 16:59:15 +00:00
|
|
|
import org.thoughtcrime.securesms.database.Address;
|
2014-11-04 23:01:32 +00:00
|
|
|
import org.thoughtcrime.securesms.util.GroupUtil;
|
2016-03-23 17:34:41 +00:00
|
|
|
import org.whispersystems.libsignal.util.guava.Optional;
|
|
|
|
import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
|
|
|
|
import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
|
2014-11-03 23:16:04 +00:00
|
|
|
|
2015-10-13 01:25:05 +00:00
|
|
|
import java.util.LinkedList;
|
2014-11-03 23:16:04 +00:00
|
|
|
import java.util.List;
|
2013-07-19 00:42:45 +00:00
|
|
|
|
|
|
|
public class IncomingMediaMessage {
|
|
|
|
|
2017-07-26 16:59:15 +00:00
|
|
|
private final Address from;
|
|
|
|
private final Address groupId;
|
2017-08-01 15:56:00 +00:00
|
|
|
private final String body;
|
2015-10-13 01:25:05 +00:00
|
|
|
private final boolean push;
|
|
|
|
private final long sentTimeMillis;
|
2016-02-06 00:10:33 +00:00
|
|
|
private final int subscriptionId;
|
2016-08-16 03:23:56 +00:00
|
|
|
private final long expiresIn;
|
|
|
|
private final boolean expirationUpdate;
|
2015-10-13 01:25:05 +00:00
|
|
|
|
|
|
|
private final List<Attachment> attachments = new LinkedList<>();
|
2013-07-19 00:42:45 +00:00
|
|
|
|
2017-08-01 15:56:00 +00:00
|
|
|
public IncomingMediaMessage(Address from,
|
|
|
|
Optional<Address> groupId,
|
|
|
|
String body,
|
|
|
|
long sentTimeMillis,
|
|
|
|
List<Attachment> attachments,
|
|
|
|
int subscriptionId,
|
|
|
|
long expiresIn,
|
|
|
|
boolean expirationUpdate)
|
2015-10-13 01:25:05 +00:00
|
|
|
{
|
2017-08-01 15:56:00 +00:00
|
|
|
this.from = from;
|
|
|
|
this.groupId = groupId.orNull();
|
2016-08-16 03:23:56 +00:00
|
|
|
this.sentTimeMillis = sentTimeMillis;
|
|
|
|
this.body = body;
|
|
|
|
this.push = false;
|
|
|
|
this.subscriptionId = subscriptionId;
|
|
|
|
this.expiresIn = expiresIn;
|
|
|
|
this.expirationUpdate = expirationUpdate;
|
2015-10-13 01:25:05 +00:00
|
|
|
|
|
|
|
this.attachments.addAll(attachments);
|
2013-07-19 00:42:45 +00:00
|
|
|
}
|
|
|
|
|
2018-01-25 03:17:44 +00:00
|
|
|
public IncomingMediaMessage(Address from,
|
2014-11-03 23:16:04 +00:00
|
|
|
long sentTimeMillis,
|
2016-02-06 00:10:33 +00:00
|
|
|
int subscriptionId,
|
2016-08-16 03:23:56 +00:00
|
|
|
long expiresIn,
|
|
|
|
boolean expirationUpdate,
|
2014-11-03 23:16:04 +00:00
|
|
|
Optional<String> relay,
|
|
|
|
Optional<String> body,
|
2016-03-23 17:34:41 +00:00
|
|
|
Optional<SignalServiceGroup> group,
|
|
|
|
Optional<List<SignalServiceAttachment>> attachments)
|
2013-07-19 00:42:45 +00:00
|
|
|
{
|
2016-08-16 03:23:56 +00:00
|
|
|
this.push = true;
|
|
|
|
this.from = from;
|
|
|
|
this.sentTimeMillis = sentTimeMillis;
|
|
|
|
this.body = body.orNull();
|
|
|
|
this.subscriptionId = subscriptionId;
|
|
|
|
this.expiresIn = expiresIn;
|
|
|
|
this.expirationUpdate = expirationUpdate;
|
2015-10-13 01:25:05 +00:00
|
|
|
|
2017-08-01 15:56:00 +00:00
|
|
|
if (group.isPresent()) this.groupId = Address.fromSerialized(GroupUtil.getEncodedId(group.get().getGroupId(), false));
|
2015-10-13 01:25:05 +00:00
|
|
|
else this.groupId = null;
|
2013-07-19 00:42:45 +00:00
|
|
|
|
2018-01-25 03:17:44 +00:00
|
|
|
this.attachments.addAll(PointerAttachment.forPointers(attachments));
|
2013-07-19 00:42:45 +00:00
|
|
|
}
|
|
|
|
|
2016-02-06 00:10:33 +00:00
|
|
|
public int getSubscriptionId() {
|
|
|
|
return subscriptionId;
|
|
|
|
}
|
|
|
|
|
2015-10-13 01:25:05 +00:00
|
|
|
public String getBody() {
|
2013-07-19 00:42:45 +00:00
|
|
|
return body;
|
|
|
|
}
|
|
|
|
|
2015-10-13 01:25:05 +00:00
|
|
|
public List<Attachment> getAttachments() {
|
|
|
|
return attachments;
|
|
|
|
}
|
|
|
|
|
2017-08-01 15:56:00 +00:00
|
|
|
public Address getFrom() {
|
|
|
|
return from;
|
|
|
|
}
|
|
|
|
|
2017-07-26 16:59:15 +00:00
|
|
|
public Address getGroupId() {
|
2014-01-14 08:26:43 +00:00
|
|
|
return groupId;
|
|
|
|
}
|
|
|
|
|
2014-02-21 07:00:38 +00:00
|
|
|
public boolean isPushMessage() {
|
|
|
|
return push;
|
|
|
|
}
|
|
|
|
|
2016-08-16 03:23:56 +00:00
|
|
|
public boolean isExpirationUpdate() {
|
|
|
|
return expirationUpdate;
|
|
|
|
}
|
|
|
|
|
2015-10-13 01:25:05 +00:00
|
|
|
public long getSentTimeMillis() {
|
|
|
|
return sentTimeMillis;
|
|
|
|
}
|
|
|
|
|
2016-08-16 03:23:56 +00:00
|
|
|
public long getExpiresIn() {
|
|
|
|
return expiresIn;
|
|
|
|
}
|
|
|
|
|
2013-07-19 00:42:45 +00:00
|
|
|
public boolean isGroupMessage() {
|
2017-08-01 15:56:00 +00:00
|
|
|
return groupId != null;
|
2013-07-19 00:42:45 +00:00
|
|
|
}
|
|
|
|
}
|