Show system contact icon in more places.

This commit is contained in:
Cody Henthorne
2024-02-27 13:25:04 -05:00
committed by Alex Hart
parent c31a7152bc
commit 591d499462
13 changed files with 91 additions and 141 deletions

View File

@@ -9,7 +9,6 @@ import androidx.annotation.DrawableRes;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.components.emoji.SimpleEmojiTextView;
import org.thoughtcrime.securesms.recipients.Recipient;
@@ -20,8 +19,6 @@ import org.thoughtcrime.securesms.util.ViewUtil;
public class FromTextView extends SimpleEmojiTextView {
private static final String TAG = Log.tag(FromTextView.class);
public FromTextView(Context context) {
super(context);
}
@@ -31,22 +28,18 @@ public class FromTextView extends SimpleEmojiTextView {
}
public void setText(Recipient recipient) {
setText(recipient, true);
setText(recipient, null);
}
public void setText(Recipient recipient, boolean read) {
setText(recipient, read, null);
public void setText(Recipient recipient, @Nullable CharSequence suffix) {
setText(recipient, recipient.getDisplayName(getContext()), suffix);
}
public void setText(Recipient recipient, boolean read, @Nullable String suffix) {
setText(recipient, recipient.getDisplayName(getContext()), read, suffix);
public void setText(Recipient recipient, @Nullable CharSequence fromString, @Nullable CharSequence suffix) {
setText(recipient, fromString, suffix, true);
}
public void setText(Recipient recipient, @Nullable CharSequence fromString, boolean read, @Nullable String suffix) {
setText(recipient, fromString, read, suffix, true);
}
public void setText(Recipient recipient, @Nullable CharSequence fromString, boolean read, @Nullable String suffix, boolean asThread) {
public void setText(Recipient recipient, @Nullable CharSequence fromString, @Nullable CharSequence suffix, boolean asThread) {
SpannableStringBuilder builder = new SpannableStringBuilder();
if (asThread && recipient.isSelf()) {

View File

@@ -2,11 +2,11 @@ package org.thoughtcrime.securesms.components.settings.conversation.preferences
import android.content.ClipData
import android.content.Context
import android.graphics.drawable.InsetDrawable
import android.text.SpannableStringBuilder
import android.view.View
import android.widget.TextView
import android.widget.Toast
import androidx.core.content.ContextCompat
import org.signal.core.util.dp
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.components.settings.PreferenceModel
@@ -53,17 +53,28 @@ object BioTextPreference {
}
return SpannableStringBuilder(name).apply {
var appendedToName = false
if (recipient.showVerified()) {
SpanUtil.appendCenteredImageSpan(this, ContextUtil.requireDrawable(context, R.drawable.ic_official_28), 28, 28)
appendedToName = true
} else if (recipient.isSystemContact) {
val drawable = ContextUtil.requireDrawable(context, R.drawable.symbol_person_circle_24).apply {
setTint(ContextCompat.getColor(context, R.color.signal_colorOnSurface))
}
SpanUtil.appendCenteredImageSpan(this, drawable, 24, 24)
appendedToName = true
}
if (recipient.isIndividual && !recipient.isSelf) {
val drawable = ContextUtil.requireDrawable(context, R.drawable.symbol_chevron_right_24_color_on_secondary_container)
drawable.setBounds(0, 0, 24.dp, 24.dp)
val drawable = ContextUtil.requireDrawable(context, R.drawable.symbol_chevron_right_24).apply {
setBounds(0, 0, 24.dp, 24.dp)
setTint(ContextCompat.getColor(context, R.color.signal_colorOutline))
}
val insetDrawable = InsetDrawable(drawable, 0, 0, 0, 4.dp)
SpanUtil.appendBottomImageSpan(this, insetDrawable, 24, 28)
if (!appendedToName) {
append(" ")
}
append(SpanUtil.buildCenteredImageSpan(drawable))
}
}
}

View File

@@ -1,12 +1,16 @@
package org.thoughtcrime.securesms.components.settings.conversation.preferences
import android.text.SpannableStringBuilder
import android.view.View
import android.widget.TextView
import androidx.core.content.ContextCompat
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.badges.BadgeImageView
import org.thoughtcrime.securesms.components.AvatarImageView
import org.thoughtcrime.securesms.components.settings.PreferenceModel
import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.util.ContextUtil
import org.thoughtcrime.securesms.util.SpanUtil
import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory
import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter
import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder
@@ -56,7 +60,16 @@ object RecipientPreference {
name.text = if (model.recipient.isSelf) {
context.getString(R.string.Recipient_you)
} else {
model.recipient.getDisplayName(context)
if (model.recipient.isSystemContact) {
SpannableStringBuilder(model.recipient.getDisplayName(context)).apply {
val drawable = ContextUtil.requireDrawable(context, R.drawable.symbol_person_circle_24).apply {
setTint(ContextCompat.getColor(context, R.color.signal_colorOnSurface))
}
SpanUtil.appendCenteredImageSpan(this, drawable, 16, 16)
}
} else {
model.recipient.getDisplayName(context)
}
}
val aboutText = model.recipient.combinedAboutAndEmoji