Rename SignalDatabase.sms/mms to SignalDatabase.messages

This commit is contained in:
Greyson Parrelli
2022-12-14 20:08:23 -05:00
parent a7e3bdc892
commit 60ae883df6
109 changed files with 391 additions and 424 deletions
@@ -72,7 +72,7 @@ class ConversationItemPreviewer {
attachments = PointerAttachment.forPointers(Optional.of(attachments)),
)
SignalDatabase.mms.insertSecureDecryptedMessageInbox(message, SignalDatabase.threads.getOrCreateThreadIdFor(other)).get()
SignalDatabase.messages.insertSecureDecryptedMessageInbox(message, SignalDatabase.threads.getOrCreateThreadIdFor(other)).get()
ThreadUtil.sleep(1)
}
@@ -91,7 +91,7 @@ class ConversationItemPreviewer {
attachments = PointerAttachment.forPointers(Optional.of(attachments)),
)
val insert = SignalDatabase.mms.insertSecureDecryptedMessageInbox(message, SignalDatabase.threads.getOrCreateThreadIdFor(other)).get()
val insert = SignalDatabase.messages.insertSecureDecryptedMessageInbox(message, SignalDatabase.threads.getOrCreateThreadIdFor(other)).get()
SignalDatabase.attachments.getAttachmentsForMessage(insert.messageId).forEachIndexed { index, attachment ->
// if (index != 1) {
@@ -117,7 +117,7 @@ class ConversationItemPreviewer {
isSecure = true
)
val insert = SignalDatabase.mms.insertMessageOutbox(
val insert = SignalDatabase.messages.insertMessageOutbox(
message,
SignalDatabase.threads.getOrCreateThreadIdFor(other),
false,
@@ -27,7 +27,7 @@ class MessageTableTest_gifts {
@Before
fun setUp() {
mms = SignalDatabase.mms
mms = SignalDatabase.messages
mms.deleteAllThreads()
@@ -53,13 +53,13 @@ object MmsHelper {
message: OutgoingMessage,
threadId: Long
): Long {
return SignalDatabase.mms.insertMessageOutbox(message, threadId, false, GroupReceiptTable.STATUS_UNKNOWN, null)
return SignalDatabase.messages.insertMessageOutbox(message, threadId, false, GroupReceiptTable.STATUS_UNKNOWN, null)
}
fun insert(
message: IncomingMediaMessage,
threadId: Long
): Optional<MessageTable.InsertResult> {
return SignalDatabase.mms.insertSecureDecryptedMessageInbox(message, threadId)
return SignalDatabase.messages.insertSecureDecryptedMessageInbox(message, threadId)
}
}
@@ -37,7 +37,7 @@ class MmsTableTest_stories {
@Before
fun setUp() {
mms = SignalDatabase.mms
mms = SignalDatabase.messages
mms.deleteAllThreads()
@@ -106,14 +106,14 @@ class MmsTableTest_stories {
-1L
).get().messageId
val messageBeforeMark = SignalDatabase.mms.getMessageRecord(messageId)
val messageBeforeMark = SignalDatabase.messages.getMessageRecord(messageId)
assertFalse(messageBeforeMark.incomingStoryViewedAtTimestamp > 0)
// WHEN
SignalDatabase.mms.setIncomingMessageViewed(messageId)
SignalDatabase.messages.setIncomingMessageViewed(messageId)
// THEN
val messageAfterMark = SignalDatabase.mms.getMessageRecord(messageId)
val messageAfterMark = SignalDatabase.messages.getMessageRecord(messageId)
assertTrue(messageAfterMark.incomingStoryViewedAtTimestamp > 0)
}
@@ -136,12 +136,12 @@ class MmsTableTest_stories {
val randomizedOrderedIds = messageIds.shuffled()
randomizedOrderedIds.forEach {
SignalDatabase.mms.setIncomingMessageViewed(it)
SignalDatabase.messages.setIncomingMessageViewed(it)
Thread.sleep(5)
}
// WHEN
val result = SignalDatabase.mms.getOrderedStoryRecipientsAndIds(false)
val result = SignalDatabase.messages.getOrderedStoryRecipientsAndIds(false)
val resultOrderedIds = result.map { it.messageId }
// THEN
@@ -183,7 +183,7 @@ class MmsTableTest_stories {
val interspersedIds: List<Long> = (0 until 10).map {
Thread.sleep(5)
if (it % 2 == 0) {
SignalDatabase.mms.setIncomingMessageViewed(viewedIds[it / 2])
SignalDatabase.messages.setIncomingMessageViewed(viewedIds[it / 2])
viewedIds[it / 2]
} else {
MmsHelper.insert(
@@ -195,7 +195,7 @@ class MmsTableTest_stories {
}
}
val result = SignalDatabase.mms.getOrderedStoryRecipientsAndIds(false)
val result = SignalDatabase.messages.getOrderedStoryRecipientsAndIds(false)
val resultOrderedIds = result.map { it.messageId }
assertEquals(unviewedIds.reversed() + interspersedIds.reversed(), resultOrderedIds)
@@ -353,7 +353,7 @@ class MmsTableTest_stories {
)
// WHEN
val oldestTimestamp = SignalDatabase.mms.getOldestStorySendTimestamp(false)
val oldestTimestamp = SignalDatabase.messages.getOldestStorySendTimestamp(false)
// THEN
assertNull(oldestTimestamp)
@@ -372,7 +372,7 @@ class MmsTableTest_stories {
)
// WHEN
val oldestTimestamp = SignalDatabase.mms.getOldestStorySendTimestamp(true)
val oldestTimestamp = SignalDatabase.messages.getOldestStorySendTimestamp(true)
// THEN
assertEquals(expected, oldestTimestamp)
@@ -393,13 +393,13 @@ class RecipientTableTest_getAndPossiblyMerge {
val recipientIdE164: RecipientId = SignalDatabase.recipients.getOrInsertFromE164(E164_A)
val recipientIdAciB: RecipientId = SignalDatabase.recipients.getOrInsertFromServiceId(ACI_B)
val smsId1: Long = SignalDatabase.sms.insertMessageInbox(smsMessage(sender = recipientIdAci, time = 0, body = "0")).get().messageId
val smsId2: Long = SignalDatabase.sms.insertMessageInbox(smsMessage(sender = recipientIdE164, time = 1, body = "1")).get().messageId
val smsId3: Long = SignalDatabase.sms.insertMessageInbox(smsMessage(sender = recipientIdAci, time = 2, body = "2")).get().messageId
val smsId1: Long = SignalDatabase.messages.insertMessageInbox(smsMessage(sender = recipientIdAci, time = 0, body = "0")).get().messageId
val smsId2: Long = SignalDatabase.messages.insertMessageInbox(smsMessage(sender = recipientIdE164, time = 1, body = "1")).get().messageId
val smsId3: Long = SignalDatabase.messages.insertMessageInbox(smsMessage(sender = recipientIdAci, time = 2, body = "2")).get().messageId
val mmsId1: Long = SignalDatabase.mms.insertSecureDecryptedMessageInbox(mmsMessage(sender = recipientIdAci, time = 3, body = "3"), -1).get().messageId
val mmsId2: Long = SignalDatabase.mms.insertSecureDecryptedMessageInbox(mmsMessage(sender = recipientIdE164, time = 4, body = "4"), -1).get().messageId
val mmsId3: Long = SignalDatabase.mms.insertSecureDecryptedMessageInbox(mmsMessage(sender = recipientIdAci, time = 5, body = "5"), -1).get().messageId
val mmsId1: Long = SignalDatabase.messages.insertSecureDecryptedMessageInbox(mmsMessage(sender = recipientIdAci, time = 3, body = "3"), -1).get().messageId
val mmsId2: Long = SignalDatabase.messages.insertSecureDecryptedMessageInbox(mmsMessage(sender = recipientIdE164, time = 4, body = "4"), -1).get().messageId
val mmsId3: Long = SignalDatabase.messages.insertSecureDecryptedMessageInbox(mmsMessage(sender = recipientIdAci, time = 5, body = "5"), -1).get().messageId
val threadIdAci: Long = SignalDatabase.threads.getThreadIdFor(recipientIdAci)!!
val threadIdE164: Long = SignalDatabase.threads.getThreadIdFor(recipientIdE164)!!
@@ -450,9 +450,9 @@ class RecipientTableTest_getAndPossiblyMerge {
Assert.assertNull(SignalDatabase.threads.getThreadRecord(threadIdE164))
// SMS validation
val sms1: MessageRecord = SignalDatabase.sms.getMessageRecord(smsId1)!!
val sms2: MessageRecord = SignalDatabase.sms.getMessageRecord(smsId2)!!
val sms3: MessageRecord = SignalDatabase.sms.getMessageRecord(smsId3)!!
val sms1: MessageRecord = SignalDatabase.messages.getMessageRecord(smsId1)!!
val sms2: MessageRecord = SignalDatabase.messages.getMessageRecord(smsId2)!!
val sms3: MessageRecord = SignalDatabase.messages.getMessageRecord(smsId3)!!
assertEquals(retrievedId, sms1.recipient.id)
assertEquals(retrievedId, sms2.recipient.id)
@@ -463,9 +463,9 @@ class RecipientTableTest_getAndPossiblyMerge {
assertEquals(retrievedThreadId, sms3.threadId)
// MMS validation
val mms1: MessageRecord = SignalDatabase.mms.getMessageRecord(mmsId1)!!
val mms2: MessageRecord = SignalDatabase.mms.getMessageRecord(mmsId2)!!
val mms3: MessageRecord = SignalDatabase.mms.getMessageRecord(mmsId3)!!
val mms1: MessageRecord = SignalDatabase.messages.getMessageRecord(mmsId1)!!
val mms2: MessageRecord = SignalDatabase.messages.getMessageRecord(mmsId2)!!
val mms3: MessageRecord = SignalDatabase.messages.getMessageRecord(mmsId3)!!
assertEquals(retrievedId, mms1.recipient.id)
assertEquals(retrievedId, mms2.recipient.id)
@@ -624,7 +624,7 @@ class RecipientTableTest_getAndPossiblyMerge {
if (createThread) {
// Create a thread and throw a dummy message in it so it doesn't get automatically deleted
SignalDatabase.threads.getOrCreateThreadIdFor(Recipient.resolved(id))
SignalDatabase.sms.insertMessageInbox(IncomingEncryptedMessage(IncomingTextMessage(id, 1, 0, 0, 0, "", Optional.empty(), 0, false, ""), ""))
SignalDatabase.messages.insertMessageInbox(IncomingEncryptedMessage(IncomingTextMessage(id, 1, 0, 0, 0, "", Optional.empty(), 0, false, ""), ""))
}
}
@@ -667,12 +667,12 @@ class RecipientTableTest_getAndPossiblyMerge {
}
fun expectChangeNumberEvent() {
assertEquals(1, SignalDatabase.sms.getChangeNumberMessageCount(outputRecipientId))
assertEquals(1, SignalDatabase.messages.getChangeNumberMessageCount(outputRecipientId))
changeNumberExpected = true
}
fun expectNoChangeNumberEvent() {
assertEquals(0, SignalDatabase.sms.getChangeNumberMessageCount(outputRecipientId))
assertEquals(0, SignalDatabase.messages.getChangeNumberMessageCount(outputRecipientId))
changeNumberExpected = false
}
@@ -45,7 +45,7 @@ class SmsDatabaseTest_collapseJoinRequestEventsIfPossible {
@Before
fun setUp() {
recipients = SignalDatabase.recipients
sms = SignalDatabase.sms
sms = SignalDatabase.messages
SignalStore.account().setAci(localAci)
SignalStore.account().setPni(localPni)
@@ -184,7 +184,7 @@ class StorySendTableTest {
@Test
fun getRemoteDeleteRecipients_overlapWithPreviousDeletes() {
storySends.insert(messageId1, recipients1to10, 200, false, distributionId1)
SignalDatabase.mms.markAsRemoteDelete(messageId1)
SignalDatabase.messages.markAsRemoteDelete(messageId1)
storySends.insert(messageId2, recipients6to15, 200, true, distributionId2)
@@ -281,7 +281,7 @@ class StorySendTableTest {
fun givenTwoStoriesAndOneIsRemoteDeleted_whenIGetFullSentStorySyncManifestForStory2_thenIExpectNonNullResult() {
storySends.insert(messageId1, recipients1to10, 200, false, distributionId1)
storySends.insert(messageId2, recipients1to10, 200, true, distributionId2)
SignalDatabase.mms.markAsRemoteDelete(messageId1)
SignalDatabase.messages.markAsRemoteDelete(messageId1)
val manifest = storySends.getFullSentStorySyncManifest(messageId2, 200)!!
@@ -294,7 +294,7 @@ class StorySendTableTest {
storySends.insert(messageId1, recipients1to10, 200, false, distributionId1)
storySends.insert(messageId1, recipients11to20, 200, false, distributionId1)
storySends.insert(messageId2, recipients1to10, 200, true, distributionId2)
SignalDatabase.mms.markAsRemoteDelete(messageId1)
SignalDatabase.messages.markAsRemoteDelete(messageId1)
val recipientIds = storySends.getRecipientIdsForManifestUpdate(200, messageId1)
@@ -306,7 +306,7 @@ class StorySendTableTest {
storySends.insert(messageId1, recipients1to10, 200, false, distributionId1)
storySends.insert(messageId2, recipients1to10, 200, true, distributionId2)
storySends.insert(messageId2, recipients11to20, 200, true, distributionId2)
SignalDatabase.mms.markAsRemoteDelete(messageId1)
SignalDatabase.messages.markAsRemoteDelete(messageId1)
val recipientIds = storySends.getRecipientIdsForManifestUpdate(200, messageId1)
val results = storySends.getSentStorySyncManifestForUpdate(200, recipientIds)
@@ -319,7 +319,7 @@ class StorySendTableTest {
fun givenTwoStoriesAndTheOneThatAllowedRepliesIsRemoteDeleted_whenIGetPartialSentStorySyncManifest_thenIExpectAllowRepliesToBeTrue() {
storySends.insert(messageId1, recipients1to10, 200, false, distributionId1)
storySends.insert(messageId2, recipients1to10, 200, true, distributionId2)
SignalDatabase.mms.markAsRemoteDelete(messageId2)
SignalDatabase.messages.markAsRemoteDelete(messageId2)
val recipientIds = storySends.getRecipientIdsForManifestUpdate(200, messageId1)
val results = storySends.getSentStorySyncManifestForUpdate(200, recipientIds)
@@ -377,7 +377,7 @@ class StorySendTableTest {
storySends.applySentStoryManifest(remote, 200)
SignalDatabase.mms.getMessageRecord(messageId5)
SignalDatabase.messages.getMessageRecord(messageId5)
fail("Expected messageId5 to no longer exist.")
}
@@ -402,7 +402,7 @@ class StorySendTableTest {
storySends.applySentStoryManifest(remote, 200)
assertFalse(SignalDatabase.mms.getMessageRecord(messageId4).isRemoteDelete)
assertFalse(SignalDatabase.messages.getMessageRecord(messageId4).isRemoteDelete)
}
@Test
@@ -34,7 +34,7 @@ class ThreadTableTest_pinned {
SignalDatabase.threads.pinConversations(listOf(threadId))
// WHEN
SignalDatabase.mms.deleteMessage(messageId)
SignalDatabase.messages.deleteMessage(messageId)
// THEN
val pinned = SignalDatabase.threads.getPinnedThreadIds()
@@ -49,7 +49,7 @@ class ThreadTableTest_pinned {
SignalDatabase.threads.pinConversations(listOf(threadId))
// WHEN
SignalDatabase.mms.deleteMessage(messageId)
SignalDatabase.messages.deleteMessage(messageId)
// THEN
val unarchivedCount = SignalDatabase.threads.getUnarchivedConversationListCount(ConversationFilter.OFF)
@@ -64,7 +64,7 @@ class ThreadTableTest_pinned {
SignalDatabase.threads.pinConversations(listOf(threadId))
// WHEN
SignalDatabase.mms.deleteMessage(messageId)
SignalDatabase.messages.deleteMessage(messageId)
// THEN
SignalDatabase.threads.getUnarchivedConversationList(ConversationFilter.OFF, true, 0, 1).use {
@@ -30,12 +30,12 @@ class MessageContentProcessor__handleStoryMessageTest : MessageContentProcessorT
@Before
fun setUp() {
SignalDatabase.mms.deleteAllThreads()
SignalDatabase.messages.deleteAllThreads()
}
@After
fun tearDown() {
SignalDatabase.mms.deleteAllThreads()
SignalDatabase.messages.deleteAllThreads()
}
@Test
@@ -77,11 +77,11 @@ class MessageContentProcessor__handleStoryMessageTest : MessageContentProcessorT
it.requireLong(MessageTable.ID)
}
val replyRecord = SignalDatabase.mms.getMessageRecord(replyId) as MediaMmsMessageRecord
val replyRecord = SignalDatabase.messages.getMessageRecord(replyId) as MediaMmsMessageRecord
assertEquals(ParentStoryId.DirectReply(storyMessageId).serialize(), replyRecord.parentStoryId!!.serialize())
assertEquals(expectedBody, replyRecord.body)
SignalDatabase.mms.deleteAllThreads()
SignalDatabase.messages.deleteAllThreads()
}
@Test
@@ -137,19 +137,19 @@ class MessageContentProcessor__handleStoryMessageTest : MessageContentProcessorT
runTestWithContent(storyContent)
val replyId = SignalDatabase.mms.getStoryReplies(insertResult.get().messageId).use { cursor ->
val replyId = SignalDatabase.messages.getStoryReplies(insertResult.get().messageId).use { cursor ->
assertEquals(1, cursor.count)
cursor.moveToFirst()
cursor.requireLong(MessageTable.ID)
}
val replyRecord = SignalDatabase.mms.getMessageRecord(replyId) as MediaMmsMessageRecord
val replyRecord = SignalDatabase.messages.getMessageRecord(replyId) as MediaMmsMessageRecord
assertEquals(ParentStoryId.GroupReply(insertResult.get().messageId).serialize(), replyRecord.parentStoryId?.serialize())
assertEquals(threadForGroup, replyRecord.threadId)
assertEquals(expectedBody, replyRecord.body)
SignalDatabase.mms.deleteGroupStoryReplies(insertResult.get().messageId)
SignalDatabase.mms.deleteAllThreads()
SignalDatabase.messages.deleteGroupStoryReplies(insertResult.get().messageId)
SignalDatabase.messages.deleteAllThreads()
}
/**
@@ -23,7 +23,7 @@ class MessageContentProcessor__handleTextMessageTest : MessageContentProcessorTe
testSubject.doProcess(content = content!!)
// THEN
val record = SignalDatabase.sms.getMessageRecord(1)
val record = SignalDatabase.messages.getMessageRecord(1)
val threadSize = SignalDatabase.mmsSms.getConversationCount(record.threadId)
assertEquals(1, threadSize)
@@ -34,7 +34,7 @@ class SignalDatabaseRule(
private fun deleteAllThreads() {
if (deleteAllThreadsOnEachRun) {
SignalDatabase.mms.deleteAllThreads()
SignalDatabase.messages.deleteAllThreads()
}
}
}
@@ -33,7 +33,7 @@ class ViewGiftRepository {
fun getGiftBadge(messageId: Long): Observable<GiftBadge> {
return Observable.create { emitter ->
fun refresh() {
val record = SignalDatabase.mms.getMessageRecord(messageId)
val record = SignalDatabase.messages.getMessageRecord(messageId)
val giftBadge: GiftBadge = (record as MmsMessageRecord).giftBadge!!
emitter.onNext(giftBadge)
@@ -361,9 +361,9 @@ public class ConversationItemFooter extends ConstraintLayout {
boolean mms = messageRecord.isMms();
if (mms) {
SignalDatabase.mms().markExpireStarted(id);
SignalDatabase.messages().markExpireStarted(id);
} else {
SignalDatabase.sms().markExpireStarted(id);
SignalDatabase.messages().markExpireStarted(id);
}
expirationManager.scheduleDeletion(id, mms, messageRecord.getExpiresIn());
@@ -8,8 +8,8 @@ import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.util.FeatureFlags
class SmsSettingsRepository(
private val smsDatabase: MessageTable = SignalDatabase.sms,
private val mmsDatabase: MessageTable = SignalDatabase.mms
private val smsDatabase: MessageTable = SignalDatabase.messages,
private val mmsDatabase: MessageTable = SignalDatabase.messages
) {
fun getSmsExportState(): Single<SmsExportState> {
if (!FeatureFlags.smsExporter()) {
@@ -48,7 +48,7 @@ class InternalSettingsRepository(context: Context) {
imageHeight = 720
)
SignalDatabase.sms.insertBoostRequestMessage(recipientId, threadId)
SignalDatabase.messages.insertBoostRequestMessage(recipientId, threadId)
if (insertResult != null) {
SignalDatabase.attachments.getAttachmentsForMessage(insertResult.messageId)
@@ -242,13 +242,13 @@ class InternalConversationSettingsFragment : DSLSettingsFragment(
val splitRecipient: Recipient = Recipient.resolved(splitRecipientId)
val splitThreadId: Long = SignalDatabase.threads.getOrCreateThreadIdFor(splitRecipient)
val messageId: Long = SignalDatabase.sms.insertMessageOutbox(
val messageId: Long = SignalDatabase.messages.insertMessageOutbox(
OutgoingMessage.text(splitRecipient, "Test Message ${System.currentTimeMillis()}", 0),
splitThreadId,
false,
null
)
SignalDatabase.sms.markAsSent(messageId, true)
SignalDatabase.messages.markAsSent(messageId, true)
SignalDatabase.threads.update(splitThreadId, true)
@@ -239,7 +239,7 @@ final class VoiceNotePlaybackPreparer implements MediaSessionConnector.Playbac
private @NonNull List<MediaItem> loadMediaItemsForSinglePlayback(long messageId) {
try {
MessageRecord messageRecord = SignalDatabase.mms()
MessageRecord messageRecord = SignalDatabase.messages()
.getMessageRecord(messageId);
if (!MessageRecordUtil.hasAudio(messageRecord)) {
@@ -256,7 +256,7 @@ public class VoiceNotePlaybackService extends MediaBrowserServiceCompat {
}
long messageId = extras.getLong(VoiceNoteMediaItemFactory.EXTRA_MESSAGE_ID);
RecipientId recipientId = RecipientId.from(extras.getString(VoiceNoteMediaItemFactory.EXTRA_INDIVIDUAL_RECIPIENT_ID));
MessageTable messageDatabase = SignalDatabase.mms();
MessageTable messageDatabase = SignalDatabase.messages();
MessageTable.MarkedMessageInfo markedMessageInfo = messageDatabase.setIncomingMessageViewed(messageId);
@@ -193,7 +193,7 @@ object ContactDiscovery {
Recipient.resolvedList(newUserIds)
.filter { !it.isSelf && it.hasAUserSetDisplayName(context) && !hasSession(it.id) }
.map { IncomingJoinedMessage(it.id) }
.map { SignalDatabase.sms.insertMessageInbox(it) }
.map { SignalDatabase.messages.insertMessageInbox(it) }
.filter { it.isPresent }
.map { it.get() }
.forEach { result ->
@@ -167,7 +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.mms() : SignalDatabase.sms();
MessageTable database = messageId.isMms() ? SignalDatabase.messages() : SignalDatabase.messages();
MessageRecord record = database.getMessageRecordOrNull(messageId.getId());
if (record instanceof MediaMmsMessageRecord &&
@@ -1060,13 +1060,7 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
@Override
protected Void doInBackground(Void... voids) {
for (MessageRecord messageRecord : messageRecords) {
boolean threadDeleted;
if (messageRecord.isMms()) {
threadDeleted = SignalDatabase.mms().deleteMessage(messageRecord.getId());
} else {
threadDeleted = SignalDatabase.sms().deleteMessage(messageRecord.getId());
}
boolean threadDeleted = SignalDatabase.messages().deleteMessage(messageRecord.getId());
if (threadDeleted) {
threadId = -1;
@@ -1372,7 +1366,7 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
private void scrollToNextMention() {
SimpleTask.run(getViewLifecycleOwner().getLifecycle(), () -> {
return SignalDatabase.mms().getOldestUnreadMentionDetails(threadId);
return SignalDatabase.messages().getOldestUnreadMentionDetails(threadId);
}, (pair) -> {
if (pair != null) {
jumpToMessage(pair.first(), pair.second(), () -> {});
@@ -2560,8 +2560,8 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
if (message > -1) builder.setMessage(message);
builder.setPositiveButton(R.string.yes, (dialogInterface, i) -> {
MessageTable db = messageRecord.isMms() ? SignalDatabase.mms()
: SignalDatabase.sms();
MessageTable db = messageRecord.isMms() ? SignalDatabase.messages()
: SignalDatabase.messages();
db.markAsInsecure(messageRecord.getId());
db.markAsOutbox(messageRecord.getId());
@@ -2579,9 +2579,9 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
builder.setNegativeButton(R.string.no, (dialogInterface, i) -> {
if (messageRecord.isMms()) {
SignalDatabase.mms().markAsSentFailed(messageRecord.getId());
SignalDatabase.messages().markAsSentFailed(messageRecord.getId());
} else {
SignalDatabase.sms().markAsSentFailed(messageRecord.getId());
SignalDatabase.messages().markAsSentFailed(messageRecord.getId());
}
});
builder.show();
@@ -115,7 +115,7 @@ class ConversationRepository {
void markGiftBadgeRevealed(long messageId) {
SignalExecutors.BOUNDED_IO.execute(() -> {
List<MessageTable.MarkedMessageInfo> markedMessageInfo = SignalDatabase.mms().setOutgoingGiftsRevealed(Collections.singletonList(messageId));
List<MessageTable.MarkedMessageInfo> markedMessageInfo = SignalDatabase.messages().setOutgoingGiftsRevealed(Collections.singletonList(messageId));
if (!markedMessageInfo.isEmpty()) {
Log.d(TAG, "Marked gift badge revealed. Sending view sync message.");
MultiDeviceViewedUpdateJob.enqueue(
@@ -208,7 +208,7 @@ class ConversationRepository {
}
if (RecipientUtil.isSmsOnly(threadId, recipient) && (!recipient.isMmsGroup() || Util.isDefaultSmsProvider(context))) {
SignalDatabase.sms().insertSmsExportMessage(recipient.getId(), threadId);
SignalDatabase.messages().insertSmsExportMessage(recipient.getId(), threadId);
}
});
}
@@ -89,7 +89,7 @@ public class MessageCountsViewModel extends ViewModel {
}
private int getUnreadMentionsCount(@NonNull Context context, long threadId) {
return SignalDatabase.mms().getUnreadMentionCount(threadId);
return SignalDatabase.messages().getUnreadMentionCount(threadId);
}
@Override
@@ -49,9 +49,9 @@ class MessageQuotesRepository {
val rootMessageId: MessageId = SignalDatabase.mmsSms.getRootOfQuoteChain(messageId)
var originalRecord: MessageRecord? = if (rootMessageId.mms) {
SignalDatabase.mms.getMessageRecordOrNull(rootMessageId.id)
SignalDatabase.messages.getMessageRecordOrNull(rootMessageId.id)
} else {
SignalDatabase.sms.getMessageRecordOrNull(rootMessageId.id)
SignalDatabase.messages.getMessageRecordOrNull(rootMessageId.id)
}
if (originalRecord == null) {
@@ -18,7 +18,6 @@ import org.thoughtcrime.securesms.crypto.ReentrantSessionLock;
import org.thoughtcrime.securesms.crypto.storage.SignalIdentityKeyStore;
import org.thoughtcrime.securesms.database.IdentityTable;
import org.thoughtcrime.securesms.database.MessageTable;
import org.thoughtcrime.securesms.database.MmsSmsTable;
import org.thoughtcrime.securesms.database.NoSuchMessageException;
import org.thoughtcrime.securesms.database.SignalDatabase;
import org.thoughtcrime.securesms.database.model.IdentityRecord;
@@ -63,9 +62,7 @@ public final class SafetyNumberChangeRepository {
public Single<TrustAndVerifyResult> trustOrVerifyChangedRecipientsAndResendRx(@NonNull List<SafetyNumberRecipient> safetyNumberRecipients, @NonNull MessageId messageId) {
Log.d(TAG, "Trust or verify changed recipients and resend message: " + messageId + " for: " + Util.join(safetyNumberRecipients, ","));
return Single.fromCallable(() -> {
MessageRecord messageRecord = messageId.isMms() ? SignalDatabase.mms().getMessageRecord(messageId.getId())
: SignalDatabase.sms().getMessageRecord(messageId.getId());
MessageRecord messageRecord = SignalDatabase.messages().getMessageRecord(messageId.getId());
return trustOrVerifyChangedRecipientsAndResendInternal(fromSafetyNumberRecipients(safetyNumberRecipients), messageRecord);
}).subscribeOn(Schedulers.io());
}
@@ -113,7 +110,7 @@ public final class SafetyNumberChangeRepository {
@WorkerThread
private @Nullable MessageRecord getMessageRecord(Long messageId, String messageType) {
try {
return SignalDatabase.mms().getMessageRecord(messageId);
return SignalDatabase.messages().getMessageRecord(messageId);
} catch (NoSuchMessageException e) {
Log.i(TAG, e);
}
@@ -178,16 +175,14 @@ public final class SafetyNumberChangeRepository {
@WorkerThread
private void processOutgoingMessageRecord(@NonNull List<ChangedRecipient> changedRecipients, @NonNull MessageRecord messageRecord) {
Log.d(TAG, "processOutgoingMessageRecord");
MessageTable smsDatabase = SignalDatabase.sms();
MessageTable mmsDatabase = SignalDatabase.mms();
Set<RecipientId> resendIds = new HashSet<>();
Set<RecipientId> resendIds = new HashSet<>();
for (ChangedRecipient changedRecipient : changedRecipients) {
RecipientId id = changedRecipient.getRecipient().getId();
IdentityKey identityKey = changedRecipient.getIdentityRecord().getIdentityKey();
if (messageRecord.isMms()) {
mmsDatabase.removeMismatchedIdentity(messageRecord.getId(), id, identityKey);
SignalDatabase.messages().removeMismatchedIdentity(messageRecord.getId(), id, identityKey);
if (messageRecord.getRecipient().isDistributionList() || messageRecord.getRecipient().isPushGroup()) {
resendIds.add(id);
@@ -195,7 +190,7 @@ public final class SafetyNumberChangeRepository {
MessageSender.resend(context, messageRecord);
}
} else {
smsDatabase.removeMismatchedIdentity(messageRecord.getId(), id, identityKey);
SignalDatabase.messages().removeMismatchedIdentity(messageRecord.getId(), id, identityKey);
MessageSender.resend(context, messageRecord);
}
@@ -235,7 +235,7 @@ public class AttachmentTable extends DatabaseTable {
values.put(TRANSFER_STATE, TRANSFER_PROGRESS_FAILED);
database.update(TABLE_NAME, values, PART_ID_WHERE + " AND " + TRANSFER_STATE + " < " + TRANSFER_PROGRESS_PERMANENT_FAILURE, attachmentId.toStrings());
notifyConversationListeners(SignalDatabase.mms().getThreadIdForMessage(mmsId));
notifyConversationListeners(SignalDatabase.messages().getThreadIdForMessage(mmsId));
}
public void setTransferProgressPermanentFailure(AttachmentId attachmentId, long mmsId)
@@ -246,7 +246,7 @@ public class AttachmentTable extends DatabaseTable {
values.put(TRANSFER_STATE, TRANSFER_PROGRESS_PERMANENT_FAILURE);
database.update(TABLE_NAME, values, PART_ID_WHERE, attachmentId.toStrings());
notifyConversationListeners(SignalDatabase.mms().getThreadIdForMessage(mmsId));
notifyConversationListeners(SignalDatabase.messages().getThreadIdForMessage(mmsId));
}
public @Nullable DatabaseAttachment getAttachment(@NonNull AttachmentId attachmentId)
@@ -438,7 +438,7 @@ public class AttachmentTable extends DatabaseTable {
db.update(TABLE_NAME, values, MMS_ID + " = ?", new String[] { mmsId + "" });
notifyAttachmentListeners();
long threadId = SignalDatabase.mms().getThreadIdForMessage(mmsId);
long threadId = SignalDatabase.messages().getThreadIdForMessage(mmsId);
if (threadId > 0) {
notifyConversationListeners(threadId);
}
@@ -641,9 +641,9 @@ public class AttachmentTable extends DatabaseTable {
//noinspection ResultOfMethodCallIgnored
dataInfo.file.delete();
} else {
long threadId = SignalDatabase.mms().getThreadIdForMessage(mmsId);
long threadId = SignalDatabase.messages().getThreadIdForMessage(mmsId);
if (!SignalDatabase.mms().isStory(mmsId)) {
if (!SignalDatabase.messages().isStory(mmsId)) {
SignalDatabase.threads().updateSnippetUriSilently(threadId, PartAuthority.getAttachmentDataUri(attachmentId));
}
@@ -1000,7 +1000,7 @@ public class AttachmentTable extends DatabaseTable {
values.put(TRANSFER_STATE, TRANSFER_PROGRESS_DONE);
database.update(TABLE_NAME, values, PART_ID_WHERE, ((DatabaseAttachment)attachment).getAttachmentId().toStrings());
notifyConversationListeners(SignalDatabase.mms().getThreadIdForMessage(messageId));
notifyConversationListeners(SignalDatabase.messages().getThreadIdForMessage(messageId));
}
public void setTransferState(long messageId, @NonNull Attachment attachment, int transferState) {
@@ -1017,7 +1017,7 @@ public class AttachmentTable extends DatabaseTable {
values.put(TRANSFER_STATE, transferState);
database.update(TABLE_NAME, values, PART_ID_WHERE, attachmentId.toStrings());
notifyConversationListeners(SignalDatabase.mms().getThreadIdForMessage(messageId));
notifyConversationListeners(SignalDatabase.messages().getThreadIdForMessage(messageId));
}
/**
@@ -785,7 +785,7 @@ public class GroupTable extends DatabaseTable implements RecipientIdDatabaseRefe
update(groupMasterKey, decryptedGroup);
SignalDatabase.sms().insertGroupV1MigrationEvents(record.getRecipientId(),
SignalDatabase.messages().insertGroupV1MigrationEvents(record.getRecipientId(),
threadId,
new GroupMigrationMembershipChange(pendingMembers, droppedMembers));
@@ -805,8 +805,8 @@ public class GroupTable extends DatabaseTable implements RecipientIdDatabaseRefe
RecipientTable recipientTable = SignalDatabase.recipients();
RecipientId groupRecipientId = recipientTable.getOrInsertFromGroupId(groupId);
Optional<GroupRecord> existingGroup = getGroup(groupId);
String title = decryptedGroup.getTitle();
ContentValues contentValues = new ContentValues();
String title = decryptedGroup.getTitle();
ContentValues contentValues = new ContentValues();
if (existingGroup.isPresent() && existingGroup.get().getUnmigratedV1Members().size() > 0 && existingGroup.get().isV2Group()) {
Set<RecipientId> unmigratedV1Members = new HashSet<>(existingGroup.get().getUnmigratedV1Members());
@@ -1111,7 +1111,7 @@ public class MessageTable extends DatabaseTable implements MmsSmsColumns, Recipi
values.putNull(BODY);
boolean updated = SQLiteDatabaseExtensionsKt.withinTransaction(getWritableDatabase(), db -> {
if (SignalDatabase.sms().hasSmsExportMessage(threadId)) {
if (SignalDatabase.messages().hasSmsExportMessage(threadId)) {
return false;
} else {
db.insert(TABLE_NAME, null, values);
@@ -142,8 +142,8 @@ public class MmsSmsTable extends DatabaseTable {
}
private @NonNull Pair<RecipientId, Long> getGroupAddedBy(long threadId, long lastQuitChecked) {
MessageTable mmsDatabase = SignalDatabase.mms();
MessageTable smsDatabase = SignalDatabase.sms();
MessageTable mmsDatabase = SignalDatabase.messages();
MessageTable smsDatabase = SignalDatabase.messages();
long latestQuit = mmsDatabase.getLatestGroupQuitTimestamp(threadId, lastQuitChecked);
RecipientId id = smsDatabase.getOldestGroupUpdateSender(threadId, latestQuit);
@@ -185,9 +185,9 @@ public class MmsSmsTable extends DatabaseTable {
}
public @NonNull List<MessageRecord> getMessagesAfterVoiceNoteInclusive(long messageId, long limit) throws NoSuchMessageException {
MessageRecord origin = SignalDatabase.mms().getMessageRecord(messageId);
List<MessageRecord> mms = SignalDatabase.mms().getMessagesInThreadAfterInclusive(origin.getThreadId(), origin.getDateReceived(), limit);
List<MessageRecord> sms = SignalDatabase.sms().getMessagesInThreadAfterInclusive(origin.getThreadId(), origin.getDateReceived(), limit);
MessageRecord origin = SignalDatabase.messages().getMessageRecord(messageId);
List<MessageRecord> mms = SignalDatabase.messages().getMessagesInThreadAfterInclusive(origin.getThreadId(), origin.getDateReceived(), limit);
List<MessageRecord> sms = SignalDatabase.messages().getMessagesInThreadAfterInclusive(origin.getThreadId(), origin.getDateReceived(), limit);
mms.addAll(sms);
Collections.sort(mms, Comparator.comparingLong(DisplayRecord::getDateReceived));
@@ -214,7 +214,7 @@ public class MmsSmsTable extends DatabaseTable {
try (Cursor cursor = getConversationSnippetCursor(threadId)) {
if (cursor.moveToFirst()) {
long id = CursorUtil.requireLong(cursor, MmsSmsColumns.ID);
return SignalDatabase.mms().getMessageRecord(id);
return SignalDatabase.messages().getMessageRecord(id);
} else {
throw new NoSuchMessageException("no message");
}
@@ -283,7 +283,7 @@ public class MmsSmsTable extends DatabaseTable {
MmsMessageRecord targetMessage;
try {
targetMessage = (MmsMessageRecord) SignalDatabase.mms().getMessageRecord(id.getId());
targetMessage = (MmsMessageRecord) SignalDatabase.messages().getMessageRecord(id.getId());
} catch (NoSuchMessageException e) {
throw new IllegalArgumentException("Invalid message ID!");
}
@@ -312,7 +312,7 @@ public class MmsSmsTable extends DatabaseTable {
public List<MessageRecord> getAllMessagesThatQuote(@NonNull MessageId id) {
MessageRecord targetMessage;
try {
targetMessage = id.isMms() ? SignalDatabase.mms().getMessageRecord(id.getId()) : SignalDatabase.sms().getMessageRecord(id.getId());
targetMessage = id.isMms() ? SignalDatabase.messages().getMessageRecord(id.getId()) : SignalDatabase.messages().getMessageRecord(id.getId());
} catch (NoSuchMessageException e) {
throw new IllegalArgumentException("Invalid message ID!");
}
@@ -361,8 +361,8 @@ public class MmsSmsTable extends DatabaseTable {
}
public boolean checkMessageExists(@NonNull MessageRecord messageRecord) {
MessageTable db = messageRecord.isMms() ? SignalDatabase.mms()
: SignalDatabase.sms();
MessageTable db = messageRecord.isMms() ? SignalDatabase.messages()
: SignalDatabase.messages();
try (Cursor cursor = db.getMessageCursor(messageRecord.getId())) {
return cursor != null && cursor.getCount() > 0;
@@ -374,7 +374,7 @@ public class MmsSmsTable extends DatabaseTable {
return 0;
}
return SignalDatabase.mms().getSecureMessageCount(threadId);
return SignalDatabase.messages().getSecureMessageCount(threadId);
}
public int getOutgoingSecureConversationCount(long threadId) {
@@ -382,23 +382,23 @@ public class MmsSmsTable extends DatabaseTable {
return 0;
}
return SignalDatabase.mms().getOutgoingSecureMessageCount(threadId);
return SignalDatabase.messages().getOutgoingSecureMessageCount(threadId);
}
public int getConversationCount(long threadId) {
return SignalDatabase.mms().getMessageCountForThread(threadId);
return SignalDatabase.messages().getMessageCountForThread(threadId);
}
public int getConversationCount(long threadId, long beforeTime) {
return SignalDatabase.mms().getMessageCountForThread(threadId, beforeTime);
return SignalDatabase.messages().getMessageCountForThread(threadId, beforeTime);
}
public int getInsecureSentCount(long threadId) {
return SignalDatabase.mms().getInsecureMessagesSentForThread(threadId);
return SignalDatabase.messages().getInsecureMessagesSentForThread(threadId);
}
public int getInsecureMessageCountForInsights() {
return SignalDatabase.mms().getInsecureMessageCountForInsights();
return SignalDatabase.messages().getInsecureMessageCountForInsights();
}
public int getUnexportedInsecureMessagesCount() {
@@ -406,11 +406,11 @@ public class MmsSmsTable extends DatabaseTable {
}
public int getUnexportedInsecureMessagesCount(long threadId) {
return SignalDatabase.mms().getUnexportedInsecureMessagesCount(threadId);
return SignalDatabase.messages().getUnexportedInsecureMessagesCount(threadId);
}
public int getIncomingMeaningfulMessageCountSince(long threadId, long afterTime) {
return SignalDatabase.mms().getIncomingMeaningfulMessageCountSince(threadId, afterTime);
return SignalDatabase.messages().getIncomingMeaningfulMessageCountSince(threadId, afterTime);
}
public int getMessageCountBeforeDate(long date) {
@@ -426,8 +426,8 @@ public class MmsSmsTable extends DatabaseTable {
}
public int getSecureMessageCountForInsights() {
int count = SignalDatabase.sms().getSecureMessageCountForInsights();
count += SignalDatabase.mms().getSecureMessageCountForInsights();
int count = SignalDatabase.messages().getSecureMessageCountForInsights();
count += SignalDatabase.messages().getSecureMessageCountForInsights();
return count;
}
@@ -437,15 +437,15 @@ public class MmsSmsTable extends DatabaseTable {
return false;
}
return SignalDatabase.sms().hasMeaningfulMessage(threadId) ||
SignalDatabase.mms().hasMeaningfulMessage(threadId);
return SignalDatabase.messages().hasMeaningfulMessage(threadId) ||
SignalDatabase.messages().hasMeaningfulMessage(threadId);
}
public long getThreadId(MessageId messageId) {
if (messageId.isMms()) {
return SignalDatabase.mms().getThreadIdForMessage(messageId.getId());
return SignalDatabase.messages().getThreadIdForMessage(messageId.getId());
} else {
return SignalDatabase.sms().getThreadIdForMessage(messageId.getId());
return SignalDatabase.messages().getThreadIdForMessage(messageId.getId());
}
}
@@ -454,9 +454,9 @@ public class MmsSmsTable extends DatabaseTable {
*/
@Deprecated
public long getThreadForMessageId(long messageId) {
long id = SignalDatabase.sms().getThreadIdForMessage(messageId);
long id = SignalDatabase.messages().getThreadIdForMessage(messageId);
if (id == -1) return SignalDatabase.mms().getThreadIdForMessage(messageId);
if (id == -1) return SignalDatabase.messages().getThreadIdForMessage(messageId);
else return id;
}
@@ -617,14 +617,14 @@ public class MmsSmsTable extends DatabaseTable {
private @NonNull Set<MessageUpdate> incrementReceiptCountInternal(SyncMessageId syncMessageId, long timestamp, MessageTable.ReceiptType receiptType, @NonNull MessageTable.MessageQualifier messageQualifier) {
Set<MessageUpdate> messageUpdates = new HashSet<>();
messageUpdates.addAll(SignalDatabase.sms().incrementReceiptCount(syncMessageId, timestamp, receiptType, messageQualifier));
messageUpdates.addAll(SignalDatabase.mms().incrementReceiptCount(syncMessageId, timestamp, receiptType, messageQualifier));
messageUpdates.addAll(SignalDatabase.messages().incrementReceiptCount(syncMessageId, timestamp, receiptType, messageQualifier));
messageUpdates.addAll(SignalDatabase.messages().incrementReceiptCount(syncMessageId, timestamp, receiptType, messageQualifier));
return messageUpdates;
}
public void updateViewedStories(@NonNull Set<SyncMessageId> syncMessageIds) {
SignalDatabase.mms().updateViewedStories(syncMessageIds);
SignalDatabase.messages().updateViewedStories(syncMessageIds);
}
private @NonNull MessageExportState getMessageExportState(@NonNull MessageId messageId) throws NoSuchMessageException {
@@ -708,12 +708,12 @@ public class MmsSmsTable extends DatabaseTable {
try {
for (ReadMessage readMessage : readMessages) {
RecipientId authorId = Recipient.externalPush(readMessage.getSender()).getId();
TimestampReadResult textResult = SignalDatabase.sms().setTimestampReadFromSyncMessage(new SyncMessageId(authorId, readMessage.getTimestamp()),
proposedExpireStarted,
threadToLatestRead);
TimestampReadResult mediaResult = SignalDatabase.mms().setTimestampReadFromSyncMessage(new SyncMessageId(authorId, readMessage.getTimestamp()),
TimestampReadResult textResult = SignalDatabase.messages().setTimestampReadFromSyncMessage(new SyncMessageId(authorId, readMessage.getTimestamp()),
proposedExpireStarted,
threadToLatestRead);
TimestampReadResult mediaResult = SignalDatabase.messages().setTimestampReadFromSyncMessage(new SyncMessageId(authorId, readMessage.getTimestamp()),
proposedExpireStarted,
threadToLatestRead);
expiringText.addAll(textResult.expiring);
expiringMedia.addAll(mediaResult.expiring);
@@ -801,7 +801,7 @@ public class MmsSmsTable extends DatabaseTable {
}
boolean hasReceivedAnyCallsSince(long threadId, long timestamp) {
return SignalDatabase.sms().hasReceivedAnyCallsSince(threadId, timestamp);
return SignalDatabase.messages().hasReceivedAnyCallsSince(threadId, timestamp);
}
@@ -857,27 +857,27 @@ public class MmsSmsTable extends DatabaseTable {
}
public void setNotifiedTimestamp(long timestamp, @NonNull List<Long> smsIds, @NonNull List<Long> mmsIds) {
SignalDatabase.sms().setNotifiedTimestamp(timestamp, smsIds);
SignalDatabase.mms().setNotifiedTimestamp(timestamp, mmsIds);
SignalDatabase.messages().setNotifiedTimestamp(timestamp, smsIds);
SignalDatabase.messages().setNotifiedTimestamp(timestamp, mmsIds);
}
public int deleteMessagesInThreadBeforeDate(long threadId, long trimBeforeDate) {
Log.d(TAG, "deleteMessagesInThreadBeforeData(" + threadId + ", " + trimBeforeDate + ")");
int deletes = SignalDatabase.sms().deleteMessagesInThreadBeforeDate(threadId, trimBeforeDate);
deletes += SignalDatabase.mms().deleteMessagesInThreadBeforeDate(threadId, trimBeforeDate);
int deletes = SignalDatabase.messages().deleteMessagesInThreadBeforeDate(threadId, trimBeforeDate);
deletes += SignalDatabase.messages().deleteMessagesInThreadBeforeDate(threadId, trimBeforeDate);
return deletes;
}
public void deleteAbandonedMessages() {
Log.d(TAG, "deleteAbandonedMessages()");
SignalDatabase.sms().deleteAbandonedMessages();
SignalDatabase.mms().deleteAbandonedMessages();
SignalDatabase.messages().deleteAbandonedMessages();
SignalDatabase.messages().deleteAbandonedMessages();
}
public @NonNull List<MessageTable.ReportSpamData> getReportSpamMessageServerData(long threadId, long timestamp, int limit) {
List<MessageTable.ReportSpamData> data = new ArrayList<>();
data.addAll(SignalDatabase.sms().getReportSpamMessageServerGuids(threadId, timestamp));
data.addAll(SignalDatabase.mms().getReportSpamMessageServerGuids(threadId, timestamp));
data.addAll(SignalDatabase.messages().getReportSpamMessageServerGuids(threadId, timestamp));
data.addAll(SignalDatabase.messages().getReportSpamMessageServerGuids(threadId, timestamp));
return data.stream()
.sorted((l, r) -> -Long.compare(l.getDateReceived(), r.getDateReceived()))
.limit(limit)
@@ -34,7 +34,6 @@ import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.util.Base64;
import org.signal.core.util.CursorUtil;
import org.signal.core.util.SqlUtil;
import org.thoughtcrime.securesms.util.FeatureFlags;
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil;
import org.whispersystems.signalservice.api.payments.Money;
import org.whispersystems.signalservice.api.util.UuidUtil;
@@ -649,7 +648,7 @@ public final class PaymentTable extends DatabaseTable implements RecipientIdData
private void notifyUuidChanged(@Nullable UUID uuid) {
if (uuid != null) {
ApplicationDependencies.getDatabaseObserver().notifyPaymentListeners(uuid);
MessageId messageId = SignalDatabase.mms().getPaymentMessage(uuid);
MessageId messageId = SignalDatabase.messages().getPaymentMessage(uuid);
if (messageId != null) {
ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(messageId);
}
@@ -124,9 +124,9 @@ class ReactionTable(context: Context, databaseHelper: SignalDatabase) : Database
writableDatabase.insert(TABLE_NAME, null, values)
if (messageId.mms) {
SignalDatabase.mms.updateReactionsUnread(writableDatabase, messageId.id, hasReactions(messageId), false)
SignalDatabase.messages.updateReactionsUnread(writableDatabase, messageId.id, hasReactions(messageId), false)
} else {
SignalDatabase.sms.updateReactionsUnread(writableDatabase, messageId.id, hasReactions(messageId), false)
SignalDatabase.messages.updateReactionsUnread(writableDatabase, messageId.id, hasReactions(messageId), false)
}
writableDatabase.setTransactionSuccessful()
@@ -146,9 +146,9 @@ class ReactionTable(context: Context, databaseHelper: SignalDatabase) : Database
writableDatabase.delete(TABLE_NAME, query, args)
if (messageId.mms) {
SignalDatabase.mms.updateReactionsUnread(writableDatabase, messageId.id, hasReactions(messageId), true)
SignalDatabase.messages.updateReactionsUnread(writableDatabase, messageId.id, hasReactions(messageId), true)
} else {
SignalDatabase.sms.updateReactionsUnread(writableDatabase, messageId.id, hasReactions(messageId), true)
SignalDatabase.messages.updateReactionsUnread(writableDatabase, messageId.id, hasReactions(messageId), true)
}
writableDatabase.setTransactionSuccessful()
@@ -2440,7 +2440,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da
}
is PnpOperation.ChangeNumberInsert -> {
if (changeSet.id is PnpIdResolver.PnpNoopId) {
SignalDatabase.sms.insertNumberChangeMessages(changeSet.id.recipientId)
SignalDatabase.messages.insertNumberChangeMessages(changeSet.id.recipientId)
} else {
throw IllegalStateException("There's a change number event on a newly-inserted recipient?")
}
@@ -3558,7 +3558,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da
mergeEvent.previousE164 = secondaryRecord.e164
}
SignalDatabase.sms.insertThreadMergeEvent(primaryRecord.id, threadMerge.threadId, mergeEvent.build())
SignalDatabase.messages.insertThreadMergeEvent(primaryRecord.id, threadMerge.threadId, mergeEvent.build())
}
// Recipient
@@ -38,10 +38,10 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
),
SignalDatabaseOpenHelper {
val mms: MessageTable = MessageTable(context, this)
val attachments: AttachmentTable = AttachmentTable(context, this, attachmentSecret)
val media: MediaTable = MediaTable(context, this)
val thread: ThreadTable = ThreadTable(context, this)
val messageTable: MessageTable = MessageTable(context, this)
val attachmentTable: AttachmentTable = AttachmentTable(context, this, attachmentSecret)
val mediaTable: MediaTable = MediaTable(context, this)
val threadTable: ThreadTable = ThreadTable(context, this)
val mmsSmsTable: MmsSmsTable = MmsSmsTable(context, this)
val identityTable: IdentityTable = IdentityTable(context, this)
val draftTable: DraftTable = DraftTable(context, this)
@@ -277,8 +277,8 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
database.withinTransaction { db ->
instance!!.onUpgrade(db, db.getVersion(), -1)
instance!!.markCurrent(db)
instance!!.mms.deleteAbandonedMessages()
instance!!.mms.trimEntriesForExpiredMessages()
instance!!.messageTable.deleteAbandonedMessages()
instance!!.messageTable.trimEntriesForExpiredMessages()
instance!!.reactionTable.deleteAbandonedReactions()
instance!!.rawWritableDatabase.execSQL("DROP TABLE IF EXISTS key_value")
instance!!.rawWritableDatabase.execSQL("DROP TABLE IF EXISTS megaphone")
@@ -346,7 +346,7 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
@get:JvmStatic
@get:JvmName("attachments")
val attachments: AttachmentTable
get() = instance!!.attachments
get() = instance!!.attachmentTable
@get:JvmStatic
@get:JvmName("avatarPicker")
@@ -406,7 +406,7 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
@get:JvmStatic
@get:JvmName("media")
val media: MediaTable
get() = instance!!.media
get() = instance!!.mediaTable
@get:JvmStatic
@get:JvmName("mentions")
@@ -414,9 +414,9 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
get() = instance!!.mentionTable
@get:JvmStatic
@get:JvmName("messageSearch")
val messageSearch: SearchTable
get() = instance!!.searchTable
@get:JvmName("messages")
val messages: MessageTable
get() = instance!!.messageTable
@get:JvmStatic
@get:JvmName("messageLog")
@@ -424,9 +424,9 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
get() = instance!!.messageSendLogTables
@get:JvmStatic
@get:JvmName("mms")
val mms: MessageTable
get() = instance!!.mms
@get:JvmName("messageSearch")
val messageSearch: SearchTable
get() = instance!!.searchTable
@get:JvmStatic
@get:JvmName("mmsSms")
@@ -453,6 +453,11 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
val oneTimePreKeys: OneTimePreKeyTable
get() = instance!!.preKeyDatabase
@get:JvmStatic
@get:JvmName("pendingPniSignatureMessages")
val pendingPniSignatureMessages: PendingPniSignatureMessageTable
get() = instance!!.pendingPniSignatureMessageTable
@get:Deprecated("This only exists to migrate from legacy storage. There shouldn't be any new usages.")
@get:JvmStatic
@get:JvmName("push")
@@ -469,15 +474,10 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
val signedPreKeys: SignedPreKeyTable
get() = instance!!.signedPreKeyTable
@get:JvmStatic
@get:JvmName("sms")
val sms: MessageTable
get() = instance!!.mms
@get:JvmStatic
@get:JvmName("threads")
val threads: ThreadTable
get() = instance!!.thread
get() = instance!!.threadTable
@get:JvmStatic
@get:JvmName("reactions")
@@ -523,10 +523,5 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
@get:JvmName("remoteMegaphones")
val remoteMegaphones: RemoteMegaphoneTable
get() = instance!!.remoteMegaphoneTable
@get:JvmStatic
@get:JvmName("pendingPniSignatureMessages")
val pendingPniSignatureMessages: PendingPniSignatureMessageTable
get() = instance!!.pendingPniSignatureMessageTable
}
}
@@ -311,8 +311,8 @@ class StorySendTable(context: Context, databaseHelper: SignalDatabase) : Databas
val messagesWithoutAnyReceivers = localRows.map { it.messageId }.distinct() - remoteRows.map { it.messageId }.distinct()
messagesWithoutAnyReceivers.forEach {
SignalDatabase.mms.markAsRemoteDelete(it)
SignalDatabase.mms.deleteRemotelyDeletedStory(it)
SignalDatabase.messages.markAsRemoteDelete(it)
SignalDatabase.messages.deleteRemotelyDeletedStory(it)
}
writableDatabase.setTransactionSuccessful()
@@ -33,10 +33,9 @@ import org.thoughtcrime.securesms.database.SignalDatabase.Companion.drafts
import org.thoughtcrime.securesms.database.SignalDatabase.Companion.groupReceipts
import org.thoughtcrime.securesms.database.SignalDatabase.Companion.mentions
import org.thoughtcrime.securesms.database.SignalDatabase.Companion.messageLog
import org.thoughtcrime.securesms.database.SignalDatabase.Companion.mms
import org.thoughtcrime.securesms.database.SignalDatabase.Companion.messages
import org.thoughtcrime.securesms.database.SignalDatabase.Companion.mmsSms
import org.thoughtcrime.securesms.database.SignalDatabase.Companion.recipients
import org.thoughtcrime.securesms.database.SignalDatabase.Companion.sms
import org.thoughtcrime.securesms.database.model.MediaMmsMessageRecord
import org.thoughtcrime.securesms.database.model.MessageRecord
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
@@ -376,14 +375,12 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
)
.run()
val smsRecords = sms.setAllMessagesRead()
val mmsRecords = mms.setAllMessagesRead()
val messageRecords: List<MarkedMessageInfo> = messages.setAllMessagesRead()
sms.setAllReactionsSeen()
mms.setAllReactionsSeen()
messages.setAllReactionsSeen()
notifyConversationListListeners()
return smsRecords + mmsRecords
return messageRecords
}
fun hasCalledSince(recipient: Recipient, timestamp: Long): Boolean {
@@ -396,7 +393,7 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
fun setEntireThreadRead(threadId: Long): List<MarkedMessageInfo> {
setRead(threadId, false)
return sms.setEntireThreadRead(threadId) + mms.setEntireThreadRead(threadId)
return messages.setEntireThreadRead(threadId)
}
fun setRead(threadId: Long, lastSeen: Boolean): List<MarkedMessageInfo> {
@@ -428,26 +425,23 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
}
private fun setGroupStoryReadSince(threadId: Long, groupStoryId: Long, sinceTimestamp: Long): List<MarkedMessageInfo> {
return mms.setGroupStoryMessagesReadSince(threadId, groupStoryId, sinceTimestamp)
return messages.setGroupStoryMessagesReadSince(threadId, groupStoryId, sinceTimestamp)
}
fun setReadSince(threadIdToSinceTimestamp: Map<Long, Long>, lastSeen: Boolean): List<MarkedMessageInfo> {
val smsRecords: MutableList<MarkedMessageInfo> = LinkedList()
val mmsRecords: MutableList<MarkedMessageInfo> = LinkedList()
val messageRecords: MutableList<MarkedMessageInfo> = LinkedList()
var needsSync = false
writableDatabase.withinTransaction { db ->
for ((threadId, sinceTimestamp) in threadIdToSinceTimestamp) {
val previous = getThreadRecord(threadId)
smsRecords += sms.setMessagesReadSince(threadId, sinceTimestamp)
mmsRecords += mms.setMessagesReadSince(threadId, sinceTimestamp)
messageRecords += messages.setMessagesReadSince(threadId, sinceTimestamp)
sms.setReactionsSeen(threadId, sinceTimestamp)
mms.setReactionsSeen(threadId, sinceTimestamp)
messages.setReactionsSeen(threadId, sinceTimestamp)
val unreadCount = mmsSms.getUnreadCount(threadId)
val unreadMentionsCount = mms.getUnreadMentionCount(threadId)
val unreadMentionsCount = messages.getUnreadMentionCount(threadId)
val contentValues = contentValuesOf(
READ to ReadStatus.READ.serialize(),
@@ -478,7 +472,7 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
StorageSyncHelper.scheduleSyncForDataChange()
}
return smsRecords + mmsRecords
return messageRecords
}
fun setForcedUnread(threadIds: Collection<Long>) {
@@ -1024,8 +1018,7 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
val recipientIdForThreadId = getRecipientIdForThreadId(threadId)
writableDatabase.withinTransaction { db ->
sms.deleteThread(threadId)
mms.deleteThread(threadId)
messages.deleteThread(threadId)
drafts.clearDrafts(threadId)
db.delete(TABLE_NAME)
.where("$ID = ?", threadId)
@@ -1041,8 +1034,7 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
val recipientIdsForThreadIds = getRecipientIdsForThreadIds(selectedConversations)
writableDatabase.withinTransaction { db ->
sms.deleteThreads(selectedConversations)
mms.deleteThreads(selectedConversations)
messages.deleteThreads(selectedConversations)
drafts.clearDrafts(selectedConversations)
SqlUtil.buildCollectionQuery(ID, selectedConversations)
@@ -1057,8 +1049,7 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
fun deleteAllConversations() {
writableDatabase.withinTransaction { db ->
messageLog.deleteAll()
sms.deleteAllThreads()
mms.deleteAllThreads()
messages.deleteAllThreads()
drafts.clearAllDrafts()
db.delete(TABLE_NAME, null, null)
}
@@ -1178,7 +1169,7 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
fun updateReadState(threadId: Long) {
val previous = getThreadRecord(threadId)
val unreadCount = mmsSms.getUnreadCount(threadId)
val unreadMentionsCount = mms.getUnreadMentionCount(threadId)
val unreadMentionsCount = messages.getUnreadMentionCount(threadId)
writableDatabase
.update(TABLE_NAME)
@@ -1266,7 +1257,7 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
values.put(READ, ReadStatus.FORCED_UNREAD.serialize())
} else if (threadId != null) {
val unreadCount = mmsSms.getUnreadCount(threadId)
val unreadMentionsCount = mms.getUnreadMentionCount(threadId)
val unreadMentionsCount = messages.getUnreadMentionCount(threadId)
values.put(READ, if (unreadCount == 0) ReadStatus.READ.serialize() else ReadStatus.UNREAD.serialize())
values.put(UNREAD_COUNT, unreadCount)
@@ -1315,7 +1306,7 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
val meaningfulMessages = mmsSms.hasMeaningfulMessage(threadId)
val isPinned = getPinnedThreadIds().contains(threadId)
val shouldDelete = allowDeletion && !isPinned && !mms.containsStories(threadId)
val shouldDelete = allowDeletion && !isPinned && !messages.containsStories(threadId)
if (!meaningfulMessages) {
if (shouldDelete) {
@@ -45,7 +45,7 @@ enum class StoryViewState {
private fun getState(recipientId: RecipientId): Observable<StoryViewState> {
return Observable.create<StoryViewState> { emitter ->
fun refresh() {
emitter.onNext(SignalDatabase.mms.getStoryViewState(recipientId))
emitter.onNext(SignalDatabase.messages.getStoryViewState(recipientId))
}
val storyObserver = DatabaseObserver.Observer {
@@ -21,8 +21,8 @@ import kotlin.time.Duration.Companion.milliseconds
* we "page" through the unexported messages to reduce chances of exceeding that limit.
*/
class SignalSmsExportReader(
private val smsDatabase: MessageTable = SignalDatabase.sms,
private val mmsDatabase: MessageTable = SignalDatabase.mms
private val smsDatabase: MessageTable = SignalDatabase.messages,
private val mmsDatabase: MessageTable = SignalDatabase.messages
) : Iterable<ExportableMessage>, Closeable {
companion object {
@@ -83,13 +83,13 @@ class SignalSmsExportService : SmsExportService() {
}
override fun clearPreviousExportState() {
SignalDatabase.sms.clearExportState()
SignalDatabase.mms.clearExportState()
SignalDatabase.messages.clearExportState()
SignalDatabase.messages.clearExportState()
}
override fun prepareForExport() {
SignalDatabase.sms.clearInsecureMessageExportedErrorStatus()
SignalDatabase.mms.clearInsecureMessageExportedErrorStatus()
SignalDatabase.messages.clearInsecureMessageExportedErrorStatus()
SignalDatabase.messages.clearInsecureMessageExportedErrorStatus()
}
override fun getUnexportedMessageCount(): Int {
@@ -48,7 +48,7 @@ class ExportSmsPartiallyCompleteFragment : LoggingFragment(R.layout.export_sms_p
SimpleTask.runWhenValid(
viewLifecycleOwner.lifecycle,
{ SignalDatabase.sms.getUnexportedInsecureMessagesEstimatedSize() + SignalDatabase.mms.getUnexportedInsecureMessagesEstimatedSize() },
{ SignalDatabase.messages.getUnexportedInsecureMessagesEstimatedSize() + SignalDatabase.messages.getUnexportedInsecureMessagesEstimatedSize() },
{ totalSize ->
binding.bullet1Text.setText(getString(R.string.ExportSmsPartiallyComplete__ensure_you_have_an_additional_s_free_on_your_phone_to_export_your_messages, Formatter.formatFileSize(requireContext(), totalSize)))
}
@@ -30,7 +30,7 @@ class ExportingSmsRepository(private val context: Application = ApplicationDepen
storageManagerFreeSpace ?: internalStorageFile.usableSpace
}
SmsExportSizeEstimations(internalFreeSpace, SignalDatabase.sms.getUnexportedInsecureMessagesEstimatedSize() + SignalDatabase.mms.getUnexportedInsecureMessagesEstimatedSize())
SmsExportSizeEstimations(internalFreeSpace, SignalDatabase.messages.getUnexportedInsecureMessagesEstimatedSize() + SignalDatabase.messages.getUnexportedInsecureMessagesEstimatedSize())
}.subscribeOn(Schedulers.io())
}
@@ -19,8 +19,8 @@ object SmsExportDialogs {
}
.setNegativeButton(R.string.RemoveSmsMessagesDialogFragment__remove_messages) { _, _ ->
SignalExecutors.BOUNDED.execute {
SignalDatabase.sms.deleteExportedMessages()
SignalDatabase.mms.deleteExportedMessages()
SignalDatabase.messages.deleteExportedMessages()
SignalDatabase.messages.deleteExportedMessages()
}
Snackbar.make(view, R.string.SmsSettingsFragment__removing_sms_messages_from_signal, Snackbar.LENGTH_SHORT).show()
}
@@ -1283,8 +1283,8 @@ final class GroupManagerV2 {
} else {
long threadId = SignalDatabase.threads().getOrCreateValidThreadId(outgoingMessage.getRecipient(), -1, outgoingMessage.getDistributionType());
try {
long messageId = SignalDatabase.mms().insertMessageOutbox(outgoingMessage, threadId, false, null);
SignalDatabase.mms().markAsSent(messageId, true);
long messageId = SignalDatabase.messages().insertMessageOutbox(outgoingMessage, threadId, false, null);
SignalDatabase.messages().markAsSent(messageId, true);
SignalDatabase.threads().update(threadId, true);
} catch (MmsException e) {
throw new AssertionError(e);
@@ -515,7 +515,7 @@ public class GroupsV2StateProcessor {
OutgoingMessage leaveMessage = OutgoingMessage.groupUpdateMessage(groupRecipient, decryptedGroupV2Context, System.currentTimeMillis());
try {
MessageTable mmsDatabase = SignalDatabase.mms();
MessageTable mmsDatabase = SignalDatabase.messages();
ThreadTable threadTable = SignalDatabase.threads();
long threadId = threadTable.getOrCreateThreadIdFor(groupRecipient);
long id = mmsDatabase.insertMessageOutbox(leaveMessage, threadId, false, null);
@@ -738,7 +738,7 @@ public class GroupsV2StateProcessor {
if (outgoing) {
try {
MessageTable mmsDatabase = SignalDatabase.mms();
MessageTable mmsDatabase = SignalDatabase.messages();
ThreadTable threadTable = SignalDatabase.threads();
RecipientId recipientId = recipientTable.getOrInsertFromGroupId(groupId);
Recipient recipient = Recipient.resolved(recipientId);
@@ -752,7 +752,7 @@ public class GroupsV2StateProcessor {
Log.w(TAG, e);
}
} else {
MessageTable smsDatabase = SignalDatabase.sms();
MessageTable smsDatabase = SignalDatabase.messages();
RecipientId sender = RecipientId.from(editor.get());
IncomingTextMessage incoming = new IncomingTextMessage(sender, -1, timestamp, timestamp, timestamp, "", Optional.of(groupId), 0, false, null);
IncomingGroupUpdateMessage groupMessage = new IncomingGroupUpdateMessage(incoming, decryptedGroupV2Context);
@@ -121,7 +121,7 @@ public final class AttachmentDownloadJob extends BaseJob {
public void onRun() throws Exception {
doWork();
if (!SignalDatabase.mms().isStory(messageId)) {
if (!SignalDatabase.messages().isStory(messageId)) {
ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(0));
}
}
@@ -121,7 +121,7 @@ public class AutomaticSessionResetJob extends BaseJob {
}
private void insertLocalMessage() {
MessageTable.InsertResult result = SignalDatabase.sms().insertChatSessionRefreshedMessage(recipientId, deviceId, sentTimestamp);
MessageTable.InsertResult result = SignalDatabase.messages().insertChatSessionRefreshedMessage(recipientId, deviceId, sentTimestamp);
ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(result.getThreadId()));
}
@@ -138,14 +138,14 @@ public class DonationReceiptRedemptionJob extends BaseJob {
SignalStore.donationsValues().markSubscriptionRedemptionFailed();
MultiDeviceSubscriptionSyncRequestJob.enqueue();
} else if (giftMessageId != NO_ID) {
SignalDatabase.mms().markGiftRedemptionFailed(giftMessageId);
SignalDatabase.messages().markGiftRedemptionFailed(giftMessageId);
}
}
@Override
public void onAdded() {
if (giftMessageId != NO_ID) {
SignalDatabase.mms().markGiftRedemptionStarted(giftMessageId);
SignalDatabase.messages().markGiftRedemptionStarted(giftMessageId);
}
}
@@ -205,8 +205,8 @@ public class DonationReceiptRedemptionJob extends BaseJob {
SignalStore.donationsValues().clearSubscriptionReceiptCredential();
} else if (giftMessageId != NO_ID) {
Log.d(TAG, "Marking gift redemption completed for " + giftMessageId);
SignalDatabase.mms().markGiftRedemptionCompleted(giftMessageId);
MessageTable.MarkedMessageInfo markedMessageInfo = SignalDatabase.mms().setIncomingMessageViewed(giftMessageId);
SignalDatabase.messages().markGiftRedemptionCompleted(giftMessageId);
MessageTable.MarkedMessageInfo markedMessageInfo = SignalDatabase.messages().setIncomingMessageViewed(giftMessageId);
if (markedMessageInfo != null) {
Log.d(TAG, "Marked gift message viewed for " + giftMessageId);
MultiDeviceViewedUpdateJob.enqueue(Collections.singletonList(markedMessageInfo.getSyncMessageId()));
@@ -250,7 +250,7 @@ public class DonationReceiptRedemptionJob extends BaseJob {
}
private @Nullable ReceiptCredentialPresentation getPresentationFromGiftMessage() throws InvalidInputException, NoSuchMessageException {
MessageRecord messageRecord = SignalDatabase.mms().getMessageRecord(giftMessageId);
MessageRecord messageRecord = SignalDatabase.messages().getMessageRecord(giftMessageId);
if (MessageRecordUtil.hasGiftBadge(messageRecord)) {
GiftBadge giftBadge = MessageRecordUtil.requireGiftBadge(messageRecord);
@@ -98,7 +98,7 @@ public class MmsDownloadJob extends BaseJob {
@Override
public void onAdded() {
if (automatic && KeyCachingService.isLocked(context)) {
SignalDatabase.mms().markIncomingNotificationReceived(threadId);
SignalDatabase.messages().markIncomingNotificationReceived(threadId);
ApplicationDependencies.getMessageNotifier().updateNotification(context);
}
}
@@ -109,7 +109,7 @@ public class MmsDownloadJob extends BaseJob {
throw new NotReadyException();
}
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
Optional<MessageTable.MmsNotificationInfo> notification = database.getNotification(messageId);
if (!notification.isPresent()) {
@@ -169,7 +169,7 @@ public class MmsDownloadJob extends BaseJob {
@Override
public void onFailure() {
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
database.markDownloadState(messageId, MessageTable.MmsStatus.DOWNLOAD_SOFT_FAILURE);
if (automatic) {
@@ -188,7 +188,7 @@ public class MmsDownloadJob extends BaseJob {
int subscriptionId, @Nullable RecipientId notificationFrom)
throws MmsException
{
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
Optional<GroupId> group = Optional.empty();
Set<RecipientId> members = new HashSet<>();
String body = null;
@@ -259,7 +259,7 @@ public class MmsDownloadJob extends BaseJob {
private void handleDownloadError(long messageId, long threadId, int downloadStatus, boolean automatic)
{
MessageTable db = SignalDatabase.mms();
MessageTable db = SignalDatabase.messages();
db.markDownloadState(messageId, downloadStatus);
@@ -76,7 +76,7 @@ public class MmsReceiveJob extends BaseJob {
} else if (isNotification(pdu) && isSelf(pdu)) {
Log.w(TAG, "Received an MMS from ourselves! Ignoring.");
} else if (isNotification(pdu)) {
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
Pair<Long, Long> messageAndThreadId = database.insertMessageInbox((NotificationInd)pdu, subscriptionId);
Log.i(TAG, "Inserted received MMS notification...");
@@ -80,7 +80,7 @@ public final class MmsSendJob extends SendJob {
/** Enqueues compression jobs for attachments and finally the MMS send job. */
@WorkerThread
public static void enqueue(@NonNull Context context, @NonNull JobManager jobManager, long messageId) {
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
OutgoingMessage message;
try {
@@ -117,12 +117,12 @@ public final class MmsSendJob extends SendJob {
@Override
public void onAdded() {
SignalDatabase.mms().markAsSending(messageId);
SignalDatabase.messages().markAsSending(messageId);
}
@Override
public void onSend() throws MmsException, NoSuchMessageException, IOException {
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
OutgoingMessage message = database.getOutgoingMessage(messageId);
if (database.isSent(messageId)) {
@@ -164,7 +164,7 @@ public final class MmsSendJob extends SendJob {
@Override
public void onFailure() {
Log.i(TAG, JobLogger.format(this, "onFailure() messageId: " + messageId));
SignalDatabase.mms().markAsSentFailed(messageId);
SignalDatabase.messages().markAsSentFailed(messageId);
notifyMediaMessageDeliveryFailed(context, messageId);
}
@@ -344,7 +344,7 @@ public final class MmsSendJob extends SendJob {
}
private void notifyMediaMessageDeliveryFailed(Context context, long messageId) {
long threadId = SignalDatabase.mms().getThreadIdForMessage(messageId);
long threadId = SignalDatabase.messages().getThreadIdForMessage(messageId);
Recipient recipient = SignalDatabase.threads().getRecipientForThreadId(threadId);
if (recipient != null) {
@@ -65,7 +65,7 @@ class MultiDeviceStorySendSyncJob private constructor(parameters: Parameters, pr
throw RetryableException()
}
SignalDatabase.mms.deleteRemotelyDeletedStory(deletedMessageId)
SignalDatabase.messages.deleteRemotelyDeletedStory(deletedMessageId)
}
override fun onShouldRetry(e: Exception): Boolean {
@@ -96,7 +96,7 @@ public final class PushDistributionListSendJob extends PushSendJob {
throw new AssertionError("Not a distribution list! MessageId: " + messageId);
}
OutgoingMessage message = SignalDatabase.mms().getOutgoingMessage(messageId);
OutgoingMessage message = SignalDatabase.messages().getOutgoingMessage(messageId);
if (!message.getStoryType().isStory()) {
throw new AssertionError("Only story messages are currently supported! MessageId: " + messageId);
@@ -112,7 +112,7 @@ public final class PushDistributionListSendJob extends PushSendJob {
jobManager.add(new PushDistributionListSendJob(messageId, destination, !attachmentUploadIds.isEmpty(), filterRecipientIds), attachmentUploadIds, attachmentUploadIds.isEmpty() ? null : destination.toQueueKey());
} catch (NoSuchMessageException | MmsException e) {
Log.w(TAG, "Failed to enqueue message.", e);
SignalDatabase.mms().markAsSentFailed(messageId);
SignalDatabase.messages().markAsSentFailed(messageId);
notifyMediaMessageDeliveryFailed(context, messageId);
}
}
@@ -131,14 +131,14 @@ public final class PushDistributionListSendJob extends PushSendJob {
@Override
public void onAdded() {
SignalDatabase.mms().markAsSending(messageId);
SignalDatabase.messages().markAsSending(messageId);
}
@Override
public void onPushSend()
throws IOException, MmsException, NoSuchMessageException, RetryLaterException
{
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
OutgoingMessage message = database.getOutgoingMessage(messageId);
Set<NetworkFailure> existingNetworkFailures = new HashSet<>(message.getNetworkFailures());
Set<IdentityKeyMismatch> existingIdentityMismatches = new HashSet<>(message.getIdentityKeyMismatches());
@@ -187,7 +187,7 @@ public final class PushDistributionListSendJob extends PushSendJob {
@Override
public void onFailure() {
SignalDatabase.mms().markAsSentFailed(messageId);
SignalDatabase.messages().markAsSentFailed(messageId);
}
private List<SendMessageResult> deliver(@NonNull OutgoingMessage message, @NonNull List<Recipient> destinations)
@@ -112,7 +112,7 @@ public final class PushGroupSendJob extends PushSendJob {
throw new AssertionError("Not a group!");
}
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
OutgoingMessage message = database.getOutgoingMessage(messageId);
Set<String> attachmentUploadIds = enqueueCompressingAndUploadAttachmentsChains(jobManager, message);
@@ -128,7 +128,7 @@ public final class PushGroupSendJob extends PushSendJob {
} catch (NoSuchMessageException | MmsException e) {
Log.w(TAG, "Failed to enqueue message.", e);
SignalDatabase.mms().markAsSentFailed(messageId);
SignalDatabase.messages().markAsSentFailed(messageId);
notifyMediaMessageDeliveryFailed(context, messageId);
}
}
@@ -151,7 +151,7 @@ public final class PushGroupSendJob extends PushSendJob {
@Override
public void onAdded() {
SignalDatabase.mms().markAsSending(messageId);
SignalDatabase.messages().markAsSending(messageId);
}
@Override
@@ -160,7 +160,7 @@ public final class PushGroupSendJob extends PushSendJob {
{
SignalLocalMetrics.GroupMessageSend.onJobStarted(messageId);
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
OutgoingMessage message = database.getOutgoingMessage(messageId);
long threadId = database.getMessageRecord(messageId).getThreadId();
Set<NetworkFailure> existingNetworkFailures = new HashSet<>(message.getNetworkFailures());
@@ -231,7 +231,7 @@ public final class PushGroupSendJob extends PushSendJob {
@Override
public void onFailure() {
SignalDatabase.mms().markAsSentFailed(messageId);
SignalDatabase.messages().markAsSentFailed(messageId);
}
private List<SendMessageResult> deliver(OutgoingMessage message, @NonNull Recipient groupRecipient, @NonNull List<Recipient> destinations)
@@ -325,7 +325,7 @@ public final class PushGroupSendJob extends PushSendJob {
if (message.getParentStoryId() != null) {
try {
MessageRecord storyRecord = SignalDatabase.mms().getMessageRecord(message.getParentStoryId().asMessageId().getId());
MessageRecord storyRecord = SignalDatabase.messages().getMessageRecord(message.getParentStoryId().asMessageId().getId());
Recipient recipient = storyRecord.isOutgoing() ? Recipient.self() : storyRecord.getIndividualRecipient();
destinations = destinations.stream()
@@ -381,7 +381,7 @@ public final class PushGroupSendJob extends PushSendJob {
@NonNull Set<IdentityKeyMismatch> existingIdentityMismatches)
throws RetryLaterException, ProofRequiredException
{
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
RecipientAccessList accessList = new RecipientAccessList(target);
List<NetworkFailure> networkFailures = Stream.of(results).filter(SendMessageResult::isNetworkFailure).map(result -> new NetworkFailure(accessList.requireIdByAddress(result.getAddress()))).toList();
@@ -83,7 +83,7 @@ public class PushMediaSendJob extends PushSendJob {
throw new AssertionError("No ServiceId!");
}
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
OutgoingMessage message = database.getOutgoingMessage(messageId);
Set<String> attachmentUploadIds = enqueueCompressingAndUploadAttachmentsChains(jobManager, message);
@@ -91,7 +91,7 @@ public class PushMediaSendJob extends PushSendJob {
} catch (NoSuchMessageException | MmsException e) {
Log.w(TAG, "Failed to enqueue message.", e);
SignalDatabase.mms().markAsSentFailed(messageId);
SignalDatabase.messages().markAsSentFailed(messageId);
notifyMediaMessageDeliveryFailed(context, messageId);
}
}
@@ -108,7 +108,7 @@ public class PushMediaSendJob extends PushSendJob {
@Override
public void onAdded() {
SignalDatabase.mms().markAsSending(messageId);
SignalDatabase.messages().markAsSending(messageId);
}
@Override
@@ -116,7 +116,7 @@ public class PushMediaSendJob extends PushSendJob {
throws IOException, MmsException, NoSuchMessageException, UndeliverableMessageException, RetryLaterException
{
ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager();
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
OutgoingMessage message = database.getOutgoingMessage(messageId);
long threadId = database.getMessageRecord(messageId).getThreadId();
@@ -187,7 +187,7 @@ public class PushMediaSendJob extends PushSendJob {
@Override
public void onFailure() {
SignalDatabase.mms().markAsSentFailed(messageId);
SignalDatabase.messages().markAsSentFailed(messageId);
notifyMediaMessageDeliveryFailed(context, messageId);
}
@@ -234,7 +234,7 @@ public class PushMediaSendJob extends PushSendJob {
if (message.getParentStoryId() != null) {
try {
MessageRecord storyRecord = SignalDatabase.mms().getMessageRecord(message.getParentStoryId().asMessageId().getId());
MessageRecord storyRecord = SignalDatabase.messages().getMessageRecord(message.getParentStoryId().asMessageId().getId());
Recipient storyRecipient = storyRecord.isOutgoing() ? Recipient.self() : storyRecord.getRecipient();
SignalServiceDataMessage.StoryContext storyContext = new SignalServiceDataMessage.StoryContext(storyRecipient.requireServiceId(), storyRecord.getDateSent());
@@ -290,9 +290,9 @@ public abstract class PushSendJob extends SendJob {
}
protected static void notifyMediaMessageDeliveryFailed(Context context, long messageId) {
long threadId = SignalDatabase.mms().getThreadIdForMessage(messageId);
long threadId = SignalDatabase.messages().getThreadIdForMessage(messageId);
Recipient recipient = SignalDatabase.threads().getRecipientForThreadId(threadId);
ParentStoryId.GroupReply groupReplyStoryId = SignalDatabase.mms().getParentStoryIdForGroupReply(messageId);
ParentStoryId.GroupReply groupReplyStoryId = SignalDatabase.messages().getParentStoryIdForGroupReply(messageId);
if (threadId != -1 && recipient != null) {
ApplicationDependencies.getMessageNotifier().notifyMessageDeliveryFailed(context, recipient, ConversationId.fromThreadAndReply(threadId, groupReplyStoryId));
@@ -504,9 +504,9 @@ public abstract class PushSendJob extends SendJob {
Log.w(TAG, "[Proof Required] Marking message as rate-limited. (id: " + messageId + ", mms: " + isMms + ", thread: " + threadId + ")");
if (isMms) {
SignalDatabase.mms().markAsRateLimited(messageId);
SignalDatabase.messages().markAsRateLimited(messageId);
} else {
SignalDatabase.sms().markAsRateLimited(messageId);
SignalDatabase.messages().markAsRateLimited(messageId);
}
if (proofRequired.getOptions().contains(ProofRequiredException.Option.RECAPTCHA)) {
@@ -514,7 +514,7 @@ public abstract class PushSendJob extends SendJob {
SignalStore.rateLimit().markNeedsRecaptcha(proofRequired.getToken());
if (recipient != null) {
ParentStoryId.GroupReply groupReply = SignalDatabase.mms().getParentStoryIdForGroupReply(messageId);
ParentStoryId.GroupReply groupReply = SignalDatabase.messages().getParentStoryIdForGroupReply(messageId);
ApplicationDependencies.getMessageNotifier().notifyProofRequired(context, recipient, ConversationId.fromThreadAndReply(threadId, groupReply));
} else {
Log.w(TAG, "[Proof Required] No recipient! Couldn't notify.");
@@ -67,8 +67,8 @@ public class ReactionSendJob extends BaseJob {
boolean remove)
throws NoSuchMessageException
{
MessageRecord message = messageId.isMms() ? SignalDatabase.mms().getMessageRecord(messageId.getId())
: SignalDatabase.sms().getSmsMessage(messageId.getId());
MessageRecord message = messageId.isMms() ? SignalDatabase.messages().getMessageRecord(messageId.getId())
: SignalDatabase.messages().getSmsMessage(messageId.getId());
Recipient conversationRecipient = SignalDatabase.threads().getRecipientForThreadId(message.getThreadId());
@@ -143,9 +143,9 @@ public class ReactionSendJob extends BaseJob {
MessageRecord message;
if (messageId.isMms()) {
message = SignalDatabase.mms().getMessageRecord(messageId.getId());
message = SignalDatabase.messages().getMessageRecord(messageId.getId());
} else {
message = SignalDatabase.sms().getSmsMessage(messageId.getId());
message = SignalDatabase.messages().getSmsMessage(messageId.getId());
}
Recipient targetAuthor = message.isOutgoing() ? Recipient.self() : message.getIndividualRecipient();
@@ -27,7 +27,6 @@ import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.recipients.RecipientUtil;
import org.thoughtcrime.securesms.transport.RetryLaterException;
import org.thoughtcrime.securesms.util.GroupUtil;
import org.thoughtcrime.securesms.util.MessageRecordUtil;
import org.thoughtcrime.securesms.util.Util;
import org.whispersystems.signalservice.api.crypto.ContentHint;
import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException;
@@ -60,8 +59,8 @@ public class RemoteDeleteSendJob extends BaseJob {
public static @NonNull JobManager.Chain create(long messageId, boolean isMms)
throws NoSuchMessageException
{
MessageRecord message = isMms ? SignalDatabase.mms().getMessageRecord(messageId)
: SignalDatabase.sms().getSmsMessage(messageId);
MessageRecord message = isMms ? SignalDatabase.messages().getMessageRecord(messageId)
: SignalDatabase.messages().getSmsMessage(messageId);
Recipient conversationRecipient = SignalDatabase.threads().getRecipientForThreadId(message.getThreadId());
@@ -139,11 +138,11 @@ public class RemoteDeleteSendJob extends BaseJob {
MessageRecord message;
if (isMms) {
db = SignalDatabase.mms();
message = SignalDatabase.mms().getMessageRecord(messageId);
db = SignalDatabase.messages();
message = SignalDatabase.messages().getMessageRecord(messageId);
} else {
db = SignalDatabase.sms();
message = SignalDatabase.sms().getSmsMessage(messageId);
db = SignalDatabase.messages();
message = SignalDatabase.messages().getSmsMessage(messageId);
}
long targetSentTimestamp = message.getDateSent();
@@ -469,7 +469,7 @@ public class RetrieveProfileJob extends BaseJob {
!remoteDisplayName.equals(localDisplayName))
{
Log.i(TAG, "Writing a profile name change event for " + recipient.getId());
SignalDatabase.sms().insertProfileNameChangeMessages(recipient, remoteDisplayName, localDisplayName);
SignalDatabase.messages().insertProfileNameChangeMessages(recipient, remoteDisplayName, localDisplayName);
} else {
Log.i(TAG, String.format(Locale.US, "Name changed, but wasn't relevant to write an event. blocked: %s, group: %s, self: %s, firstSet: %s, displayChange: %s",
recipient.isBlocked(), recipient.isGroup(), recipient.isSelf(), localDisplayName.isEmpty(), !remoteDisplayName.equals(localDisplayName)));
@@ -227,7 +227,7 @@ class RetrieveRemoteAnnouncementsJob private constructor(private val force: Bool
if (addedNewNotes) {
ThreadUtil.sleep(5)
SignalDatabase.sms.insertBoostRequestMessage(values.releaseChannelRecipientId!!, threadId)
SignalDatabase.messages.insertBoostRequestMessage(values.releaseChannelRecipientId!!, threadId)
}
values.highestVersionNoteReceived = highestVersion
@@ -38,7 +38,7 @@ class SendPaymentsActivatedJob(parameters: Parameters) : BaseJob(parameters) {
return
}
val threadIds: List<Long> = SignalDatabase.mms.getIncomingPaymentRequestThreads()
val threadIds: List<Long> = SignalDatabase.messages.getIncomingPaymentRequestThreads()
for (threadId in threadIds) {
val recipient = SignalDatabase.threads.getRecipientForThreadId(threadId)
@@ -139,7 +139,7 @@ public class SendViewedReceiptJob extends BaseJob {
List<MessageId> foundMessageIds = new LinkedList<>();
List<Long> messageSentTimestamps = new LinkedList<>();
List<StoryType> storyTypes = SignalDatabase.mms().getStoryTypes(this.messageIds);
List<StoryType> storyTypes = SignalDatabase.messages().getStoryTypes(this.messageIds);
for (int i = 0; i < storyTypes.size(); i++) {
StoryType storyType = storyTypes.get(i);
@@ -154,7 +154,7 @@ public class SmsReceiveJob extends BaseJob {
}
private Optional<InsertResult> storeMessage(IncomingTextMessage message) throws MigrationPendingException {
MessageTable database = SignalDatabase.sms();
MessageTable database = SignalDatabase.messages();
database.ensureMigration();
if (TextSecurePreferences.getNeedsSqlCipherMigration(context)) {
@@ -70,7 +70,7 @@ public class SmsSendJob extends SendJob {
@Override
public void onAdded() {
SignalDatabase.sms().markAsSending(messageId);
SignalDatabase.messages().markAsSending(messageId);
}
@Override
@@ -80,7 +80,7 @@ public class SmsSendJob extends SendJob {
throw new TooManyRetriesException();
}
MessageTable database = SignalDatabase.sms();
MessageTable database = SignalDatabase.messages();
SmsMessageRecord record = database.getSmsMessage(messageId);
if (!record.isPending() && !record.isFailed()) {
@@ -98,7 +98,7 @@ public class SmsSendJob extends SendJob {
log(TAG, String.valueOf(record.getDateSent()), "Sent message: " + messageId);
} catch (UndeliverableMessageException ude) {
warn(TAG, ude);
SignalDatabase.sms().markAsSentFailed(record.getId());
SignalDatabase.messages().markAsSentFailed(record.getId());
ApplicationDependencies.getMessageNotifier().notifyMessageDeliveryFailed(context, record.getRecipient(), ConversationId.fromMessageRecord(record));
}
}
@@ -111,10 +111,10 @@ public class SmsSendJob extends SendJob {
@Override
public void onFailure() {
warn(TAG, "onFailure() messageId: " + messageId);
long threadId = SignalDatabase.sms().getThreadIdForMessage(messageId);
long threadId = SignalDatabase.messages().getThreadIdForMessage(messageId);
Recipient recipient = SignalDatabase.threads().getRecipientForThreadId(threadId);
SignalDatabase.sms().markAsSentFailed(messageId);
SignalDatabase.messages().markAsSentFailed(messageId);
if (threadId != -1 && recipient != null) {
ApplicationDependencies.getMessageNotifier().notifyMessageDeliveryFailed(context, recipient, ConversationId.forConversation(threadId));
@@ -92,12 +92,12 @@ public class SmsSentJob extends BaseJob {
}
private void handleDeliveredResult(long messageId, int result) {
SignalDatabase.sms().markSmsStatus(messageId, result);
SignalDatabase.messages().markSmsStatus(messageId, result);
}
private void handleSentResult(long messageId, int result) {
try {
MessageTable database = SignalDatabase.sms();
MessageTable database = SignalDatabase.messages();
SmsMessageRecord record = database.getSmsMessage(messageId);
switch (result) {
@@ -78,9 +78,9 @@ class StoryOnboardingDownloadJob private constructor(parameters: Parameters) : B
throw Exception("No release channel recipient.")
}
SignalDatabase.mms.getAllStoriesFor(releaseChannelRecipientId, -1).use { reader ->
SignalDatabase.messages.getAllStoriesFor(releaseChannelRecipientId, -1).use { reader ->
reader.forEach { messageRecord ->
SignalDatabase.mms.deleteMessage(messageRecord.id)
SignalDatabase.messages.deleteMessage(messageRecord.id)
}
}
@@ -144,7 +144,7 @@ class StoryOnboardingDownloadJob private constructor(parameters: Parameters) : B
if (insertResults.size != ONBOARDING_IMAGE_COUNT) {
Log.w(TAG, "Failed to insert some search results. Deleting the ones we added and trying again later.")
insertResults.forEach {
SignalDatabase.mms.deleteMessage(it.messageId)
SignalDatabase.messages.deleteMessage(it.messageId)
}
throw RetryLaterException()
@@ -30,8 +30,8 @@ class LongMessageRepository {
private final MessageTable smsDatabase;
LongMessageRepository() {
this.mmsDatabase = SignalDatabase.mms();
this.smsDatabase = SignalDatabase.sms();
this.mmsDatabase = SignalDatabase.messages();
this.smsDatabase = SignalDatabase.messages();
}
void getMessage(@NonNull Context context, long messageId, boolean isMms, @NonNull Callback<Optional<LongMessage>> callback) {
@@ -91,7 +91,7 @@ class MediaPreviewRepository {
fun getMessagePositionIntent(context: Context, messageId: Long): Single<Intent> {
return Single.fromCallable {
val stopwatch = Stopwatch("Message Position Intent")
val messageRecord: MessageRecord = SignalDatabase.mms.getMessageRecord(messageId)
val messageRecord: MessageRecord = SignalDatabase.messages.getMessageRecord(messageId)
stopwatch.split("get message record")
val threadId: Long = messageRecord.threadId
@@ -564,7 +564,7 @@ class MediaPreviewV2Fragment : LoggingFragment(R.layout.fragment_media_preview_v
fun canRemotelyDelete(attachment: DatabaseAttachment): Boolean {
val mmsId = attachment.mmsId
val attachmentCount = SignalDatabase.attachments.getAttachmentsForMessage(mmsId).size
return attachmentCount <= 1 && RemoteDeleteUtil.isValidSend(listOf(SignalDatabase.mms.getMessageRecord(mmsId)), System.currentTimeMillis())
return attachmentCount <= 1 && RemoteDeleteUtil.isValidSend(listOf(SignalDatabase.messages.getMessageRecord(mmsId)), System.currentTimeMillis())
}
private fun editMediaItem(currentItem: MediaTable.MediaRecord) {
@@ -13,7 +13,6 @@ import org.thoughtcrime.securesms.conversation.ConversationMessage.ConversationM
import org.thoughtcrime.securesms.database.DatabaseObserver;
import org.thoughtcrime.securesms.database.GroupTable;
import org.thoughtcrime.securesms.database.GroupReceiptTable;
import org.thoughtcrime.securesms.database.MmsSmsTable;
import org.thoughtcrime.securesms.database.NoSuchMessageException;
import org.thoughtcrime.securesms.database.SignalDatabase;
import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch;
@@ -57,8 +56,8 @@ public final class MessageDetailsRepository {
return Observable.<MessageDetails>create(emitter -> {
DatabaseObserver.MessageObserver messageObserver = mId -> {
try {
MessageRecord messageRecord = messageId.isMms() ? SignalDatabase.mms().getMessageRecord(messageId.getId())
: SignalDatabase.sms().getMessageRecord(messageId.getId());
MessageRecord messageRecord = messageId.isMms() ? SignalDatabase.messages().getMessageRecord(messageId.getId())
: SignalDatabase.messages().getMessageRecord(messageId.getId());
MessageDetails messageDetails = getRecipientDeliveryStatusesInternal(messageRecord);
@@ -34,7 +34,7 @@ final class MessageRecordLiveData extends LiveData<MessageRecord> {
@WorkerThread
private synchronized void retrieveMessageRecordActual() {
retrieve(messageId.isMms() ? SignalDatabase.mms() : SignalDatabase.sms());
retrieve(messageId.isMms() ? SignalDatabase.messages() : SignalDatabase.messages());
}
@WorkerThread
@@ -150,7 +150,7 @@ final class MessageRequestRepository {
ApplicationDependencies.getMessageNotifier().updateNotification(context);
MarkReadReceiver.process(context, messageIds);
List<MessageTable.MarkedMessageInfo> viewedInfos = SignalDatabase.mms().getViewedIncomingMessages(threadId);
List<MessageTable.MarkedMessageInfo> viewedInfos = SignalDatabase.messages().getViewedIncomingMessages(threadId);
SendViewedReceiptJob.enqueue(threadId, liveRecipient.getId(), viewedInfos);
@@ -468,8 +468,8 @@ public final class MessageContentProcessor {
TimeUnit.SECONDS.toMillis(message.getExpiresInSeconds()),
uuid);
Optional<InsertResult> insertResult = SignalDatabase.mms().insertSecureDecryptedMessageInbox(mediaMessage, -1);
smsMessageId.ifPresent(smsId -> SignalDatabase.sms().deleteMessage(smsId));
Optional<InsertResult> insertResult = SignalDatabase.messages().insertSecureDecryptedMessageInbox(mediaMessage, -1);
smsMessageId.ifPresent(smsId -> SignalDatabase.messages().deleteMessage(smsId));
if (insertResult.isPresent()) {
messageId = new MessageId(insertResult.get().getMessageId(), true);
ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(insertResult.get().getThreadId()));
@@ -607,7 +607,7 @@ public final class MessageContentProcessor {
log(String.valueOf(content.getTimestamp()), "handleCallOfferMessage...");
if (smsMessageId.isPresent()) {
MessageTable database = SignalDatabase.sms();
MessageTable database = SignalDatabase.messages();
database.markAsMissedCall(smsMessageId.get(), message.getType() == OfferMessage.Type.VIDEO_CALL);
} else {
RemotePeer remotePeer = new RemotePeer(senderRecipient.getId(), new CallId(message.getId()));
@@ -665,7 +665,7 @@ public final class MessageContentProcessor {
{
log(String.valueOf(content), "handleCallHangupMessage");
if (smsMessageId.isPresent()) {
SignalDatabase.sms().markAsMissedCall(smsMessageId.get(), false);
SignalDatabase.messages().markAsMissedCall(smsMessageId.get(), false);
} else {
RemotePeer remotePeer = new RemotePeer(senderRecipient.getId(), new CallId(message.getId()));
@@ -719,7 +719,7 @@ public final class MessageContentProcessor {
RecipientId groupRecipientId = SignalDatabase.recipients().getOrInsertFromPossiblyMigratedGroupId(groupId.get());
SignalDatabase.sms().insertOrUpdateGroupCall(groupRecipientId,
SignalDatabase.messages().insertOrUpdateGroupCall(groupRecipientId,
senderRecipient.getId(),
content.getServerReceivedTimestamp(),
message.getGroupCallUpdate().get().getEraId());
@@ -733,7 +733,7 @@ public final class MessageContentProcessor {
{
log(content.getTimestamp(), "End session message.");
MessageTable smsDatabase = SignalDatabase.sms();
MessageTable smsDatabase = SignalDatabase.messages();
IncomingTextMessage incomingTextMessage = new IncomingTextMessage(senderRecipient.getId(),
content.getSenderDevice(),
content.getTimestamp(),
@@ -773,7 +773,7 @@ public final class MessageContentProcessor {
{
log(envelopeTimestamp, "Synchronize end session message.");
MessageTable database = SignalDatabase.sms();
MessageTable database = SignalDatabase.messages();
Recipient recipient = getSyncMessageDestination(message);
OutgoingMessage outgoingEndSessionMessage = OutgoingMessage.endSessionMessage(recipient, message.getTimestamp());
@@ -843,7 +843,7 @@ public final class MessageContentProcessor {
throws StorageFailedException
{
try {
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
IncomingMediaMessage mediaMessage = new IncomingMediaMessage(senderRecipient.getId(),
content.getTimestamp(),
content.getServerReceivedTimestamp(),
@@ -871,7 +871,7 @@ public final class MessageContentProcessor {
Optional<InsertResult> insertResult = database.insertSecureDecryptedMessageInbox(mediaMessage, -1);
if (smsMessageId.isPresent()) {
SignalDatabase.sms().deleteMessage(smsMessageId.get());
SignalDatabase.messages().deleteMessage(smsMessageId.get());
}
if (insertResult.isPresent()) {
@@ -913,7 +913,7 @@ public final class MessageContentProcessor {
}
try {
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
IncomingMediaMessage mediaMessage = new IncomingMediaMessage(senderRecipient.getId(),
content.getTimestamp() - (sideEffect ? 1 : 0),
content.getServerReceivedTimestamp(),
@@ -944,7 +944,7 @@ public final class MessageContentProcessor {
SignalDatabase.recipients().setExpireMessages(threadRecipient.getId(), expiresInSeconds);
if (smsMessageId.isPresent()) {
SignalDatabase.sms().deleteMessage(smsMessageId.get());
SignalDatabase.messages().deleteMessage(smsMessageId.get());
}
if (insertResult.isPresent()) {
@@ -1025,7 +1025,7 @@ public final class MessageContentProcessor {
MessageRecord targetMessage = SignalDatabase.mmsSms().getMessageFor(delete.getTargetSentTimestamp(), senderRecipient.getId());
if (targetMessage != null && RemoteDeleteUtil.isValidReceive(targetMessage, senderRecipient, content.getServerReceivedTimestamp())) {
MessageTable db = targetMessage.isMms() ? SignalDatabase.mms() : SignalDatabase.sms();
MessageTable db = targetMessage.isMms() ? SignalDatabase.messages() : SignalDatabase.messages();
db.markAsRemoteDelete(targetMessage.getId());
if (MessageRecordUtil.isStory(targetMessage)) {
db.deleteRemotelyDeletedStory(targetMessage.getId());
@@ -1419,8 +1419,8 @@ public final class MessageContentProcessor {
Stories.enqueueAttachmentsFromStoryForDownloadSync(mediaMmsMessageRecord, false);
}
SignalDatabase.mms().setIncomingMessagesViewed(toMarkViewed);
SignalDatabase.mms().setOutgoingGiftsRevealed(toMarkViewed);
SignalDatabase.messages().setIncomingMessagesViewed(toMarkViewed);
SignalDatabase.messages().setOutgoingGiftsRevealed(toMarkViewed);
MessageNotifier messageNotifier = ApplicationDependencies.getMessageNotifier();
messageNotifier.setLastDesktopActivityTimestamp(envelopeTimestamp);
@@ -1472,7 +1472,7 @@ public final class MessageContentProcessor {
Optional<InsertResult> insertResult;
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
database.beginTransaction();
try {
@@ -1613,7 +1613,7 @@ public final class MessageContentProcessor {
SignalServiceDataMessage.StoryContext storyContext = message.getStoryContext().get();
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
database.beginTransaction();
try {
@@ -1704,7 +1704,7 @@ public final class MessageContentProcessor {
SignalServiceDataMessage.StoryContext storyContext = message.getStoryContext().get();
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
database.beginTransaction();
try {
@@ -1812,7 +1812,7 @@ public final class MessageContentProcessor {
Optional<InsertResult> insertResult;
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
byte[] token = message.getGiftBadge().get().getReceiptCredentialPresentation().serialize();
GiftBadge giftBadge = GiftBadge.newBuilder()
@@ -1875,7 +1875,7 @@ public final class MessageContentProcessor {
Optional<InsertResult> insertResult;
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
database.beginTransaction();
try {
@@ -1916,7 +1916,7 @@ public final class MessageContentProcessor {
if (insertResult.isPresent()) {
if (smsMessageId.isPresent()) {
SignalDatabase.sms().deleteMessage(smsMessageId.get());
SignalDatabase.messages().deleteMessage(smsMessageId.get());
}
database.setTransactionSuccessful();
@@ -1956,7 +1956,7 @@ public final class MessageContentProcessor {
{
log(message.getTimestamp(), "Synchronize sent expiration update.");
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
Recipient recipient = getSyncMessageDestination(message);
OutgoingMessage expirationUpdateMessage = OutgoingMessage.expirationUpdateMessage(recipient,
@@ -1985,7 +1985,7 @@ public final class MessageContentProcessor {
Optional<SignalServiceDataMessage.Reaction> reaction = message.getDataMessage().get().getReaction();
ParentStoryId parentStoryId;
SignalServiceDataMessage.StoryContext storyContext = message.getDataMessage().get().getStoryContext().get();
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
Recipient recipient = getSyncMessageDestination(message);
QuoteModel quoteModel = null;
long expiresInMillis = 0L;
@@ -2133,7 +2133,7 @@ public final class MessageContentProcessor {
@NonNull List<LinkPreview> linkPreviews)
throws MmsException
{
if (SignalDatabase.mms().isOutgoingStoryAlreadyInDatabase(recipient.getId(), sentAtTimestamp)) {
if (SignalDatabase.messages().isOutgoingStoryAlreadyInDatabase(recipient.getId(), sentAtTimestamp)) {
warn(sentAtTimestamp, "Already inserted this story.");
return;
}
@@ -2158,7 +2158,7 @@ public final class MessageContentProcessor {
null,
true);
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
long threadId = SignalDatabase.threads().getOrCreateThreadIdFor(recipient);
long messageId;
@@ -2217,7 +2217,7 @@ public final class MessageContentProcessor {
{
log(envelopeTimestamp, "Synchronize sent media message for " + message.getTimestamp());
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
Recipient recipients = getSyncMessageDestination(message);
Optional<QuoteModel> quote = getValidatedQuote(message.getDataMessage().get().getQuote());
Optional<Attachment> sticker = getStickerAttachment(message.getDataMessage().get().getSticker());
@@ -2369,7 +2369,7 @@ public final class MessageContentProcessor {
throws StorageFailedException
{
log(message.getTimestamp(), "Text message.");
MessageTable database = SignalDatabase.sms();
MessageTable database = SignalDatabase.messages();
String body = message.getBody().isPresent() ? message.getBody().get() : "";
handlePossibleExpirationUpdate(content, message, groupId, senderRecipient, threadRecipient, receivedTime);
@@ -2438,15 +2438,15 @@ public final class MessageContentProcessor {
Collections.emptyList(),
true);
messageId = SignalDatabase.mms().insertMessageOutbox(outgoingMessage, threadId, false, GroupReceiptTable.STATUS_UNKNOWN, null);
database = SignalDatabase.mms();
messageId = SignalDatabase.messages().insertMessageOutbox(outgoingMessage, threadId, false, GroupReceiptTable.STATUS_UNKNOWN, null);
database = SignalDatabase.messages();
updateGroupReceiptStatus(message, messageId, recipient.requireGroupId());
} else {
OutgoingMessage outgoingTextMessage = OutgoingMessage.text(recipient, body, expiresInMillis, message.getTimestamp());
messageId = SignalDatabase.sms().insertMessageOutbox(outgoingTextMessage, threadId, false, null);
database = SignalDatabase.sms();
messageId = SignalDatabase.messages().insertMessageOutbox(outgoingTextMessage, threadId, false, null);
database = SignalDatabase.messages();
database.markUnidentified(messageId, isUnidentified(message, recipient));
}
SignalDatabase.threads().update(threadId, true);
@@ -2472,7 +2472,7 @@ public final class MessageContentProcessor {
{
log(timestamp, "Invalid version message.");
MessageTable smsDatabase = SignalDatabase.sms();
MessageTable smsDatabase = SignalDatabase.messages();
if (!smsMessageId.isPresent()) {
Optional<InsertResult> insertResult = insertPlaceholder(sender, senderDevice, timestamp);
@@ -2491,7 +2491,7 @@ public final class MessageContentProcessor {
{
log(timestamp, "Corrupt message.");
MessageTable smsDatabase = SignalDatabase.sms();
MessageTable smsDatabase = SignalDatabase.messages();
if (!smsMessageId.isPresent()) {
Optional<InsertResult> insertResult = insertPlaceholder(sender, senderDevice, timestamp);
@@ -2513,7 +2513,7 @@ public final class MessageContentProcessor {
{
log(timestamp, "Unsupported data message.");
MessageTable smsDatabase = SignalDatabase.sms();
MessageTable smsDatabase = SignalDatabase.messages();
if (!smsMessageId.isPresent()) {
Optional<InsertResult> insertResult = insertPlaceholder(sender, senderDevice, timestamp, groupId);
@@ -2535,7 +2535,7 @@ public final class MessageContentProcessor {
{
log(timestamp, "Invalid message.");
MessageTable smsDatabase = SignalDatabase.sms();
MessageTable smsDatabase = SignalDatabase.messages();
if (!smsMessageId.isPresent()) {
Optional<InsertResult> insertResult = insertPlaceholder(sender.getIdentifier(), senderDevice, timestamp, groupId);
@@ -2554,7 +2554,7 @@ public final class MessageContentProcessor {
{
log(timestamp, "Legacy message.");
MessageTable smsDatabase = SignalDatabase.sms();
MessageTable smsDatabase = SignalDatabase.messages();
if (!smsMessageId.isPresent()) {
Optional<InsertResult> insertResult = insertPlaceholder(sender, senderDevice, timestamp);
@@ -2869,9 +2869,9 @@ public final class MessageContentProcessor {
MessageId relatedMessage = messageLogEntry.getRelatedMessages().get(0);
if (relatedMessage.isMms()) {
return SignalDatabase.mms().getMessageRecordOrNull(relatedMessage.getId());
return SignalDatabase.messages().getMessageRecordOrNull(relatedMessage.getId());
} else {
return SignalDatabase.sms().getMessageRecordOrNull(relatedMessage.getId());
return SignalDatabase.messages().getMessageRecordOrNull(relatedMessage.getId());
}
} else {
return SignalDatabase.mmsSms().getMessageFor(sentTimestamp, Recipient.self().getId());
@@ -3075,7 +3075,7 @@ public final class MessageContentProcessor {
}
private Optional<InsertResult> insertPlaceholder(@NonNull String sender, int senderDevice, long timestamp, Optional<GroupId> groupId) {
MessageTable database = SignalDatabase.sms();
MessageTable database = SignalDatabase.messages();
IncomingTextMessage textMessage = new IncomingTextMessage(Recipient.external(context, sender).getId(),
senderDevice, timestamp, -1, System.currentTimeMillis(), "",
groupId, 0, false, null);
@@ -185,7 +185,7 @@ public final class MessageDecryptionUtil {
switch (contentHint) {
case DEFAULT:
Log.w(TAG, "[" + envelope.getTimestamp() + "] Inserting an error right away because it's " + contentHint, true);
SignalDatabase.sms().insertBadDecryptMessage(sender.getId(), senderDevice, envelope.getTimestamp(), receivedTimestamp, threadId);
SignalDatabase.messages().insertBadDecryptMessage(sender.getId(), senderDevice, envelope.getTimestamp(), receivedTimestamp, threadId);
break;
case RESENDABLE:
Log.w(TAG, "[" + envelope.getTimestamp() + "] Inserting into pending retries store because it's " + contentHint, true);
@@ -245,7 +245,7 @@ public class LegacyMigrationJob extends MigrationJob {
private void schedulePendingIncomingParts(Context context) {
final AttachmentTable attachmentDb = SignalDatabase.attachments();
final MessageTable mmsDb = SignalDatabase.mms();
final MessageTable mmsDb = SignalDatabase.messages();
final List<DatabaseAttachment> pendingAttachments = SignalDatabase.attachments().getPendingAttachments();
Log.i(TAG, pendingAttachments.size() + " pending parts.");
@@ -1,6 +1,6 @@
package org.thoughtcrime.securesms.migrations
import org.thoughtcrime.securesms.database.SignalDatabase.Companion.mms
import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.database.SignalDatabase.Companion.recipients
import org.thoughtcrime.securesms.jobmanager.Data
import org.thoughtcrime.securesms.jobmanager.Job
@@ -26,7 +26,7 @@ internal class StoryReadStateMigrationJob(
override fun performMigration() {
if (!SignalStore.storyValues().hasUserOnboardingStoryReadBeenSet()) {
SignalStore.storyValues().userHasReadOnboardingStory = SignalStore.storyValues().userHasReadOnboardingStory
mms.markOnboardingStoryRead()
SignalDatabase.messages.markOnboardingStoryRead()
if (SignalStore.account().isRegistered) {
recipients.markNeedsSync(Recipient.self().id)
@@ -43,9 +43,9 @@ public class DeleteNotificationReceiver extends BroadcastReceiver {
SignalExecutors.BOUNDED.execute(() -> {
for (int i = 0; i < ids.length; i++) {
if (!mms[i]) {
SignalDatabase.sms().markAsNotified(ids[i]);
SignalDatabase.messages().markAsNotified(ids[i]);
} else {
SignalDatabase.mms().markAsNotified(ids[i]);
SignalDatabase.messages().markAsNotified(ids[i]);
}
}
finisher.finish();
@@ -113,11 +113,11 @@ public class MarkReadReceiver extends BroadcastReceiver {
@NonNull List<ExpirationInfo> mmsExpirationInfo)
{
if (smsExpirationInfo.size() > 0) {
SignalDatabase.sms().markExpireStarted(Stream.of(smsExpirationInfo).map(ExpirationInfo::getId).toList(), System.currentTimeMillis());
SignalDatabase.messages().markExpireStarted(Stream.of(smsExpirationInfo).map(ExpirationInfo::getId).toList(), System.currentTimeMillis());
}
if (mmsExpirationInfo.size() > 0) {
SignalDatabase.mms().markExpireStarted(Stream.of(mmsExpirationInfo).map(ExpirationInfo::getId).toList(), System.currentTimeMillis());
SignalDatabase.messages().markExpireStarted(Stream.of(mmsExpirationInfo).map(ExpirationInfo::getId).toList(), System.currentTimeMillis());
}
if (smsExpirationInfo.size() + mmsExpirationInfo.size() > 0) {
@@ -14,7 +14,6 @@ import me.leolin.shortcutbadger.ShortcutBadger
import org.signal.core.util.PendingIntentFlags
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.database.MessageTable
import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
import org.thoughtcrime.securesms.keyvalue.SignalStore
@@ -141,16 +140,14 @@ class DefaultMessageNotifier(context: Application) : MessageNotifier {
if (state.muteFilteredMessages.isNotEmpty()) {
Log.i(TAG, "Marking ${state.muteFilteredMessages.size} muted messages as notified to skip notification")
state.muteFilteredMessages.forEach { item ->
val messageTable: MessageTable = if (item.isMms) SignalDatabase.mms else SignalDatabase.sms
messageTable.markAsNotified(item.id)
SignalDatabase.messages.markAsNotified(item.id)
}
}
if (state.profileFilteredMessages.isNotEmpty()) {
Log.i(TAG, "Marking ${state.profileFilteredMessages.size} profile filtered messages as notified to skip notification")
state.profileFilteredMessages.forEach { item ->
val messageTable: MessageTable = if (item.isMms) SignalDatabase.mms else SignalDatabase.sms
messageTable.markAsNotified(item.id)
SignalDatabase.messages.markAsNotified(item.id)
}
}
@@ -158,8 +155,7 @@ class DefaultMessageNotifier(context: Application) : MessageNotifier {
Log.i(TAG, "Marking ${state.conversations.size} conversations as notified to skip notification")
state.conversations.forEach { conversation ->
conversation.notificationItems.forEach { item ->
val messageTable: MessageTable = if (item.isMms) SignalDatabase.mms else SignalDatabase.sms
messageTable.markAsNotified(item.id)
SignalDatabase.messages.markAsNotified(item.id)
}
}
return
@@ -172,8 +168,7 @@ class DefaultMessageNotifier(context: Application) : MessageNotifier {
.forEach { conversation ->
cleanedUpThreads += conversation.thread
conversation.notificationItems.forEach { item ->
val messageTable: MessageTable = if (item.isMms) SignalDatabase.mms else SignalDatabase.sms
messageTable.markAsNotified(item.id)
SignalDatabase.messages.markAsNotified(item.id)
}
}
if (cleanedUpThreads.isNotEmpty()) {
@@ -41,14 +41,14 @@ object NotificationStateProvider {
val parentRecord = conversationId.groupStoryId?.let {
try {
SignalDatabase.mms.getMessageRecord(it)
SignalDatabase.messages.getMessageRecord(it)
} catch (e: NoSuchMessageException) {
null
}
}
val hasSelfRepliedToGroupStory = conversationId.groupStoryId?.let {
SignalDatabase.mms.hasGroupReplyOrReactionInStory(it)
SignalDatabase.messages.hasGroupReplyOrReactionInStory(it)
}
messages += NotificationMessage(
@@ -96,7 +96,7 @@ public final class ReviewUtil {
if (threadId == null) {
return Collections.emptyList();
} else {
return SignalDatabase.sms().getProfileChangeDetailsRecords(threadId, System.currentTimeMillis() - TIMEOUT);
return SignalDatabase.messages().getProfileChangeDetailsRecords(threadId, System.currentTimeMillis() - TIMEOUT);
}
}
@@ -25,7 +25,7 @@ public final class RateLimitUtil {
*/
@WorkerThread
public static void retryAllRateLimitedMessages(@NonNull Context context) {
Set<Long> messageIds = SignalDatabase.mms().getAllRateLimitedMessageIds();
Set<Long> messageIds = SignalDatabase.messages().getAllRateLimitedMessageIds();
if (messageIds.isEmpty()) {
return;
@@ -33,7 +33,7 @@ public final class RateLimitUtil {
Log.i(TAG, "Retrying " + messageIds.size() + " message records.");
SignalDatabase.mms().clearRateLimitStatus(messageIds);
SignalDatabase.messages().clearRateLimitStatus(messageIds);
ApplicationDependencies.getJobManager().update((job, serializer) -> {
Data data = serializer.deserialize(job.getSerializedData());
@@ -69,6 +69,6 @@ object ReleaseChannel {
storyType = storyType
)
return SignalDatabase.mms.insertSecureDecryptedMessageInbox(message, threadId).orElse(null)
return SignalDatabase.messages.insertSecureDecryptedMessageInbox(message, threadId).orElse(null)
}
}
@@ -30,7 +30,7 @@ public class ViewOnceMessageManager extends TimedEventManager<ViewOnceExpiration
public ViewOnceMessageManager(@NonNull Application application) {
super(application, "RevealableMessageManager");
this.mmsDatabase = SignalDatabase.mms();
this.mmsDatabase = SignalDatabase.messages();
this.attachmentDatabase = SignalDatabase.attachments();
scheduleIfNecessary();
@@ -24,7 +24,7 @@ class ViewOnceMessageRepository {
private final MessageTable mmsDatabase;
ViewOnceMessageRepository(@NonNull Context context) {
this.mmsDatabase = SignalDatabase.mms();
this.mmsDatabase = SignalDatabase.messages();
}
void getMessage(long messageId, @NonNull Callback<Optional<MmsMessageRecord>> callback) {
@@ -74,7 +74,7 @@ public class SearchRepository {
this.threadTable = SignalDatabase.threads();
this.recipientTable = SignalDatabase.recipients();
this.mentionDatabase = SignalDatabase.mentions();
this.mmsDatabase = SignalDatabase.mms();
this.mmsDatabase = SignalDatabase.messages();
this.contactRepository = new ContactRepository(context, noteToSelfTitle);
this.searchExecutor = new LatestPrioritizedSerialExecutor(SignalExecutors.BOUNDED);
this.serialExecutor = new SerialExecutor(SignalExecutors.BOUNDED);
@@ -25,8 +25,8 @@ public class ExpiringMessageManager {
public ExpiringMessageManager(Context context) {
this.context = context.getApplicationContext();
this.smsDatabase = SignalDatabase.sms();
this.mmsDatabase = SignalDatabase.mms();
this.smsDatabase = SignalDatabase.messages();
this.mmsDatabase = SignalDatabase.messages();
executor.execute(new LoadTask());
executor.execute(new ProcessTask());
@@ -24,7 +24,7 @@ class ExpiringStoriesManager(
private val STORY_LIFESPAN = TimeUnit.HOURS.toMillis(24)
}
private val mmsDatabase = SignalDatabase.mms
private val mmsDatabase = SignalDatabase.messages
init {
scheduleIfNecessary()
@@ -33,7 +33,7 @@ public final class PendingRetryReceiptManager extends TimedEventManager<PendingR
super(application, "PendingRetryReceiptManager");
this.pendingCache = ApplicationDependencies.getPendingRetryReceiptCache();
this.messageDatabase = SignalDatabase.sms();
this.messageDatabase = SignalDatabase.messages();
scheduleIfNecessary();
}
@@ -130,7 +130,7 @@ public class IncomingCallActionProcessor extends DeviceAwareActionProcessor {
Log.i(TAG, "handleAcceptCall(): call_id: " + activePeer.getCallId());
SignalDatabase.sms().insertReceivedCall(activePeer.getId(), currentState.getCallSetupState(activePeer).isRemoteVideoOffer());
SignalDatabase.messages().insertReceivedCall(activePeer.getId(), currentState.getCallSetupState(activePeer).isRemoteVideoOffer());
currentState = currentState.builder()
.changeCallSetupState(activePeer.getCallId())
@@ -159,7 +159,7 @@ public class IncomingCallActionProcessor extends DeviceAwareActionProcessor {
try {
webRtcInteractor.rejectIncomingCall(activePeer.getId());
webRtcInteractor.getCallManager().hangup();
SignalDatabase.sms().insertMissedCall(activePeer.getId(), System.currentTimeMillis(), currentState.getCallSetupState(activePeer).isRemoteVideoOffer());
SignalDatabase.messages().insertMissedCall(activePeer.getId(), System.currentTimeMillis(), currentState.getCallSetupState(activePeer).isRemoteVideoOffer());
return terminate(currentState, activePeer);
} catch (CallException e) {
return callFailure(currentState, "hangup() failed: ", e);
@@ -83,7 +83,7 @@ public class OutgoingCallActionProcessor extends DeviceAwareActionProcessor {
}
RecipientUtil.setAndSendUniversalExpireTimerIfNecessary(context, Recipient.resolved(remotePeer.getId()), SignalDatabase.threads().getThreadIdIfExistsFor(remotePeer.getId()));
SignalDatabase.sms().insertOutgoingCall(remotePeer.getId(), isVideoCall);
SignalDatabase.messages().insertOutgoingCall(remotePeer.getId(), isVideoCall);
EglBaseWrapper.replaceHolder(EglBaseWrapper.OUTGOING_PLACEHOLDER, remotePeer.getCallId().longValue());
@@ -345,7 +345,7 @@ private void processStateless(@NonNull Function1<WebRtcEphemeralState, WebRtcEph
Long threadId = SignalDatabase.threads().getThreadIdFor(group.getId());
if (threadId != null) {
SignalDatabase.sms()
SignalDatabase.messages()
.updatePreviousGroupCall(threadId,
peekInfo.getEraId(),
peekInfo.getJoinedMembers(),
@@ -826,14 +826,14 @@ private void processStateless(@NonNull Function1<WebRtcEphemeralState, WebRtcEph
}
public void insertMissedCall(@NonNull RemotePeer remotePeer, boolean signal, long timestamp, boolean isVideoOffer) {
Pair<Long, Long> messageAndThreadId = SignalDatabase.sms().insertMissedCall(remotePeer.getId(), timestamp, isVideoOffer);
Pair<Long, Long> messageAndThreadId = SignalDatabase.messages().insertMissedCall(remotePeer.getId(), timestamp, isVideoOffer);
ApplicationDependencies.getMessageNotifier()
.updateNotification(context, ConversationId.forConversation(messageAndThreadId.second()), signal);
}
public void insertReceivedCall(@NonNull RemotePeer remotePeer, boolean signal, boolean isVideoOffer) {
Pair<Long, Long> messageAndThreadId = SignalDatabase.sms().insertReceivedCall(remotePeer.getId(), isVideoOffer);
Pair<Long, Long> messageAndThreadId = SignalDatabase.messages().insertReceivedCall(remotePeer.getId(), isVideoOffer);
ApplicationDependencies.getMessageNotifier()
.updateNotification(context, ConversationId.forConversation(messageAndThreadId.second()), signal);
@@ -879,7 +879,7 @@ private void processStateless(@NonNull Function1<WebRtcEphemeralState, WebRtcEph
}
public void updateGroupCallUpdateMessage(@NonNull RecipientId groupId, @Nullable String groupCallEraId, @NonNull Collection<UUID> joinedMembers, boolean isCallFull) {
SignalExecutors.BOUNDED.execute(() -> SignalDatabase.sms().insertOrUpdateGroupCall(groupId,
SignalExecutors.BOUNDED.execute(() -> SignalDatabase.messages().insertOrUpdateGroupCall(groupId,
Recipient.self().getId(),
System.currentTimeMillis(),
groupCallEraId,
@@ -113,7 +113,7 @@ public class MessageSender {
{
Log.i(TAG, "Sending story messages to " + messages.size() + " targets.");
ThreadTable threadTable = SignalDatabase.threads();
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
List<Long> messageIds = new ArrayList<>(messages.size());
List<Long> threads = new ArrayList<>(messages.size());
UploadDependencyGraph dependencyGraph;
@@ -228,7 +228,7 @@ public class MessageSender {
Log.i(TAG, "Sending media message to " + message.getRecipient().getId() + ", thread: " + threadId);
try {
ThreadTable threadTable = SignalDatabase.threads();
MessageTable database = SignalDatabase.mms();
MessageTable database = SignalDatabase.messages();
long allocatedThreadId = threadTable.getOrCreateValidThreadId(message.getRecipient(), threadId, message.getDistributionType());
Recipient recipient = message.getRecipient();
@@ -262,7 +262,7 @@ public class MessageSender {
try {
ThreadTable threadTable = SignalDatabase.threads();
MessageTable mmsDatabase = SignalDatabase.mms();
MessageTable mmsDatabase = SignalDatabase.messages();
AttachmentTable attachmentDatabase = SignalDatabase.attachments();
long allocatedThreadId;
@@ -306,7 +306,7 @@ public class MessageSender {
JobManager jobManager = ApplicationDependencies.getJobManager();
AttachmentTable attachmentDatabase = SignalDatabase.attachments();
MessageTable mmsDatabase = SignalDatabase.mms();
MessageTable mmsDatabase = SignalDatabase.messages();
ThreadTable threadTable = SignalDatabase.threads();
List<AttachmentId> preUploadAttachmentIds = Stream.of(preUploadResults).map(PreUploadResult::getAttachmentId).toList();
List<String> preUploadJobIds = Stream.of(preUploadResults).map(PreUploadResult::getJobIds).flatMap(Stream::of).toList();
@@ -467,7 +467,7 @@ public class MessageSender {
}
public static void sendRemoteDelete(long messageId, boolean isMms) {
MessageTable db = isMms ? SignalDatabase.mms() : SignalDatabase.sms();
MessageTable db = isMms ? SignalDatabase.messages() : SignalDatabase.messages();
db.markAsRemoteDelete(messageId);
db.markAsSending(messageId);
@@ -623,7 +623,7 @@ public class MessageSender {
private static void sendLocalMediaSelf(Context context, long messageId) {
try {
ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager();
MessageTable mmsDatabase = SignalDatabase.mms();
MessageTable mmsDatabase = SignalDatabase.messages();
MmsSmsTable mmsSmsDatabase = SignalDatabase.mmsSms();
OutgoingMessage message = mmsDatabase.getOutgoingMessage(messageId);
SyncMessageId syncId = new SyncMessageId(Recipient.self().getId(), message.getSentTimeMillis());
@@ -674,7 +674,7 @@ public class MessageSender {
private static void sendLocalTextSelf(Context context, long messageId) {
try {
ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager();
MessageTable smsDatabase = SignalDatabase.sms();
MessageTable smsDatabase = SignalDatabase.messages();
MmsSmsTable mmsSmsDatabase = SignalDatabase.mmsSms();
SmsMessageRecord message = smsDatabase.getSmsMessage(messageId);
SyncMessageId syncId = new SyncMessageId(Recipient.self().getId(), message.getDateSent());
@@ -116,7 +116,7 @@ object Stories {
}
Log.d(TAG, "Enqueuing downloads for up to $limit stories for $recipientId (force: $force)")
SignalDatabase.mms.getUnreadStories(recipientId, limit).use { reader ->
SignalDatabase.messages.getUnreadStories(recipientId, limit).use { reader ->
reader.forEach {
enqueueAttachmentsFromStoryForDownloadSync(it as MmsMessageRecord, false)
}
@@ -39,7 +39,7 @@ class StoriesLandingRepository(context: Context) {
val myStoriesId = SignalDatabase.recipients.getOrInsertFromDistributionListId(DistributionListId.MY_STORY)
val myStories = Recipient.resolved(myStoriesId)
val stories = SignalDatabase.mms.getOrderedStoryRecipientsAndIds(false)
val stories = SignalDatabase.messages.getOrderedStoryRecipientsAndIds(false)
val mapping: MutableMap<Recipient, List<StoryResult>> = mutableMapOf()
stories.forEach {
@@ -77,14 +77,14 @@ class StoriesLandingRepository(context: Context) {
.reversed()
.take(if (recipient.isMyStory) 2 else 1)
.map {
SignalDatabase.mms.getMessageRecord(it.messageId)
SignalDatabase.messages.getMessageRecord(it.messageId)
}
var sendingCount: Long = 0
var failureCount: Long = 0
if (recipient.isMyStory) {
SignalDatabase.mms.getMessages(results.map { it.messageId }).use { reader ->
SignalDatabase.messages.getMessages(results.map { it.messageId }).use { reader ->
var messageRecord: MessageRecord? = reader.getNext()
while (messageRecord != null) {
if (messageRecord.isOutgoing && (messageRecord.isPending || messageRecord.isMediaPending)) {
@@ -118,8 +118,8 @@ class StoriesLandingRepository(context: Context) {
val itemData = StoriesLandingItemData(
storyRecipient = sender,
storyViewState = StoryViewState.NONE,
hasReplies = messageRecords.any { SignalDatabase.mms.getNumberOfStoryReplies(it.id) > 0 },
hasRepliesFromSelf = messageRecords.any { SignalDatabase.mms.hasSelfReplyInStory(it.id) },
hasReplies = messageRecords.any { SignalDatabase.messages.getNumberOfStoryReplies(it.id) > 0 },
hasRepliesFromSelf = messageRecords.any { SignalDatabase.messages.hasSelfReplyInStory(it.id) },
isHidden = sender.shouldHideStory(),
primaryStory = ConversationMessage.ConversationMessageFactory.createWithUnresolvedData(context, messageRecords[primaryIndex]),
secondaryStory = if (sender.isMyStory) messageRecords.drop(1).firstOrNull()?.let {
@@ -170,7 +170,7 @@ class StoriesLandingRepository(context: Context) {
*/
fun markStoriesRead() {
SignalExecutors.BOUNDED_IO.execute {
val messageInfos: List<MessageTable.MarkedMessageInfo> = SignalDatabase.mms.markAllIncomingStoriesRead()
val messageInfos: List<MessageTable.MarkedMessageInfo> = SignalDatabase.messages.markAllIncomingStoriesRead()
val releaseThread: Long? = SignalStore.releaseChannelValues().releaseChannelRecipientId?.let { SignalDatabase.threads.getThreadIdIfExistsFor(it) }
MultiDeviceReadUpdateJob.enqueue(messageInfos.filter { it.threadId == releaseThread }.map { it.syncMessageId })
@@ -26,7 +26,7 @@ class MyStoriesRepository(context: Context) {
return Observable.create { emitter ->
fun refresh() {
val storiesMap = mutableMapOf<Recipient, List<MessageRecord>>()
SignalDatabase.mms.getAllOutgoingStories(true, -1).use {
SignalDatabase.messages.getAllOutgoingStories(true, -1).use {
for (messageRecord in it) {
val currentList = storiesMap[messageRecord.recipient] ?: emptyList()
storiesMap[messageRecord.recipient] = (currentList + messageRecord)
@@ -30,7 +30,7 @@ class PrivateStorySettingsRepository {
Stories.onStorySettingsChanged(distributionListId)
val recipientId = SignalDatabase.recipients.getOrInsertFromDistributionListId(distributionListId)
SignalDatabase.mms.getAllStoriesFor(recipientId, -1).use { reader ->
SignalDatabase.messages.getAllStoriesFor(recipientId, -1).use { reader ->
for (record in reader) {
MessageSender.sendRemoteDelete(record.id, record.isMms)
}
@@ -29,7 +29,7 @@ class StoriesPrivacySettingsRepository {
Stories.onStorySettingsChanged(Recipient.self().id)
ApplicationDependencies.resetAllNetworkConnections()
SignalDatabase.mms.getAllOutgoingStories(false, -1).use { reader ->
SignalDatabase.messages.getAllOutgoingStories(false, -1).use { reader ->
reader.map { record -> record.id }
}.forEach { messageId ->
MessageSender.sendRemoteDelete(messageId, true)
@@ -45,7 +45,7 @@ class StoriesPrivacySettingsRepository {
fun userHasOutgoingStories(): Single<Boolean> {
return Single.fromCallable {
SignalDatabase.mms.getAllOutgoingStories(false, -1).use {
SignalDatabase.messages.getAllOutgoingStories(false, -1).use {
it.iterator().hasNext()
}
}.subscribeOn(Schedulers.io())
@@ -34,7 +34,7 @@ class ConversationListTabRepository {
fun getNumberOfUnseenStories(): Observable<Long> {
return Observable.create<Long> { emitter ->
fun refresh() {
emitter.onNext(SignalDatabase.mms.unreadStoryThreadRecipientIds.map { Recipient.resolved(it) }.filterNot { it.shouldHideStory() }.size.toLong())
emitter.onNext(SignalDatabase.messages.unreadStoryThreadRecipientIds.map { Recipient.resolved(it) }.filterNot { it.shouldHideStory() }.size.toLong())
}
val listener = DatabaseObserver.Observer {
@@ -17,19 +17,19 @@ open class StoryViewerRepository {
fun getFirstStory(recipientId: RecipientId, storyId: Long): Single<MmsMessageRecord> {
return if (storyId > 0) {
Single.fromCallable {
SignalDatabase.mms.getMessageRecord(storyId) as MmsMessageRecord
SignalDatabase.messages.getMessageRecord(storyId) as MmsMessageRecord
}
} else {
Single.fromCallable {
val recipient = Recipient.resolved(recipientId)
val reader: MessageTable.Reader = if (recipient.isMyStory || recipient.isSelf) {
SignalDatabase.mms.getAllOutgoingStories(false, 1)
SignalDatabase.messages.getAllOutgoingStories(false, 1)
} else {
val unread = SignalDatabase.mms.getUnreadStories(recipientId, 1)
val unread = SignalDatabase.messages.getUnreadStories(recipientId, 1)
if (unread.iterator().hasNext()) {
unread
} else {
SignalDatabase.mms.getAllStoriesFor(recipientId, 1)
SignalDatabase.messages.getAllStoriesFor(recipientId, 1)
}
}
reader.use { it.iterator().next() } as MmsMessageRecord
@@ -42,7 +42,7 @@ open class StoryViewerRepository {
val myStoriesId = SignalDatabase.recipients.getOrInsertFromDistributionListId(DistributionListId.MY_STORY)
val myStories = Recipient.resolved(myStoriesId)
val releaseChannelId = SignalStore.releaseChannelValues().releaseChannelRecipientId
val recipientIds = SignalDatabase.mms.getOrderedStoryRecipientsAndIds(isOutgoingOnly).groupBy {
val recipientIds = SignalDatabase.messages.getOrderedStoryRecipientsAndIds(isOutgoingOnly).groupBy {
val recipient = Recipient.resolved(it.recipientId)
if (recipient.isDistributionList) {
myStories
@@ -46,11 +46,11 @@ open class StoryViewerPageRepository(context: Context, private val storyViewStat
fun refresh() {
val stories = if (recipient.isMyStory) {
SignalDatabase.mms.getAllOutgoingStories(false, 100)
SignalDatabase.messages.getAllOutgoingStories(false, 100)
} else if (isOutgoingOnly) {
SignalDatabase.mms.getOutgoingStoriesTo(recipientId)
SignalDatabase.messages.getOutgoingStoriesTo(recipientId)
} else {
SignalDatabase.mms.getAllStoriesFor(recipientId, 100)
SignalDatabase.messages.getAllStoriesFor(recipientId, 100)
}
val results = stories.filterNot {
@@ -83,7 +83,7 @@ open class StoryViewerPageRepository(context: Context, private val storyViewStat
group = if (recipient.isGroup) recipient else null,
distributionList = if (record.recipient.isDistributionList) record.recipient else null,
viewCount = record.viewedReceiptCount,
replyCount = SignalDatabase.mms.getNumberOfStoryReplies(record.id),
replyCount = SignalDatabase.messages.getNumberOfStoryReplies(record.id),
dateInMilliseconds = record.dateSent,
content = getContent(record as MmsMessageRecord),
conversationMessage = ConversationMessage.ConversationMessageFactory.createWithUnresolvedData(context, record),
@@ -101,7 +101,7 @@ open class StoryViewerPageRepository(context: Context, private val storyViewStat
val messageUpdateObserver = DatabaseObserver.MessageObserver {
if (it.mms && it.id == recordId) {
try {
val messageRecord = SignalDatabase.mms.getMessageRecord(recordId)
val messageRecord = SignalDatabase.messages.getMessageRecord(recordId)
if (messageRecord.isRemoteDelete) {
emitter.onComplete()
} else {
@@ -115,7 +115,7 @@ open class StoryViewerPageRepository(context: Context, private val storyViewStat
val conversationObserver = DatabaseObserver.Observer {
try {
refresh(SignalDatabase.mms.getMessageRecord(recordId))
refresh(SignalDatabase.messages.getMessageRecord(recordId))
} catch (e: NoSuchMessageException) {
Log.w(TAG, "Message deleted during content refresh.", e)
}
@@ -125,7 +125,7 @@ open class StoryViewerPageRepository(context: Context, private val storyViewStat
ApplicationDependencies.getDatabaseObserver().registerMessageUpdateObserver(messageUpdateObserver)
val messageInsertObserver = DatabaseObserver.MessageObserver {
refresh(SignalDatabase.mms.getMessageRecord(recordId))
refresh(SignalDatabase.messages.getMessageRecord(recordId))
}
if (recipient.isGroup) {
@@ -172,7 +172,7 @@ open class StoryViewerPageRepository(context: Context, private val storyViewStat
fun markViewed(storyPost: StoryPost) {
if (!storyPost.conversationMessage.messageRecord.isOutgoing) {
SignalExecutors.BOUNDED.execute {
val markedMessageInfo = SignalDatabase.mms.setIncomingMessageViewed(storyPost.id)
val markedMessageInfo = SignalDatabase.messages.setIncomingMessageViewed(storyPost.id)
if (markedMessageInfo != null) {
ApplicationDependencies.getDatabaseObserver().notifyConversationListListeners()

Some files were not shown because too many files have changed in this diff Show More