From d83ef56ab1829b0da5ceaafe52a620f54cbb9f4b Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Sun, 18 Dec 2022 12:01:13 -0500 Subject: [PATCH] Remove SmsMessageRecord. --- .../conversation/ConversationDataSource.java | 5 - .../securesms/database/MessageTable.java | 138 +----------------- .../database/model/SmsMessageRecord.java | 117 --------------- .../exporter/SignalSmsExportReader.kt | 32 +--- .../securesms/jobs/SmsSendJob.java | 8 +- .../securesms/jobs/SmsSentJob.java | 6 +- .../longmessage/LongMessageRepository.java | 34 +---- .../longmessage/LongMessageViewModel.java | 4 +- .../service/ExpiringMessageManager.java | 8 - .../securesms/sms/MessageSender.java | 24 --- 10 files changed, 17 insertions(+), 359 deletions(-) delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/database/model/SmsMessageRecord.java diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationDataSource.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationDataSource.java index 83f7e9e750..5f132e1d30 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationDataSource.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationDataSource.java @@ -13,7 +13,6 @@ import org.signal.paging.PagedDataSource; import org.thoughtcrime.securesms.attachments.DatabaseAttachment; import org.thoughtcrime.securesms.conversation.ConversationData.MessageRequestData; import org.thoughtcrime.securesms.conversation.ConversationMessage.ConversationMessageFactory; -import org.thoughtcrime.securesms.database.MessageTable; import org.thoughtcrime.securesms.database.MmsSmsTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.InMemoryMessageRecord; @@ -22,7 +21,6 @@ import org.thoughtcrime.securesms.database.model.Mention; import org.thoughtcrime.securesms.database.model.MessageId; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.ReactionRecord; -import org.thoughtcrime.securesms.database.model.SmsMessageRecord; import org.thoughtcrime.securesms.database.model.UpdateDescription; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.payments.Payment; @@ -34,7 +32,6 @@ import org.whispersystems.signalservice.api.util.UuidUtil; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; @@ -323,8 +320,6 @@ public class ConversationDataSource implements PagedDataSource= ? AND " + TYPE + " = ?"; String[] args = SqlUtil.buildArgs(threadId, afterTimestamp, Types.PROFILE_CHANGE_TYPE); - try (SmsReader reader = smsReaderFor(queryMessages(where, args, true, -1))) { + try (MmsReader reader = mmsReaderFor(queryMessages(where, args, true, -1))) { List results = new ArrayList<>(reader.getCount()); while (reader.getNext() != null) { results.add(reader.getCurrent()); @@ -3330,10 +3317,6 @@ public class MessageTable extends DatabaseTable implements MmsSmsColumns, Recipi return new MmsReader(cursor); } - public static SmsReader smsReaderFor(Cursor cursor) { - return new SmsReader(cursor); - } - public static OutgoingMmsReader readerFor(OutgoingMessage message, long threadId) { return new OutgoingMmsReader(message, threadId); } @@ -4145,121 +4128,6 @@ public class MessageTable extends DatabaseTable implements MmsSmsColumns, Recipi ALL } - public static class SmsReader implements MessageTable.Reader { - - private final Cursor cursor; - private final Context context; - - public SmsReader(Cursor cursor) { - this.cursor = cursor; - this.context = ApplicationDependencies.getApplication(); - } - - public SmsMessageRecord getNext() { - if (cursor == null || !cursor.moveToNext()) - return null; - - return getCurrent(); - } - - public int getCount() { - if (cursor == null) return 0; - else return cursor.getCount(); - } - - @Override - public @NonNull MessageExportState getMessageExportStateForCurrentRecord() { - byte[] messageExportState = CursorUtil.requireBlob(cursor, MmsSmsColumns.EXPORT_STATE); - if (messageExportState == null) { - return MessageExportState.getDefaultInstance(); - } - - try { - return MessageExportState.parseFrom(messageExportState); - } catch (InvalidProtocolBufferException e) { - return MessageExportState.getDefaultInstance(); - } - } - - public SmsMessageRecord getCurrent() { - long messageId = cursor.getLong(cursor.getColumnIndexOrThrow(MmsSmsColumns.ID)); - long recipientId = cursor.getLong(cursor.getColumnIndexOrThrow(MmsSmsColumns.RECIPIENT_ID)); - int addressDeviceId = cursor.getInt(cursor.getColumnIndexOrThrow(MmsSmsColumns.RECIPIENT_DEVICE_ID)); - long type = cursor.getLong(cursor.getColumnIndexOrThrow(MmsSmsColumns.TYPE)); - long dateReceived = cursor.getLong(cursor.getColumnIndexOrThrow(MmsSmsColumns.DATE_RECEIVED)); - long dateSent = cursor.getLong(cursor.getColumnIndexOrThrow(MmsSmsColumns.DATE_SENT)); - long dateServer = cursor.getLong(cursor.getColumnIndexOrThrow(MmsSmsColumns.DATE_SERVER)); - long threadId = cursor.getLong(cursor.getColumnIndexOrThrow(MmsSmsColumns.THREAD_ID)); - int status = cursor.getInt(cursor.getColumnIndexOrThrow(MessageTable.MMS_STATUS)); - int deliveryReceiptCount = cursor.getInt(cursor.getColumnIndexOrThrow(MmsSmsColumns.DELIVERY_RECEIPT_COUNT)); - int readReceiptCount = cursor.getInt(cursor.getColumnIndexOrThrow(MmsSmsColumns.READ_RECEIPT_COUNT)); - String mismatchDocument = cursor.getString(cursor.getColumnIndexOrThrow(MmsSmsColumns.MISMATCHED_IDENTITIES)); - int subscriptionId = cursor.getInt(cursor.getColumnIndexOrThrow(MmsSmsColumns.SMS_SUBSCRIPTION_ID)); - long expiresIn = cursor.getLong(cursor.getColumnIndexOrThrow(MmsSmsColumns.EXPIRES_IN)); - long expireStarted = cursor.getLong(cursor.getColumnIndexOrThrow(MmsSmsColumns.EXPIRE_STARTED)); - String body = cursor.getString(cursor.getColumnIndexOrThrow(MmsSmsColumns.BODY)); - boolean unidentified = cursor.getInt(cursor.getColumnIndexOrThrow(MmsSmsColumns.UNIDENTIFIED)) == 1; - boolean remoteDelete = cursor.getInt(cursor.getColumnIndexOrThrow(MmsSmsColumns.REMOTE_DELETED)) == 1; - long notifiedTimestamp = CursorUtil.requireLong(cursor, NOTIFIED_TIMESTAMP); - long receiptTimestamp = CursorUtil.requireLong(cursor, RECEIPT_TIMESTAMP); - - if (!TextSecurePreferences.isReadReceiptsEnabled(context)) { - readReceiptCount = 0; - } - - Set mismatches = getMismatches(mismatchDocument); - Recipient recipient = Recipient.live(RecipientId.from(recipientId)).get(); - - return new SmsMessageRecord(messageId, body, recipient, - recipient, - addressDeviceId, - dateSent, dateReceived, dateServer, deliveryReceiptCount, type, - threadId, status, mismatches, subscriptionId, - expiresIn, expireStarted, - readReceiptCount, unidentified, Collections.emptyList(), remoteDelete, - notifiedTimestamp, receiptTimestamp); - } - - private Set getMismatches(String document) { - try { - if (!TextUtils.isEmpty(document)) { - return JsonUtils.fromJson(document, IdentityKeyMismatchSet.class).getItems(); - } - } catch (IOException e) { - Log.w(TAG, e); - } - - return Collections.emptySet(); - } - - @Override - public void close() { - cursor.close(); - } - - @Override - public @NonNull Iterator iterator() { - return new ReaderIterator(); - } - - private class ReaderIterator implements Iterator { - @Override - public boolean hasNext() { - return cursor != null && cursor.getCount() != 0 && !cursor.isLast(); - } - - @Override - public MessageRecord next() { - MessageRecord record = getNext(); - if (record == null) { - throw new NoSuchElementException(); - } - - return record; - } - } - } - public static class MmsStatus { public static final int DOWNLOAD_INITIALIZED = 1; public static final int DOWNLOAD_NO_CONNECTIVITY = 2; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/model/SmsMessageRecord.java b/app/src/main/java/org/thoughtcrime/securesms/database/model/SmsMessageRecord.java deleted file mode 100644 index c217bac7a0..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/database/model/SmsMessageRecord.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (C) 2012 Moxie Marlinspike - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package org.thoughtcrime.securesms.database.model; - -import android.content.Context; -import android.text.SpannableString; - -import androidx.annotation.NonNull; -import androidx.annotation.WorkerThread; - -import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.database.MmsSmsColumns; -import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch; -import org.thoughtcrime.securesms.recipients.Recipient; - -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -/** - * The message record model which represents standard SMS messages. - * - * @author Moxie Marlinspike - * - */ - -public class SmsMessageRecord extends MessageRecord { - - public SmsMessageRecord(long id, - String body, Recipient recipient, - Recipient individualRecipient, - int recipientDeviceId, - long dateSent, long dateReceived, long dateServer, - int deliveryReceiptCount, - long type, long threadId, - int status, Set mismatches, - int subscriptionId, long expiresIn, long expireStarted, - int readReceiptCount, boolean unidentified, - @NonNull List reactions, boolean remoteDelete, - long notifiedTimestamp, long receiptTimestamp) - { - super(id, body, recipient, individualRecipient, recipientDeviceId, - dateSent, dateReceived, dateServer, threadId, status, deliveryReceiptCount, type, - mismatches, new HashSet<>(), subscriptionId, - expiresIn, expireStarted, readReceiptCount, unidentified, reactions, remoteDelete, notifiedTimestamp, 0, receiptTimestamp); - } - - public long getType() { - return type; - } - - @Override - @WorkerThread - public SpannableString getDisplayBody(@NonNull Context context) { - if (MmsSmsColumns.Types.isChatSessionRefresh(type)) { - return emphasisAdded(context.getString(R.string.MessageRecord_chat_session_refreshed)); - } else if (isCorruptedKeyExchange()) { - return emphasisAdded(context.getString(R.string.SmsMessageRecord_received_corrupted_key_exchange_message)); - } else if (isInvalidVersionKeyExchange()) { - return emphasisAdded(context.getString(R.string.SmsMessageRecord_received_key_exchange_message_for_invalid_protocol_version)); - } else if (MmsSmsColumns.Types.isLegacyType(type)) { - return emphasisAdded(context.getString(R.string.MessageRecord_message_encrypted_with_a_legacy_protocol_version_that_is_no_longer_supported)); - } else if (isBundleKeyExchange()) { - return emphasisAdded(context.getString(R.string.SmsMessageRecord_received_message_with_new_safety_number_tap_to_process)); - } else if (isKeyExchange() && isOutgoing()) { - return new SpannableString(""); - } else if (isKeyExchange() && !isOutgoing()) { - return emphasisAdded(context.getString(R.string.ConversationItem_received_key_exchange_message_tap_to_process)); - } else if (MmsSmsColumns.Types.isDuplicateMessageType(type)) { - return emphasisAdded(context.getString(R.string.SmsMessageRecord_duplicate_message)); - } else if (MmsSmsColumns.Types.isNoRemoteSessionType(type)) { - return emphasisAdded(context.getString(R.string.MessageDisplayHelper_message_encrypted_for_non_existing_session)); - } else if (isEndSession() && isOutgoing()) { - return emphasisAdded(context.getString(R.string.SmsMessageRecord_secure_session_reset)); - } else if (isEndSession()) { - return emphasisAdded(context.getString(R.string.SmsMessageRecord_secure_session_reset_s, getIndividualRecipient().getDisplayName(context))); - } else if (MmsSmsColumns.Types.isUnsupportedMessageType(type)) { - return emphasisAdded(context.getString(R.string.SmsMessageRecord_this_message_could_not_be_processed_because_it_was_sent_from_a_newer_version)); - } else if (MmsSmsColumns.Types.isInvalidMessageType(type)) { - return emphasisAdded(context.getString(R.string.SmsMessageRecord_error_handling_incoming_message)); - } else { - return super.getDisplayBody(context); - } - } - - @Override - public boolean isMms() { - return false; - } - - @Override - public boolean isMmsNotification() { - return false; - } - - public @NonNull SmsMessageRecord withReactions(@NonNull List reactions) { - return new SmsMessageRecord(getId(), getBody(), getRecipient(), getIndividualRecipient(), getRecipientDeviceId(), getDateSent(), getDateReceived(), - getServerTimestamp(), getDeliveryReceiptCount(), getType(), getThreadId(), getDeliveryStatus(), getIdentityKeyMismatches(), - getSubscriptionId(), getExpiresIn(), getExpireStarted(), getReadReceiptCount(), isUnidentified(), reactions, isRemoteDelete(), - getNotifiedTimestamp(), getReceiptTimestamp()); - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/exporter/SignalSmsExportReader.kt b/app/src/main/java/org/thoughtcrime/securesms/exporter/SignalSmsExportReader.kt index 763fe8f50e..3322cdfded 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/exporter/SignalSmsExportReader.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/exporter/SignalSmsExportReader.kt @@ -30,8 +30,6 @@ class SignalSmsExportReader( private const val CURSOR_LIMIT = 1000 } - private var smsReader: MessageTable.SmsReader? = null - private var smsDone: Boolean = false private var mmsReader: MessageTable.MmsReader? = null private var mmsDone: Boolean = false @@ -44,25 +42,10 @@ class SignalSmsExportReader( } override fun close() { - smsReader?.close() mmsReader?.close() } private fun refreshReaders() { - if (!smsDone) { - smsReader?.close() - smsReader = null - - val refreshedSmsReader = MessageTable.smsReaderFor(smsDatabase.getUnexportedInsecureMessages(CURSOR_LIMIT)) - if (refreshedSmsReader.count > 0) { - smsReader = refreshedSmsReader - return - } else { - refreshedSmsReader.close() - smsDone = true - } - } - if (!mmsDone) { mmsReader?.close() mmsReader = null @@ -85,20 +68,10 @@ class SignalSmsExportReader( private fun refreshIterators() { refreshReaders() - smsIterator = smsReader?.iterator() mmsIterator = mmsReader?.iterator() } override fun hasNext(): Boolean { - if (smsIterator?.hasNext() == true) { - return true - } else if (!smsDone) { - refreshIterators() - if (smsIterator?.hasNext() == true) { - return true - } - } - if (mmsIterator?.hasNext() == true) { return true } else if (!mmsDone) { @@ -114,10 +87,7 @@ class SignalSmsExportReader( override fun next(): ExportableMessage { var record: MessageRecord? = null try { - return if (smsIterator?.hasNext() == true) { - record = smsIterator!!.next() - readExportableSmsMessageFromRecord(record, smsReader!!.messageExportStateForCurrentRecord) - } else if (mmsIterator?.hasNext() == true) { + return if (mmsIterator?.hasNext() == true) { record = mmsIterator!!.next() readExportableMmsMessageFromRecord(record, mmsReader!!.messageExportStateForCurrentRecord) } else { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsSendJob.java index b35561bc5e..f32b5bc396 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsSendJob.java @@ -15,7 +15,7 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.MessageTable; import org.thoughtcrime.securesms.database.NoSuchMessageException; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.database.model.SmsMessageRecord; +import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.jobmanager.Data; import org.thoughtcrime.securesms.jobmanager.Job; @@ -80,8 +80,8 @@ public class SmsSendJob extends SendJob { throw new TooManyRetriesException(); } - MessageTable database = SignalDatabase.messages(); - SmsMessageRecord record = database.getSmsMessage(messageId); + MessageTable database = SignalDatabase.messages(); + MessageRecord record = database.getMessageRecord(messageId); if (!record.isPending() && !record.isFailed()) { warn(TAG, "Message " + messageId + " was already sent. Ignoring."); @@ -123,7 +123,7 @@ public class SmsSendJob extends SendJob { } } - private void deliver(SmsMessageRecord message) + private void deliver(MessageRecord message) throws UndeliverableMessageException { if (message.isSecure() || message.isKeyExchange() || message.isEndSession()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsSentJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsSentJob.java index 067827923d..197c7c3f75 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsSentJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsSentJob.java @@ -9,7 +9,7 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.MessageTable; import org.thoughtcrime.securesms.database.NoSuchMessageException; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.database.model.SmsMessageRecord; +import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.jobmanager.Data; import org.thoughtcrime.securesms.jobmanager.Job; @@ -97,8 +97,8 @@ public class SmsSentJob extends BaseJob { private void handleSentResult(long messageId, int result) { try { - MessageTable database = SignalDatabase.messages(); - SmsMessageRecord record = database.getSmsMessage(messageId); + MessageTable database = SignalDatabase.messages(); + MessageRecord record = database.getMessageRecord(messageId); switch (result) { case Activity.RESULT_OK: diff --git a/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageRepository.java b/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageRepository.java index e51b5b4c9d..cb7a6f9d4a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageRepository.java @@ -13,7 +13,6 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.conversation.ConversationMessage.ConversationMessageFactory; import org.thoughtcrime.securesms.database.MessageTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.MmsMessageRecord; import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.mms.TextSlide; @@ -26,21 +25,15 @@ class LongMessageRepository { private final static String TAG = Log.tag(LongMessageRepository.class); - private final MessageTable mmsDatabase; - private final MessageTable smsDatabase; + private final MessageTable messageTable; LongMessageRepository() { - this.mmsDatabase = SignalDatabase.messages(); - this.smsDatabase = SignalDatabase.messages(); + this.messageTable = SignalDatabase.messages(); } - void getMessage(@NonNull Context context, long messageId, boolean isMms, @NonNull Callback> callback) { + void getMessage(@NonNull Context context, long messageId, @NonNull Callback> callback) { SignalExecutors.BOUNDED.execute(() -> { - if (isMms) { - callback.onComplete(getMmsLongMessage(context, mmsDatabase, messageId)); - } else { - callback.onComplete(getSmsLongMessage(context, smsDatabase, messageId)); - } + callback.onComplete(getMmsLongMessage(context, messageTable, messageId)); }); } @@ -61,18 +54,6 @@ class LongMessageRepository { } } - @WorkerThread - private Optional getSmsLongMessage(@NonNull Context context, @NonNull MessageTable smsDatabase, long messageId) { - Optional record = getSmsMessage(smsDatabase, messageId); - - if (record.isPresent()) { - return Optional.of(new LongMessage(ConversationMessageFactory.createWithUnresolvedData(context, record.get()))); - } else { - return Optional.empty(); - } - } - - @WorkerThread private Optional getMmsMessage(@NonNull MessageTable mmsDatabase, long messageId) { try (Cursor cursor = mmsDatabase.getMessageCursor(messageId)) { @@ -80,13 +61,6 @@ class LongMessageRepository { } } - @WorkerThread - private Optional getSmsMessage(@NonNull MessageTable smsDatabase, long messageId) { - try (Cursor cursor = smsDatabase.getMessageCursor(messageId)) { - return Optional.ofNullable(MessageTable.smsReaderFor(cursor).getNext()); - } - } - private @NonNull String readFullBody(@NonNull Context context, @NonNull Uri uri) { try (InputStream stream = PartAuthority.getAttachmentStream(context, uri)) { return StreamUtil.readFullyAsString(stream); diff --git a/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageViewModel.java index 47eadc3565..25c790f425 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageViewModel.java @@ -21,9 +21,9 @@ class LongMessageViewModel extends ViewModel { private LongMessageViewModel(@NonNull Application application, @NonNull LongMessageRepository repository, long messageId, boolean isMms) { this.message = new MutableLiveData<>(); - this.threadObserver = () -> repository.getMessage(application, messageId, isMms, message::postValue); + this.threadObserver = () -> repository.getMessage(application, messageId, message::postValue); - repository.getMessage(application, messageId, isMms, longMessage -> { + repository.getMessage(application, messageId, longMessage -> { if (longMessage.isPresent()) { ApplicationDependencies.getDatabaseObserver().registerConversationObserver(longMessage.get().getMessageRecord().getThreadId(), threadObserver); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/ExpiringMessageManager.java b/app/src/main/java/org/thoughtcrime/securesms/service/ExpiringMessageManager.java index ae57366d34..d1a18e9885 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/ExpiringMessageManager.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/ExpiringMessageManager.java @@ -53,24 +53,16 @@ public class ExpiringMessageManager { private class LoadTask implements Runnable { public void run() { - MessageTable.SmsReader smsReader = MessageTable.smsReaderFor(smsDatabase.getExpirationStartedMessages()); MessageTable.MmsReader mmsReader = MessageTable.mmsReaderFor(mmsDatabase.getExpirationStartedMessages()); MessageRecord messageRecord; - while ((messageRecord = smsReader.getNext()) != null) { - expiringMessageReferences.add(new ExpiringMessageReference(messageRecord.getId(), - messageRecord.isMms(), - messageRecord.getExpireStarted() + messageRecord.getExpiresIn())); - } - while ((messageRecord = mmsReader.getNext()) != null) { expiringMessageReferences.add(new ExpiringMessageReference(messageRecord.getId(), messageRecord.isMms(), messageRecord.getExpireStarted() + messageRecord.getExpiresIn())); } - smsReader.close(); mmsReader.close(); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java b/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java index 6e68a21801..9e98e4c4c6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java @@ -45,7 +45,6 @@ import org.thoughtcrime.securesms.database.model.MessageId; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.MmsMessageRecord; import org.thoughtcrime.securesms.database.model.ReactionRecord; -import org.thoughtcrime.securesms.database.model.SmsMessageRecord; import org.thoughtcrime.securesms.database.model.StoryType; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.jobmanager.Job; @@ -671,29 +670,6 @@ public class MessageSender { } } - private static void sendLocalTextSelf(Context context, long messageId) { - try { - ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager(); - MessageTable smsDatabase = SignalDatabase.messages(); - MmsSmsTable mmsSmsDatabase = SignalDatabase.mmsSms(); - SmsMessageRecord message = smsDatabase.getSmsMessage(messageId); - SyncMessageId syncId = new SyncMessageId(Recipient.self().getId(), message.getDateSent()); - - smsDatabase.markAsSent(messageId, true); - smsDatabase.markUnidentified(messageId, true); - - mmsSmsDatabase.incrementDeliveryReceiptCount(syncId, System.currentTimeMillis()); - mmsSmsDatabase.incrementReadReceiptCount(syncId, System.currentTimeMillis()); - - if (message.getExpiresIn() > 0) { - smsDatabase.markExpireStarted(messageId); - expirationManager.scheduleDeletion(message.getId(), message.isMms(), message.getExpiresIn()); - } - } catch (NoSuchMessageException e) { - Log.w(TAG, "Failed to update self-sent message.", e); - } - } - public static class PreUploadResult implements Parcelable { private final Media media; private final AttachmentId attachmentId;