Add new VIEWED item in RecieptMessage enumeration.

Also includes necessary Database changes for supporting this as well as View-Once receipt support.
This commit is contained in:
Alex Hart
2020-11-20 09:16:37 -04:00
parent 7bb1262571
commit ce44e3949c
26 changed files with 432 additions and 33 deletions

View File

@@ -8,6 +8,8 @@ import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.MessageDatabase;
import org.thoughtcrime.securesms.database.MmsDatabase;
import org.thoughtcrime.securesms.database.model.MmsMessageRecord;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.jobs.SendViewedReceiptJob;
import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.util.concurrent.SignalExecutors;
import org.whispersystems.libsignal.util.guava.Optional;
@@ -26,6 +28,12 @@ class ViewOnceMessageRepository {
SignalExecutors.BOUNDED.execute(() -> {
try (MmsDatabase.Reader reader = MmsDatabase.readerFor(mmsDatabase.getMessageCursor(messageId))) {
MmsMessageRecord record = (MmsMessageRecord) reader.getNext();
MessageDatabase.MarkedMessageInfo info = mmsDatabase.setIncomingMessageViewed(record.getId());
if (info != null) {
ApplicationDependencies.getJobManager().add(new SendViewedReceiptJob(record.getThreadId(),
info.getSyncMessageId().getRecipientId(),
info.getSyncMessageId().getTimetamp()));
}
callback.onComplete(Optional.fromNullable(record));
}
});