From 076facbdc2ea906815dc611662cd498017bab12a Mon Sep 17 00:00:00 2001 From: Lucio Maciel Date: Tue, 7 Sep 2021 15:18:03 -0300 Subject: [PATCH] Fixes on Chat list. --- .../conversationlist/ConversationListItem.java | 15 +++++++-------- .../thoughtcrime/securesms/util/SpanUtil.java | 17 +++++++++++++---- .../res/layout/conversation_list_item_view.xml | 16 ++++++++++++---- app/src/main/res/layout/dsl_section_header.xml | 1 + 4 files changed, 33 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java index 65ef55e013..6a9dcb8e8d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java @@ -172,9 +172,9 @@ public final class ConversationListItem extends ConstraintLayout if (highlightSubstring != null) { String name = recipient.get().isSelf() ? getContext().getString(R.string.note_to_self) : recipient.get().getDisplayName(getContext()); - this.fromView.setText(SearchUtil.getHighlightedSpan(locale, SpanUtil::getBoldSpan, name, highlightSubstring, SearchUtil.MATCH_ALL)); + this.fromView.setText(SearchUtil.getHighlightedSpan(locale, SpanUtil::getMediumBoldSpan, name, highlightSubstring, SearchUtil.MATCH_ALL)); } else { - this.fromView.setText(recipient.get(), thread.isRead()); + this.fromView.setText(recipient.get(), false); } this.typingThreads = typingThreads; @@ -218,7 +218,7 @@ public final class ConversationListItem extends ConstraintLayout this.locale = locale; this.highlightSubstring = highlightSubstring; - fromView.setText(SearchUtil.getHighlightedSpan(locale, SpanUtil::getBoldSpan, new SpannableString(contact.getDisplayName(getContext())), highlightSubstring, SearchUtil.MATCH_ALL)); + fromView.setText(SearchUtil.getHighlightedSpan(locale, SpanUtil::getMediumBoldSpan, new SpannableString(contact.getDisplayName(getContext())), highlightSubstring, SearchUtil.MATCH_ALL)); setSubjectViewText(SearchUtil.getHighlightedSpan(locale, SpanUtil::getBoldSpan, contact.getE164().or(""), highlightSubstring, SearchUtil.MATCH_ALL)); dateView.setText(""); archivedView.setVisibility(GONE); @@ -246,7 +246,7 @@ public final class ConversationListItem extends ConstraintLayout this.locale = locale; this.highlightSubstring = highlightSubstring; - fromView.setText(recipient.get(), true); + fromView.setText(recipient.get(), false); setSubjectViewText(SearchUtil.getHighlightedSpan(locale, SpanUtil::getBoldSpan, messageResult.getBodySnippet(), highlightSubstring, SearchUtil.MATCH_ALL)); dateView.setText(DateUtils.getBriefRelativeTimeSpanString(getContext(), locale, messageResult.getReceivedTimestampMs())); archivedView.setVisibility(GONE); @@ -403,12 +403,11 @@ public final class ConversationListItem extends ConstraintLayout } private void setUnreadIndicator(ThreadRecord thread) { - if ((thread.isOutgoing() && !thread.isForcedUnread()) || thread.isRead() || unreadCount == 0) { + if ((thread.isOutgoing() && !thread.isForcedUnread()) || thread.isRead()) { unreadIndicator.setVisibility(View.GONE); return; } - String count = unreadCount > 100 ? String.valueOf(unreadCount) : "+99"; unreadIndicator.setText(unreadCount > 0 ? String.valueOf(unreadCount) : " "); unreadIndicator.setVisibility(View.VISIBLE); } @@ -422,9 +421,9 @@ public final class ConversationListItem extends ConstraintLayout if (highlightSubstring != null) { String name = recipient.isSelf() ? getContext().getString(R.string.note_to_self) : recipient.getDisplayName(getContext()); - fromView.setText(SearchUtil.getHighlightedSpan(locale, SpanUtil::getBoldSpan, new SpannableString(name), highlightSubstring, SearchUtil.MATCH_ALL)); + fromView.setText(SearchUtil.getHighlightedSpan(locale, SpanUtil::getMediumBoldSpan, new SpannableString(name), highlightSubstring, SearchUtil.MATCH_ALL)); } else { - fromView.setText(recipient, unreadCount == 0); + fromView.setText(recipient, false); } contactPhotoImage.setAvatar(glideRequests, recipient, !batchMode); setRippleColor(recipient); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/SpanUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/SpanUtil.java index 7f27d51173..e97eb2c241 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/SpanUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/SpanUtil.java @@ -37,8 +37,9 @@ public final class SpanUtil { public static final String SPAN_PLACE_HOLDER = "<<>>"; - private final static Typeface BOLD_TYPEFACE = Typeface.create("sans-serif-medium", Typeface.NORMAL); - private final static Typeface LIGHT_TYPEFACE = Typeface.create("sans-serif", Typeface.NORMAL); + private final static Typeface MEDIUM_BOLD_TYPEFACE = Typeface.create("sans-serif-medium", Typeface.BOLD); + private final static Typeface BOLD_TYPEFACE = Typeface.create("sans-serif-medium", Typeface.NORMAL); + private final static Typeface LIGHT_TYPEFACE = Typeface.create("sans-serif", Typeface.NORMAL); public static CharSequence italic(CharSequence sequence) { return italic(sequence, sequence.length()); @@ -212,8 +213,16 @@ public final class SpanUtil { return builder; } + public static CharacterStyle getMediumBoldSpan() { + if (Build.VERSION.SDK_INT >= 28) { + return new TypefaceSpan(MEDIUM_BOLD_TYPEFACE); + } else { + return new StyleSpan(Typeface.BOLD); + } + } + public static CharacterStyle getBoldSpan() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + if (Build.VERSION.SDK_INT >= 28) { return new TypefaceSpan(BOLD_TYPEFACE); } else { return new StyleSpan(Typeface.BOLD); @@ -221,7 +230,7 @@ public final class SpanUtil { } public static CharacterStyle getNormalSpan() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + if (Build.VERSION.SDK_INT >= 28) { return new TypefaceSpan(LIGHT_TYPEFACE); } else { return new StyleSpan(Typeface.NORMAL); diff --git a/app/src/main/res/layout/conversation_list_item_view.xml b/app/src/main/res/layout/conversation_list_item_view.xml index bdcca94090..0a39aea316 100644 --- a/app/src/main/res/layout/conversation_list_item_view.xml +++ b/app/src/main/res/layout/conversation_list_item_view.xml @@ -52,11 +52,11 @@ android:layout_marginTop="8dp" android:drawablePadding="5dp" android:ellipsize="end" - android:fontFamily="sans-serif" + android:fontFamily="sans-serif-medium" android:maxLines="1" android:textColor="@color/signal_text_primary" app:layout_constraintStart_toEndOf="@id/conversation_list_item_avatar" - app:layout_constraintEnd_toStartOf="@id/conversation_list_item_thumbnail" + app:layout_constraintEnd_toStartOf="@id/conversation_list_item_summary_barrier" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_chainStyle="packed" tools:text="Peter Parker" /> @@ -83,6 +83,7 @@ android:lines="2" android:textColor="@color/signal_text_secondary" android:layout_marginEnd="12dp" + android:layout_marginBottom="8dp" tools:text="I'll send those photos over to the Bugle ASAP." app:layout_constraintTop_toBottomOf="@id/conversation_list_item_name" app:layout_constraintStart_toEndOf="@id/conversation_list_item_alert" @@ -108,10 +109,10 @@ android:layout_toStartOf="@+id/conversation_list_item_date" android:contentDescription="@string/conversation_activity__attachment_thumbnail" android:visibility="gone" - tools:visibility="gone" + tools:visibility="visible" app:thumbnail_radius="8dp" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintEnd_toStartOf="@id/conversation_list_item_date"/> + app:layout_constraintEnd_toStartOf="@id/conversation_list_item_thumbnail_barrier"/> + + diff --git a/app/src/main/res/layout/dsl_section_header.xml b/app/src/main/res/layout/dsl_section_header.xml index 3d465aa1c0..2a8bcb7449 100644 --- a/app/src/main/res/layout/dsl_section_header.xml +++ b/app/src/main/res/layout/dsl_section_header.xml @@ -14,5 +14,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="@style/TextAppearance.Signal.Body1.Bold" + android:textStyle="bold" tools:text="Section Header" />