45 lines
1.2 KiB
Java
45 lines
1.2 KiB
Java
package org.thoughtcrime.securesms.conversation;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
|
import org.thoughtcrime.securesms.util.Conversions;
|
|
|
|
import java.security.MessageDigest;
|
|
|
|
/**
|
|
* A view level model used to pass arbitrary message related information needed
|
|
* for various presentations.
|
|
*/
|
|
public class ConversationMessage {
|
|
private final MessageRecord messageRecord;
|
|
|
|
public ConversationMessage(@NonNull MessageRecord messageRecord) {
|
|
this.messageRecord = messageRecord;
|
|
}
|
|
|
|
public @NonNull MessageRecord getMessageRecord() {
|
|
return messageRecord;
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(Object o) {
|
|
if (this == o) return true;
|
|
if (o == null || getClass() != o.getClass()) return false;
|
|
final ConversationMessage that = (ConversationMessage) o;
|
|
return messageRecord.equals(that.messageRecord);
|
|
}
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
return messageRecord.hashCode();
|
|
}
|
|
|
|
public long getUniqueId(@NonNull MessageDigest digest) {
|
|
String unique = (messageRecord.isMms() ? "MMS::" : "SMS::") + messageRecord.getId();
|
|
byte[] bytes = digest.digest(unique.getBytes());
|
|
|
|
return Conversions.byteArrayToLong(bytes);
|
|
}
|
|
}
|