mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 09:20:19 +01:00
Add support for sending and syncing viewed receipts behind a feature flag.
This commit is contained in:
@@ -11,9 +11,13 @@ 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.MultiDeviceViewedUpdateJob;
|
||||
import org.thoughtcrime.securesms.jobs.SendViewedReceiptJob;
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
class ViewOnceMessageRepository {
|
||||
|
||||
private static final String TAG = Log.tag(ViewOnceMessageRepository.class);
|
||||
@@ -28,12 +32,17 @@ 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()));
|
||||
|
||||
if (FeatureFlags.sendViewedReceipts()) {
|
||||
MessageDatabase.MarkedMessageInfo info = mmsDatabase.setIncomingMessageViewed(record.getId());
|
||||
if (info != null) {
|
||||
ApplicationDependencies.getJobManager().add(new SendViewedReceiptJob(record.getThreadId(),
|
||||
info.getSyncMessageId().getRecipientId(),
|
||||
info.getSyncMessageId().getTimetamp()));
|
||||
MultiDeviceViewedUpdateJob.enqueue(Collections.singletonList(info.getSyncMessageId()));
|
||||
}
|
||||
}
|
||||
|
||||
callback.onComplete(Optional.fromNullable(record));
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user