Remove isMms from MessageId.

This commit is contained in:
Greyson Parrelli
2022-12-14 21:45:52 -05:00
parent 60ae883df6
commit 3850c9c89d
33 changed files with 103 additions and 172 deletions

View File

@@ -167,8 +167,7 @@ public class ConversationDataSource implements PagedDataSource<MessageId, Conver
@Override
public @Nullable ConversationMessage load(@NonNull MessageId messageId) {
Stopwatch stopwatch = new Stopwatch("load(" + messageId + "), thread " + threadId);
MessageTable database = messageId.isMms() ? SignalDatabase.messages() : SignalDatabase.messages();
MessageRecord record = database.getMessageRecordOrNull(messageId.getId());
MessageRecord record = SignalDatabase.messages().getMessageRecordOrNull(messageId.getId());
if (record instanceof MediaMmsMessageRecord &&
((MediaMmsMessageRecord) record).getParentStoryId() != null &&
@@ -180,12 +179,7 @@ public class ConversationDataSource implements PagedDataSource<MessageId, Conver
try {
if (record != null) {
List<Mention> mentions;
if (messageId.isMms()) {
mentions = SignalDatabase.mentions().getMentionsForMessage(messageId.getId());
} else {
mentions = Collections.emptyList();
}
List<Mention> mentions = SignalDatabase.mentions().getMentionsForMessage(messageId.getId());
stopwatch.split("mentions");
@@ -194,11 +188,9 @@ public class ConversationDataSource implements PagedDataSource<MessageId, Conver
stopwatch.split("reactions");
if (messageId.isMms()) {
List<DatabaseAttachment> attachments = SignalDatabase.attachments().getAttachmentsForMessage(messageId.getId());
if (attachments.size() > 0) {
record = ((MediaMmsMessageRecord) record).withAttachments(context, attachments);
}
List<DatabaseAttachment> attachments = SignalDatabase.attachments().getAttachmentsForMessage(messageId.getId());
if (attachments.size() > 0) {
record = ((MediaMmsMessageRecord) record).withAttachments(context, attachments);
}
stopwatch.split("attachments");
@@ -220,7 +212,7 @@ public class ConversationDataSource implements PagedDataSource<MessageId, Conver
@Override
public @NonNull MessageId getKey(@NonNull ConversationMessage conversationMessage) {
return new MessageId(conversationMessage.getMessageRecord().getId(), conversationMessage.getMessageRecord().isMms());
return new MessageId(conversationMessage.getMessageRecord().getId());
}
private static class MentionHelper {
@@ -281,7 +273,7 @@ public class ConversationDataSource implements PagedDataSource<MessageId, Conver
private Map<MessageId, List<ReactionRecord>> messageIdToReactions = new HashMap<>();
public void add(MessageRecord record) {
messageIds.add(new MessageId(record.getId(), record.isMms()));
messageIds.add(new MessageId(record.getId()));
}
public void addAll(List<MessageRecord> records) {
@@ -297,7 +289,7 @@ public class ConversationDataSource implements PagedDataSource<MessageId, Conver
public @NonNull List<MessageRecord> buildUpdatedModels(@NonNull List<MessageRecord> records) {
return records.stream()
.map(record -> {
MessageId messageId = new MessageId(record.getId(), record.isMms());
MessageId messageId = new MessageId(record.getId());
List<ReactionRecord> reactions = messageIdToReactions.get(messageId);
return recordWithReactions(record, reactions);

View File

@@ -1758,7 +1758,7 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
if (getContext() != null && getActivity() != null) {
MessageQuotesBottomSheet.show(
getChildFragmentManager(),
new MessageId(messageRecord.getId(), messageRecord.isMms()),
new MessageId(messageRecord.getId()),
recipient.getId()
);
}

View File

@@ -2502,9 +2502,9 @@ public class ConversationParentFragment extends Fragment
.orElse(null);
if (oldRecord != null && oldRecord.getEmoji().equals(emoji)) {
MessageSender.sendReactionRemoval(context, new MessageId(messageRecord.getId(), messageRecord.isMms()), oldRecord);
MessageSender.sendReactionRemoval(context, new MessageId(messageRecord.getId()), oldRecord);
} else {
MessageSender.sendNewReaction(context, new MessageId(messageRecord.getId(), messageRecord.isMms()), emoji);
MessageSender.sendNewReaction(context, new MessageId(messageRecord.getId()), emoji);
}
});
}
@@ -2522,7 +2522,7 @@ public class ConversationParentFragment extends Fragment
reactionDelegate.hide();
SignalExecutors.BOUNDED.execute(() -> MessageSender.sendReactionRemoval(context,
new MessageId(messageRecord.getId(), messageRecord.isMms()),
new MessageId(messageRecord.getId()),
oldRecord));
} else {
reactionDelegate.hideForReactWithAny();

View File

@@ -96,7 +96,7 @@ class MessageQuotesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment() {
messageAdapter.submitList(messages) {
if (firstRender) {
val targetMessageId = MessageId.deserialize(arguments?.getString(KEY_MESSAGE_ID, null) ?: throw IllegalArgumentException())
val targetMessagePosition = messages.indexOfFirst { it.messageRecord.id == targetMessageId.id && it.messageRecord.isMms == targetMessageId.mms }
val targetMessagePosition = messages.indexOfFirst { it.messageRecord.id == targetMessageId.id }
(list.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(targetMessagePosition, 100)

View File

@@ -48,11 +48,7 @@ class MessageQuotesRepository {
private fun getMessagesInQuoteChainSync(application: Application, messageId: MessageId): List<ConversationMessage> {
val rootMessageId: MessageId = SignalDatabase.mmsSms.getRootOfQuoteChain(messageId)
var originalRecord: MessageRecord? = if (rootMessageId.mms) {
SignalDatabase.messages.getMessageRecordOrNull(rootMessageId.id)
} else {
SignalDatabase.messages.getMessageRecordOrNull(rootMessageId.id)
}
var originalRecord: MessageRecord? = SignalDatabase.messages.getMessageRecordOrNull(rootMessageId.id)
if (originalRecord == null) {
return emptyList()