mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 09:20:19 +01:00
Remove the rest of MmsSmsTable.
This commit is contained in:
@@ -15,7 +15,6 @@ import org.thoughtcrime.securesms.conversation.ConversationData.MessageRequestDa
|
||||
import org.thoughtcrime.securesms.conversation.ConversationMessage.ConversationMessageFactory;
|
||||
import org.thoughtcrime.securesms.database.CallTable;
|
||||
import org.thoughtcrime.securesms.database.MessageTable;
|
||||
import org.thoughtcrime.securesms.database.MmsSmsTable;
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase;
|
||||
import org.thoughtcrime.securesms.database.model.InMemoryMessageRecord;
|
||||
import org.thoughtcrime.securesms.database.model.MediaMmsMessageRecord;
|
||||
@@ -94,7 +93,6 @@ public class ConversationDataSource implements PagedDataSource<MessageId, Conver
|
||||
@Override
|
||||
public @NonNull List<ConversationMessage> load(int start, int length, @NonNull CancellationSignal cancellationSignal) {
|
||||
Stopwatch stopwatch = new Stopwatch("load(" + start + ", " + length + "), thread " + threadId);
|
||||
MmsSmsTable db = SignalDatabase.mmsSms();
|
||||
List<MessageRecord> records = new ArrayList<>(length);
|
||||
MentionHelper mentionHelper = new MentionHelper();
|
||||
QuotedHelper quotedHelper = new QuotedHelper();
|
||||
@@ -104,7 +102,7 @@ public class ConversationDataSource implements PagedDataSource<MessageId, Conver
|
||||
CallHelper callHelper = new CallHelper();
|
||||
Set<ServiceId> referencedIds = new HashSet<>();
|
||||
|
||||
try (MessageTable.Reader reader = MessageTable.mmsReaderFor(db.getConversation(threadId, start, length))) {
|
||||
try (MessageTable.Reader reader = MessageTable.mmsReaderFor(SignalDatabase.messages().getConversation(threadId, start, length))) {
|
||||
MessageRecord record;
|
||||
while ((record = reader.getNext()) != null && !cancellationSignal.isCanceled()) {
|
||||
records.add(record);
|
||||
@@ -144,7 +142,7 @@ public class ConversationDataSource implements PagedDataSource<MessageId, Conver
|
||||
records = reactionHelper.buildUpdatedModels(records);
|
||||
stopwatch.split("reaction-models");
|
||||
|
||||
attachmentHelper.fetchAttachments(context);
|
||||
attachmentHelper.fetchAttachments();
|
||||
stopwatch.split("attachments");
|
||||
|
||||
records = attachmentHelper.buildUpdatedModels(context, records);
|
||||
@@ -274,22 +272,28 @@ public class ConversationDataSource implements PagedDataSource<MessageId, Conver
|
||||
}
|
||||
}
|
||||
|
||||
private static class AttachmentHelper {
|
||||
public static class AttachmentHelper {
|
||||
|
||||
private Collection<Long> messageIds = new LinkedList<>();
|
||||
private Map<Long, List<DatabaseAttachment>> messageIdToAttachments = new HashMap<>();
|
||||
|
||||
void add(MessageRecord record) {
|
||||
public void add(MessageRecord record) {
|
||||
if (record.isMms()) {
|
||||
messageIds.add(record.getId());
|
||||
}
|
||||
}
|
||||
|
||||
void fetchAttachments(Context context) {
|
||||
public void addAll(List<MessageRecord> records) {
|
||||
for (MessageRecord record : records) {
|
||||
add(record);
|
||||
}
|
||||
}
|
||||
|
||||
public void fetchAttachments() {
|
||||
messageIdToAttachments = SignalDatabase.attachments().getAttachmentsForMessages(messageIds);
|
||||
}
|
||||
|
||||
@NonNull List<MessageRecord> buildUpdatedModels(@NonNull Context context, @NonNull List<MessageRecord> records) {
|
||||
public @NonNull List<MessageRecord> buildUpdatedModels(@NonNull Context context, @NonNull List<MessageRecord> records) {
|
||||
return records.stream()
|
||||
.map(record -> {
|
||||
if (record instanceof MediaMmsMessageRecord) {
|
||||
|
||||
@@ -179,6 +179,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase;
|
||||
import org.thoughtcrime.securesms.database.ThreadTable;
|
||||
import org.thoughtcrime.securesms.database.identity.IdentityRecordList;
|
||||
import org.thoughtcrime.securesms.database.model.IdentityRecord;
|
||||
import org.thoughtcrime.securesms.database.model.MediaMmsMessageRecord;
|
||||
import org.thoughtcrime.securesms.database.model.Mention;
|
||||
import org.thoughtcrime.securesms.database.model.MessageId;
|
||||
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
||||
@@ -4185,11 +4186,15 @@ public class ConversationParentFragment extends Fragment
|
||||
|
||||
Context context = ApplicationDependencies.getApplication();
|
||||
|
||||
MessageRecord messageRecord = SignalDatabase.mmsSms().getMessageFor(quoteId.getId(), quoteId.getAuthor());
|
||||
MessageRecord messageRecord = SignalDatabase.messages().getMessageFor(quoteId.getId(), quoteId.getAuthor());
|
||||
if (messageRecord == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (messageRecord instanceof MediaMmsMessageRecord) {
|
||||
messageRecord = ((MediaMmsMessageRecord) messageRecord).withAttachments(context, SignalDatabase.attachments().getAttachmentsForMessage(messageRecord.getId()));
|
||||
}
|
||||
|
||||
return ConversationMessageFactory.createWithUnresolvedData(context, messageRecord);
|
||||
}
|
||||
|
||||
|
||||
@@ -54,14 +54,21 @@ class MessageQuotesRepository {
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
val replyRecords: List<MessageRecord> = SignalDatabase.mmsSms.getAllMessagesThatQuote(rootMessageId)
|
||||
var replyRecords: List<MessageRecord> = SignalDatabase.messages.getAllMessagesThatQuote(rootMessageId)
|
||||
|
||||
val replies: List<ConversationMessage> = ConversationDataSource.ReactionHelper()
|
||||
.apply {
|
||||
addAll(replyRecords)
|
||||
fetchReactions()
|
||||
}
|
||||
.buildUpdatedModels(replyRecords)
|
||||
val reactionHelper = ConversationDataSource.ReactionHelper()
|
||||
val attachmentHelper = ConversationDataSource.AttachmentHelper()
|
||||
|
||||
reactionHelper.addAll(replyRecords)
|
||||
attachmentHelper.addAll(replyRecords)
|
||||
|
||||
reactionHelper.fetchReactions()
|
||||
attachmentHelper.fetchAttachments()
|
||||
|
||||
replyRecords = reactionHelper.buildUpdatedModels(replyRecords)
|
||||
replyRecords = attachmentHelper.buildUpdatedModels(ApplicationDependencies.getApplication(), replyRecords)
|
||||
|
||||
val replies: List<ConversationMessage> = replyRecords
|
||||
.map { replyRecord ->
|
||||
val replyQuote: Quote? = replyRecord.getQuote()
|
||||
if (replyQuote != null && replyQuote.id == originalRecord!!.dateSent) {
|
||||
@@ -76,13 +83,23 @@ class MessageQuotesRepository {
|
||||
originalRecord = SignalDatabase.payments.updateMessageWithPayment(originalRecord)
|
||||
}
|
||||
|
||||
val originalMessage: List<ConversationMessage> = ConversationDataSource.ReactionHelper()
|
||||
originalRecord = ConversationDataSource.ReactionHelper()
|
||||
.apply {
|
||||
add(originalRecord)
|
||||
fetchReactions()
|
||||
}
|
||||
.buildUpdatedModels(listOf(originalRecord))
|
||||
.map { ConversationMessageFactory.createWithUnresolvedData(application, it, it.getDisplayBody(application), false) }
|
||||
.get(0)
|
||||
|
||||
originalRecord = ConversationDataSource.AttachmentHelper()
|
||||
.apply {
|
||||
add(originalRecord)
|
||||
fetchAttachments()
|
||||
}
|
||||
.buildUpdatedModels(ApplicationDependencies.getApplication(), listOf(originalRecord))
|
||||
.get(0)
|
||||
|
||||
val originalMessage: ConversationMessage = ConversationMessageFactory.createWithUnresolvedData(application, originalRecord, originalRecord.getDisplayBody(application), false)
|
||||
|
||||
return replies + originalMessage
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user