highlight system messages in search results

This commit is contained in:
adbenitez
2021-05-03 17:18:38 -04:00
parent 9babc20f45
commit b86b515dc0
3 changed files with 23 additions and 17 deletions
@@ -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<DcMsg> batchSelected)
@NonNull Set<DcMsg> 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
@@ -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());
@@ -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() {