Support for synchronizing read state to/from desktop

// FREEBIE
This commit is contained in:
Moxie Marlinspike
2016-02-19 17:07:41 -08:00
parent f5c90df780
commit 08e2221dc0
15 changed files with 369 additions and 38 deletions

View File

@@ -38,16 +38,20 @@ import android.text.TextUtils;
import android.text.style.StyleSpan;
import android.util.Log;
import org.thoughtcrime.securesms.ApplicationContext;
import org.thoughtcrime.securesms.ConversationActivity;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.crypto.MasterSecret;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.MessagingDatabase;
import org.thoughtcrime.securesms.database.MessagingDatabase.SyncMessageId;
import org.thoughtcrime.securesms.database.MmsSmsDatabase;
import org.thoughtcrime.securesms.database.PushDatabase;
import org.thoughtcrime.securesms.database.SmsDatabase;
import org.thoughtcrime.securesms.database.ThreadDatabase;
import org.thoughtcrime.securesms.database.model.MediaMmsMessageRecord;
import org.thoughtcrime.securesms.database.model.MessageRecord;
import org.thoughtcrime.securesms.jobs.MultiDeviceReadUpdateJob;
import org.thoughtcrime.securesms.mms.SlideDeck;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientFactory;
@@ -136,7 +140,13 @@ public class MessageNotifier {
.getRecipientsForThreadId(threadId);
if (isVisible) {
threads.setRead(threadId);
List<SyncMessageId> messageIds = threads.setRead(threadId);
if (!messageIds.isEmpty()) {
ApplicationContext.getInstance(context)
.getJobManager()
.add(new MultiDeviceReadUpdateJob(context, messageIds));
}
}
if (!TextSecurePreferences.isNotificationsEnabled(context) ||