From b86b515dc0d9677bee3bcde73cf4ab76c6cec233 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Mon, 3 May 2021 17:18:38 -0400 Subject: [PATCH] highlight system messages in search results --- .../securesms/BaseConversationItem.java | 19 ++++++++++++++++++- .../securesms/ConversationItem.java | 18 ++++-------------- .../securesms/ConversationUpdateItem.java | 3 +-- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/org/thoughtcrime/securesms/BaseConversationItem.java b/src/org/thoughtcrime/securesms/BaseConversationItem.java index 0cdb2201e..eb7b81984 100644 --- a/src/org/thoughtcrime/securesms/BaseConversationItem.java +++ b/src/org/thoughtcrime/securesms/BaseConversationItem.java @@ -24,6 +24,8 @@ import java.util.Set; public abstract class BaseConversationItem extends LinearLayout implements BindableConversationItem { + static long PULSE_HIGHLIGHT_MILLIS = 500; + protected DcMsg messageRecord; protected DcChat dcChat; protected TextView bodyText; @@ -43,11 +45,26 @@ public abstract class BaseConversationItem extends LinearLayout protected void bind(@NonNull DcMsg messageRecord, @NonNull DcChat dcChat, - @NonNull Set batchSelected) + @NonNull Set batchSelected, + boolean pulseHighlight) { this.messageRecord = messageRecord; this.dcChat = dcChat; this.batchSelected = batchSelected; + setInteractionState(messageRecord, pulseHighlight); + } + + protected void setInteractionState(DcMsg messageRecord, boolean pulseHighlight) { + if (batchSelected.contains(messageRecord)) { + setBackgroundResource(R.drawable.conversation_item_background); + setSelected(true); + } else if (pulseHighlight) { + setBackgroundResource(R.drawable.conversation_item_background_animated); + setSelected(true); + postDelayed(() -> setSelected(false), PULSE_HIGHLIGHT_MILLIS); + } else { + setSelected(false); + } } @Override diff --git a/src/org/thoughtcrime/securesms/ConversationItem.java b/src/org/thoughtcrime/securesms/ConversationItem.java index f016a8216..96cf71ca3 100644 --- a/src/org/thoughtcrime/securesms/ConversationItem.java +++ b/src/org/thoughtcrime/securesms/ConversationItem.java @@ -83,7 +83,6 @@ public class ConversationItem extends BaseConversationItem private static final Rect SWIPE_RECT = new Rect(); private static final int MAX_MEASURE_CALLS = 3; - static long PULSE_HIGHLIGHT_MILLIS = 500; private DcContact dcContact; private Locale locale; @@ -163,7 +162,7 @@ public class ConversationItem extends BaseConversationItem @NonNull Recipient recipients, boolean pulseHighlight) { - bind(messageRecord, dcChat, batchSelected); + bind(messageRecord, dcChat, batchSelected, pulseHighlight); this.locale = locale; this.glideRequests = glideRequests; this.conversationRecipient = recipients; @@ -176,7 +175,6 @@ public class ConversationItem extends BaseConversationItem setGutterSizes(messageRecord, showSender); setMessageShape(messageRecord); setMediaAttributes(messageRecord, showSender); - setInteractionState(messageRecord, pulseHighlight); setBodyText(messageRecord); setBubbleState(messageRecord); setContactPhoto(); @@ -270,17 +268,9 @@ public class ConversationItem extends BaseConversationItem } } - private void setInteractionState(DcMsg messageRecord, boolean pulseHighlight) { - if (batchSelected.contains(messageRecord)) { - setBackgroundResource(R.drawable.conversation_item_background); - setSelected(true); - } else if (pulseHighlight) { - setBackgroundResource(R.drawable.conversation_item_background_animated); - setSelected(true); - postDelayed(() -> setSelected(false), PULSE_HIGHLIGHT_MILLIS); - } else { - setSelected(false); - } + @Override + protected void setInteractionState(DcMsg messageRecord, boolean pulseHighlight) { + super.setInteractionState(messageRecord, pulseHighlight); if (mediaThumbnailStub.resolved()) { mediaThumbnailStub.get().setFocusable(!shouldInterceptClicks(messageRecord) && batchSelected.isEmpty()); diff --git a/src/org/thoughtcrime/securesms/ConversationUpdateItem.java b/src/org/thoughtcrime/securesms/ConversationUpdateItem.java index 51052b077..64111b8bb 100644 --- a/src/org/thoughtcrime/securesms/ConversationUpdateItem.java +++ b/src/org/thoughtcrime/securesms/ConversationUpdateItem.java @@ -55,9 +55,8 @@ public class ConversationUpdateItem extends BaseConversationItem @NonNull Recipient conversationRecipient, boolean pulseUpdate) { - bind(messageRecord, dcChat, batchSelected); + bind(messageRecord, dcChat, batchSelected, pulseUpdate); setGenericInfoRecord(messageRecord); - setSelected(batchSelected.contains(messageRecord)); } private void initializeAttributes() {