Revert "Don't stick thread IDs in the Intent extra data. Always mark all threads read from notification."

This reverts commit 91b52bed18.
This commit is contained in:
Jake McGinty
2014-01-18 18:25:51 -08:00
parent d51ccb8ce2
commit 2f01569e45
3 changed files with 25 additions and 2 deletions

View File

@@ -5,6 +5,7 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.util.Log;
import org.whispersystems.textsecure.crypto.MasterSecret;
import org.thoughtcrime.securesms.database.DatabaseFactory;
@@ -18,9 +19,11 @@ public class MarkReadReceiver extends BroadcastReceiver {
if (!intent.getAction().equals(CLEAR_ACTION))
return;
final long[] threadIds = intent.getLongArrayExtra("thread_ids");
final MasterSecret masterSecret = intent.getParcelableExtra("master_secret");
if (masterSecret != null) {
if (threadIds != null && masterSecret != null) {
Log.w("MarkReadReceiver", "threadIds length: " + threadIds.length);
((NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE))
.cancel(MessageNotifier.NOTIFICATION_ID);
@@ -28,7 +31,10 @@ public class MarkReadReceiver extends BroadcastReceiver {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
DatabaseFactory.getThreadDatabase(context).setAllThreadsRead();
for (long threadId : threadIds) {
Log.w("MarkReadReceiver", "Marking as read: " + threadId);
DatabaseFactory.getThreadDatabase(context).setRead(threadId);
}
MessageNotifier.updateNotification(context, masterSecret);
return null;