mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 17:29:32 +01:00
Introduce SignalDatabase as the main database entrypoint.
This commit is contained in:
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package org.thoughtcrime.securesms.sms;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
@@ -35,12 +34,12 @@ import org.thoughtcrime.securesms.attachments.DatabaseAttachment;
|
||||
import org.thoughtcrime.securesms.contacts.sync.DirectoryHelper;
|
||||
import org.thoughtcrime.securesms.contactshare.Contact;
|
||||
import org.thoughtcrime.securesms.database.AttachmentDatabase;
|
||||
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
||||
import org.thoughtcrime.securesms.database.MessageDatabase;
|
||||
import org.thoughtcrime.securesms.database.MessageDatabase.SyncMessageId;
|
||||
import org.thoughtcrime.securesms.database.MmsSmsDatabase;
|
||||
import org.thoughtcrime.securesms.database.NoSuchMessageException;
|
||||
import org.thoughtcrime.securesms.database.RecipientDatabase;
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase;
|
||||
import org.thoughtcrime.securesms.database.SmsDatabase;
|
||||
import org.thoughtcrime.securesms.database.ThreadDatabase;
|
||||
import org.thoughtcrime.securesms.database.model.MessageId;
|
||||
@@ -63,7 +62,6 @@ import org.thoughtcrime.securesms.jobs.ReactionSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.RemoteDeleteSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.ResumableUploadSpecJob;
|
||||
import org.thoughtcrime.securesms.jobs.SmsSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.ThreadUpdateJob;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.linkpreview.LinkPreview;
|
||||
import org.thoughtcrime.securesms.mms.MmsException;
|
||||
@@ -108,11 +106,11 @@ public class MessageSender {
|
||||
final SmsDatabase.InsertListener insertListener)
|
||||
{
|
||||
Log.i(TAG, "Sending text message to " + message.getRecipient().getId() + ", thread: " + threadId);
|
||||
MessageDatabase database = DatabaseFactory.getSmsDatabase(context);
|
||||
MessageDatabase database = SignalDatabase.sms();
|
||||
Recipient recipient = message.getRecipient();
|
||||
boolean keyExchange = message.isKeyExchange();
|
||||
|
||||
long allocatedThreadId = DatabaseFactory.getThreadDatabase(context).getOrCreateValidThreadId(recipient, threadId);
|
||||
long allocatedThreadId = SignalDatabase.threads().getOrCreateValidThreadId(recipient, threadId);
|
||||
long messageId = database.insertMessageOutbox(allocatedThreadId,
|
||||
applyUniversalExpireTimerIfNecessary(context, recipient, message, allocatedThreadId),
|
||||
forceSms,
|
||||
@@ -123,7 +121,7 @@ public class MessageSender {
|
||||
|
||||
sendTextMessage(context, recipient, forceSms, keyExchange, messageId);
|
||||
onMessageSent();
|
||||
DatabaseFactory.getThreadDatabase(context).update(threadId, true);
|
||||
SignalDatabase.threads().update(threadId, true);
|
||||
|
||||
return allocatedThreadId;
|
||||
}
|
||||
@@ -137,8 +135,8 @@ public class MessageSender {
|
||||
{
|
||||
Log.i(TAG, "Sending media message to " + message.getRecipient().getId() + ", thread: " + threadId);
|
||||
try {
|
||||
ThreadDatabase threadDatabase = DatabaseFactory.getThreadDatabase(context);
|
||||
MessageDatabase database = DatabaseFactory.getMmsDatabase(context);
|
||||
ThreadDatabase threadDatabase = SignalDatabase.threads();
|
||||
MessageDatabase database = SignalDatabase.mms();
|
||||
|
||||
long allocatedThreadId = threadDatabase.getOrCreateValidThreadId(message.getRecipient(), threadId, message.getDistributionType());
|
||||
Recipient recipient = message.getRecipient();
|
||||
@@ -171,9 +169,9 @@ public class MessageSender {
|
||||
Preconditions.checkArgument(message.getAttachments().isEmpty(), "If the media is pre-uploaded, there should be no attachments on the message.");
|
||||
|
||||
try {
|
||||
ThreadDatabase threadDatabase = DatabaseFactory.getThreadDatabase(context);
|
||||
MessageDatabase mmsDatabase = DatabaseFactory.getMmsDatabase(context);
|
||||
AttachmentDatabase attachmentDatabase = DatabaseFactory.getAttachmentDatabase(context);
|
||||
ThreadDatabase threadDatabase = SignalDatabase.threads();
|
||||
MessageDatabase mmsDatabase = SignalDatabase.mms();
|
||||
AttachmentDatabase attachmentDatabase = SignalDatabase.attachments();
|
||||
|
||||
long allocatedThreadId;
|
||||
|
||||
@@ -211,9 +209,9 @@ public class MessageSender {
|
||||
Preconditions.checkArgument(Stream.of(messages).allMatch(m -> m.getAttachments().isEmpty()), "Messages can't have attachments! They should be pre-uploaded.");
|
||||
|
||||
JobManager jobManager = ApplicationDependencies.getJobManager();
|
||||
AttachmentDatabase attachmentDatabase = DatabaseFactory.getAttachmentDatabase(context);
|
||||
MessageDatabase mmsDatabase = DatabaseFactory.getMmsDatabase(context);
|
||||
ThreadDatabase threadDatabase = DatabaseFactory.getThreadDatabase(context);
|
||||
AttachmentDatabase attachmentDatabase = SignalDatabase.attachments();
|
||||
MessageDatabase mmsDatabase = SignalDatabase.mms();
|
||||
ThreadDatabase threadDatabase = 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();
|
||||
List<Long> messageIds = new ArrayList<>(messages.size());
|
||||
@@ -301,7 +299,7 @@ public class MessageSender {
|
||||
Log.i(TAG, "Pre-uploading attachment for " + (recipient != null ? recipient.getId() : "null"));
|
||||
|
||||
try {
|
||||
AttachmentDatabase attachmentDatabase = DatabaseFactory.getAttachmentDatabase(context);
|
||||
AttachmentDatabase attachmentDatabase = SignalDatabase.attachments();
|
||||
DatabaseAttachment databaseAttachment = attachmentDatabase.insertAttachmentForPreUpload(attachment);
|
||||
|
||||
Job compressionJob = AttachmentCompressionJob.fromAttachment(databaseAttachment, false, -1);
|
||||
@@ -323,7 +321,7 @@ public class MessageSender {
|
||||
|
||||
public static void sendNewReaction(@NonNull Context context, @NonNull MessageId messageId, @NonNull String emoji) {
|
||||
ReactionRecord reaction = new ReactionRecord(emoji, Recipient.self().getId(), System.currentTimeMillis(), System.currentTimeMillis());
|
||||
DatabaseFactory.getReactionDatabase(context).addReaction(messageId, reaction);
|
||||
SignalDatabase.reactions().addReaction(messageId, reaction);
|
||||
|
||||
try {
|
||||
ApplicationDependencies.getJobManager().add(ReactionSendJob.create(context, messageId, reaction, false));
|
||||
@@ -334,7 +332,7 @@ public class MessageSender {
|
||||
}
|
||||
|
||||
public static void sendReactionRemoval(@NonNull Context context, @NonNull MessageId messageId, @NonNull ReactionRecord reaction) {
|
||||
DatabaseFactory.getReactionDatabase(context).deleteReaction(messageId, reaction.getAuthor());
|
||||
SignalDatabase.reactions().deleteReaction(messageId, reaction.getAuthor());
|
||||
|
||||
try {
|
||||
ApplicationDependencies.getJobManager().add(ReactionSendJob.create(context, messageId, reaction, true));
|
||||
@@ -345,7 +343,7 @@ public class MessageSender {
|
||||
}
|
||||
|
||||
public static void sendRemoteDelete(@NonNull Context context, long messageId, boolean isMms) {
|
||||
MessageDatabase db = isMms ? DatabaseFactory.getMmsDatabase(context) : DatabaseFactory.getSmsDatabase(context);
|
||||
MessageDatabase db = isMms ? SignalDatabase.mms() : SignalDatabase.sms();
|
||||
db.markAsRemoteDelete(messageId);
|
||||
db.markAsSending(messageId);
|
||||
|
||||
@@ -513,8 +511,8 @@ public class MessageSender {
|
||||
private static void sendLocalMediaSelf(Context context, long messageId) {
|
||||
try {
|
||||
ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager();
|
||||
MessageDatabase mmsDatabase = DatabaseFactory.getMmsDatabase(context);
|
||||
MmsSmsDatabase mmsSmsDatabase = DatabaseFactory.getMmsSmsDatabase(context);
|
||||
MessageDatabase mmsDatabase = SignalDatabase.mms();
|
||||
MmsSmsDatabase mmsSmsDatabase = SignalDatabase.mmsSms();
|
||||
OutgoingMediaMessage message = mmsDatabase.getOutgoingMessage(messageId);
|
||||
SyncMessageId syncId = new SyncMessageId(Recipient.self().getId(), message.getSentTimeMillis());
|
||||
List<Attachment> attachments = new LinkedList<>();
|
||||
@@ -564,8 +562,8 @@ public class MessageSender {
|
||||
private static void sendLocalTextSelf(Context context, long messageId) {
|
||||
try {
|
||||
ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager();
|
||||
MessageDatabase smsDatabase = DatabaseFactory.getSmsDatabase(context);
|
||||
MmsSmsDatabase mmsSmsDatabase = DatabaseFactory.getMmsSmsDatabase(context);
|
||||
MessageDatabase smsDatabase = SignalDatabase.sms();
|
||||
MmsSmsDatabase mmsSmsDatabase = SignalDatabase.mmsSms();
|
||||
SmsMessageRecord message = smsDatabase.getSmsMessage(messageId);
|
||||
SyncMessageId syncId = new SyncMessageId(Recipient.self().getId(), message.getDateSent());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user