From adda7622f4b1233e9205c07b264786a4f1ae32d9 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Thu, 3 Dec 2015 12:36:47 -0800 Subject: [PATCH] Mark messages read when swipe archiving // FREEBIE --- .../securesms/ConversationListFragment.java | 16 ++++++++++++---- .../securesms/ConversationListItem.java | 4 ++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/org/thoughtcrime/securesms/ConversationListFragment.java b/src/org/thoughtcrime/securesms/ConversationListFragment.java index fbdd975d7a..3c12860e40 100644 --- a/src/org/thoughtcrime/securesms/ConversationListFragment.java +++ b/src/org/thoughtcrime/securesms/ConversationListFragment.java @@ -20,7 +20,6 @@ import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; -import android.content.res.Resources; import android.content.res.TypedArray; import android.database.Cursor; import android.graphics.Bitmap; @@ -44,7 +43,6 @@ import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.helper.ItemTouchHelper; import android.text.TextUtils; -import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -53,7 +51,6 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; - import org.thoughtcrime.securesms.ConversationListAdapter.ItemClickListener; import org.thoughtcrime.securesms.components.reminder.DefaultSmsReminder; import org.thoughtcrime.securesms.components.reminder.ExpiredBuildReminder; @@ -433,7 +430,8 @@ public class ConversationListFragment extends Fragment @Override public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { - final long threadId = ((ConversationListItem)viewHolder.itemView).getThreadId(); + final long threadId = ((ConversationListItem)viewHolder.itemView).getThreadId(); + final boolean read = ((ConversationListItem)viewHolder.itemView).getRead(); if (archive) { new SnackbarAsyncTask(getView(), @@ -462,11 +460,21 @@ public class ConversationListFragment extends Fragment @Override protected void executeAction(@Nullable Long parameter) { DatabaseFactory.getThreadDatabase(getActivity()).archiveConversation(threadId); + + if (!read) { + DatabaseFactory.getThreadDatabase(getActivity()).setRead(threadId); + MessageNotifier.updateNotification(getActivity(), masterSecret); + } } @Override protected void reverseAction(@Nullable Long parameter) { DatabaseFactory.getThreadDatabase(getActivity()).unarchiveConversation(threadId); + + if (!read) { + DatabaseFactory.getThreadDatabase(getActivity()).setUnread(threadId); + MessageNotifier.updateNotification(getActivity(), masterSecret); + } } }.execute(threadId); } diff --git a/src/org/thoughtcrime/securesms/ConversationListItem.java b/src/org/thoughtcrime/securesms/ConversationListItem.java index edd48f001d..e20f6717dc 100644 --- a/src/org/thoughtcrime/securesms/ConversationListItem.java +++ b/src/org/thoughtcrime/securesms/ConversationListItem.java @@ -160,6 +160,10 @@ public class ConversationListItem extends RelativeLayout return threadId; } + public boolean getRead() { + return read; + } + public int getDistributionType() { return distributionType; }