Have DatabaseFactory.getSmsDatabase() return MessageDatabase.

Slowly moving towards a single interface.
This commit is contained in:
Greyson Parrelli
2020-08-20 16:50:14 -04:00
committed by Alex Hart
parent 2cf9eb69eb
commit 190ca9eddd
50 changed files with 560 additions and 314 deletions

View File

@@ -77,9 +77,10 @@ import org.thoughtcrime.securesms.conversation.ConversationAdapter.ItemClickList
import org.thoughtcrime.securesms.conversation.ConversationAdapter.StickyHeaderViewHolder;
import org.thoughtcrime.securesms.conversation.ConversationMessage.ConversationMessageFactory;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.MessagingDatabase;
import org.thoughtcrime.securesms.database.MmsDatabase;
import org.thoughtcrime.securesms.database.MessageDatabase;
import org.thoughtcrime.securesms.database.RecipientDatabase;
import org.thoughtcrime.securesms.database.SmsDatabase;
import org.thoughtcrime.securesms.database.model.MediaMmsMessageRecord;
import org.thoughtcrime.securesms.database.model.MessageRecord;
import org.thoughtcrime.securesms.database.model.MmsMessageRecord;
@@ -686,7 +687,7 @@ public class ConversationFragment extends LoggingFragment {
boolean threadDeleted;
if (messageRecord.isMms()) {
threadDeleted = DatabaseFactory.getMmsDatabase(getActivity()).delete(messageRecord.getId());
threadDeleted = DatabaseFactory.getMmsDatabase(getActivity()).deleteMessage(messageRecord.getId());
} else {
threadDeleted = DatabaseFactory.getSmsDatabase(getActivity()).deleteMessage(messageRecord.getId());
}
@@ -727,7 +728,7 @@ public class ConversationFragment extends LoggingFragment {
boolean threadDeleted;
if (messageRecord.isMms()) {
threadDeleted = DatabaseFactory.getMmsDatabase(context).delete(messageRecord.getId());
threadDeleted = DatabaseFactory.getMmsDatabase(context).deleteMessage(messageRecord.getId());
} else {
threadDeleted = DatabaseFactory.getSmsDatabase(context).deleteMessage(messageRecord.getId());
}
@@ -917,7 +918,7 @@ public class ConversationFragment extends LoggingFragment {
}
public long stageOutgoingMessage(OutgoingTextMessage message) {
MessageRecord messageRecord = DatabaseFactory.getSmsDatabase(getContext()).readerFor(message, threadId).getCurrent();
MessageRecord messageRecord = SmsDatabase.readerFor(message, threadId).getCurrent();
if (getListAdapter() != null) {
clearHeaderIfNotTyping(getListAdapter());
@@ -1084,7 +1085,7 @@ public class ConversationFragment extends LoggingFragment {
return mmsDatabase.getOldestUnreadMentionDetails(threadId);
}, (pair) -> {
if (pair != null) {
jumpToMessage(pair.first, pair.second, () -> {});
jumpToMessage(pair.first(), pair.second(), () -> {});
}
});
}
@@ -1309,7 +1310,7 @@ public class ConversationFragment extends LoggingFragment {
.getViewOnceMessageManager()
.scheduleIfNecessary();
ApplicationDependencies.getJobManager().add(new MultiDeviceViewOnceOpenJob(new MessagingDatabase.SyncMessageId(messageRecord.getIndividualRecipient().getId(), messageRecord.getDateSent())));
ApplicationDependencies.getJobManager().add(new MultiDeviceViewOnceOpenJob(new MessageDatabase.SyncMessageId(messageRecord.getIndividualRecipient().getId(), messageRecord.getDateSent())));
return tempUri;
} catch (IOException e) {

View File

@@ -78,6 +78,7 @@ import org.thoughtcrime.securesms.components.mention.MentionAnnotation;
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.MmsDatabase;
import org.thoughtcrime.securesms.database.SmsDatabase;
import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch;
@@ -1522,21 +1523,18 @@ public class ConversationItem extends LinearLayout implements BindableConversati
if (message > -1) builder.setMessage(message);
builder.setPositiveButton(R.string.yes, (dialogInterface, i) -> {
if (messageRecord.isMms()) {
MmsDatabase database = DatabaseFactory.getMmsDatabase(context);
database.markAsInsecure(messageRecord.getId());
database.markAsOutbox(messageRecord.getId());
database.markAsForcedSms(messageRecord.getId());
MessageDatabase db = messageRecord.isMms() ? DatabaseFactory.getMmsDatabase(context)
: DatabaseFactory.getSmsDatabase(context);
db.markAsInsecure(messageRecord.getId());
db.markAsOutbox(messageRecord.getId());
db.markAsForcedSms(messageRecord.getId());
if (messageRecord.isMms()) {
MmsSendJob.enqueue(context,
ApplicationDependencies.getJobManager(),
messageRecord.getId());
} else {
SmsDatabase database = DatabaseFactory.getSmsDatabase(context);
database.markAsInsecure(messageRecord.getId());
database.markAsOutbox(messageRecord.getId());
database.markAsForcedSms(messageRecord.getId());
ApplicationDependencies.getJobManager().add(new SmsSendJob(messageRecord.getId(),
messageRecord.getIndividualRecipient()));
}

View File

@@ -5,7 +5,7 @@ import android.content.Context;
import androidx.annotation.NonNull;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.MessagingDatabase;
import org.thoughtcrime.securesms.database.MessageDatabase;
import org.thoughtcrime.securesms.database.ThreadDatabase;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.logging.Log;
@@ -42,8 +42,8 @@ class MarkReadHelper {
debouncer.publish(() -> {
EXECUTOR.execute(() -> {
ThreadDatabase threadDatabase = DatabaseFactory.getThreadDatabase(context);
List<MessagingDatabase.MarkedMessageInfo> infos = threadDatabase.setReadSince(threadId, false, timestamp);
ThreadDatabase threadDatabase = DatabaseFactory.getThreadDatabase(context);
List<MessageDatabase.MarkedMessageInfo> infos = threadDatabase.setReadSince(threadId, false, timestamp);
Log.d(TAG, "Marking " + infos.size() + " messages as read.");

View File

@@ -11,9 +11,11 @@ import androidx.lifecycle.MutableLiveData;
import com.annimon.stream.Stream;
import org.thoughtcrime.securesms.crypto.storage.TextSecureIdentityKeyStore;
import org.thoughtcrime.securesms.database.Database;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.IdentityDatabase;
import org.thoughtcrime.securesms.database.IdentityDatabase.IdentityRecord;
import org.thoughtcrime.securesms.database.MessageDatabase;
import org.thoughtcrime.securesms.database.MmsDatabase;
import org.thoughtcrime.securesms.database.MmsSmsDatabase;
import org.thoughtcrime.securesms.database.NoSuchMessageException;
@@ -133,8 +135,8 @@ final class SafetyNumberChangeRepository {
@WorkerThread
private void processOutgoingMessageRecord(@NonNull List<ChangedRecipient> changedRecipients, @NonNull MessageRecord messageRecord) {
SmsDatabase smsDatabase = DatabaseFactory.getSmsDatabase(context);
MmsDatabase mmsDatabase = DatabaseFactory.getMmsDatabase(context);
MessageDatabase smsDatabase = DatabaseFactory.getSmsDatabase(context);
MessageDatabase mmsDatabase = DatabaseFactory.getMmsDatabase(context);
for (ChangedRecipient changedRecipient : changedRecipients) {
RecipientId id = changedRecipient.getRecipient().getId();