mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 04:58:45 +00:00
Fix chevron placement for rtl languages.
This commit is contained in:
committed by
Cody Henthorne
parent
cef839d300
commit
a681d06de5
@@ -14,6 +14,7 @@ import org.thoughtcrime.securesms.recipients.Recipient
|
||||
import org.thoughtcrime.securesms.util.ContextUtil
|
||||
import org.thoughtcrime.securesms.util.ServiceUtil
|
||||
import org.thoughtcrime.securesms.util.SpanUtil
|
||||
import org.thoughtcrime.securesms.util.ViewUtil
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder
|
||||
@@ -70,18 +71,24 @@ object BioTextPreference {
|
||||
}
|
||||
|
||||
if (recipient.isIndividual && !recipient.isSelf) {
|
||||
val isLtr = ViewUtil.isLtr(context)
|
||||
val chevronGlyph = SignalSymbols.getSpannedString(
|
||||
context,
|
||||
SignalSymbols.Weight.BOLD,
|
||||
SignalSymbols.Glyph.CHEVRON_RIGHT
|
||||
if (isLtr) SignalSymbols.Glyph.CHEVRON_RIGHT else SignalSymbols.Glyph.CHEVRON_LEFT
|
||||
).let {
|
||||
SpanUtil.ofSize(it, 24)
|
||||
}.let {
|
||||
SpanUtil.color(ContextCompat.getColor(context, R.color.signal_colorOutline), it)
|
||||
}
|
||||
|
||||
append(" ")
|
||||
append(chevronGlyph)
|
||||
if (isLtr) {
|
||||
append(" ")
|
||||
append(chevronGlyph)
|
||||
} else {
|
||||
insert(0, " ")
|
||||
insert(0, chevronGlyph)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.thoughtcrime.securesms.fonts.SignalSymbols
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
import org.thoughtcrime.securesms.service.webrtc.PendingParticipantCollection
|
||||
import org.thoughtcrime.securesms.util.SpanUtil
|
||||
import org.thoughtcrime.securesms.util.ViewUtil
|
||||
import org.thoughtcrime.securesms.util.visible
|
||||
|
||||
/**
|
||||
@@ -59,14 +60,26 @@ class PendingParticipantsView @JvmOverloads constructor(
|
||||
avatar.setAvatar(firstRecipient)
|
||||
avatar.setOnClickListener { listener?.onLaunchRecipientSheet(firstRecipient) }
|
||||
|
||||
name.text = SpannableStringBuilder(firstRecipient.getShortDisplayName(context))
|
||||
.append(" ")
|
||||
.append(
|
||||
SpanUtil.ofSize(
|
||||
SignalSymbols.getSpannedString(context, SignalSymbols.Weight.REGULAR, SignalSymbols.Glyph.CHEVRON_RIGHT),
|
||||
16
|
||||
name.text = if (ViewUtil.isLtr(this)) {
|
||||
SpannableStringBuilder(firstRecipient.getShortDisplayName(context))
|
||||
.append(" ")
|
||||
.append(
|
||||
SpanUtil.ofSize(
|
||||
SignalSymbols.getSpannedString(context, SignalSymbols.Weight.REGULAR, SignalSymbols.Glyph.CHEVRON_RIGHT),
|
||||
16
|
||||
)
|
||||
)
|
||||
)
|
||||
} else {
|
||||
SpannableStringBuilder(firstRecipient.getShortDisplayName(context))
|
||||
.insert(0, " ")
|
||||
.insert(
|
||||
0,
|
||||
SpanUtil.ofSize(
|
||||
SignalSymbols.getSpannedString(context, SignalSymbols.Weight.REGULAR, SignalSymbols.Glyph.CHEVRON_LEFT),
|
||||
16
|
||||
)
|
||||
)
|
||||
}
|
||||
name.setOnClickListener { listener?.onLaunchRecipientSheet(firstRecipient) }
|
||||
|
||||
allow.setOnClickListener { listener?.onAllowPendingRecipient(firstRecipient) }
|
||||
|
||||
@@ -136,9 +136,16 @@ public class ConversationHeaderView extends ConstraintLayout {
|
||||
}
|
||||
|
||||
if (recipient.isIndividual() && !recipient.isSelf()) {
|
||||
CharSequence chevronRight = SignalSymbols.getSpannedString(getContext(), SignalSymbols.Weight.BOLD, SignalSymbols.Glyph.CHEVRON_RIGHT, R.color.signal_colorOutline);
|
||||
title.append(" ");
|
||||
title.append(SpanUtil.ofSize(chevronRight, 24));
|
||||
boolean isLtr = ViewUtil.isLtr(this);
|
||||
CharSequence chevron = SignalSymbols.getSpannedString(getContext(), SignalSymbols.Weight.BOLD, isLtr ? SignalSymbols.Glyph.CHEVRON_RIGHT : SignalSymbols.Glyph.CHEVRON_LEFT, R.color.signal_colorOutline);
|
||||
|
||||
if (isLtr) {
|
||||
title.append(" ");
|
||||
title.append(SpanUtil.ofSize(chevron, 24));
|
||||
} else {
|
||||
title.insert(0, " ");
|
||||
title.insert(0, SpanUtil.ofSize(chevron, 24));
|
||||
}
|
||||
|
||||
binding.messageRequestTitle.setOnClickListener(v -> onTitleClicked.run());
|
||||
} else {
|
||||
|
||||
@@ -26,6 +26,7 @@ object SignalSymbols {
|
||||
|
||||
enum class Glyph(val unicode: Char) {
|
||||
CHECKMARK('\u2713'),
|
||||
CHEVRON_LEFT('\uE024'),
|
||||
CHEVRON_RIGHT('\uE025'),
|
||||
PERSON_CIRCLE('\uE05E'),
|
||||
LOCK('\uE041')
|
||||
|
||||
@@ -47,6 +47,7 @@ import org.thoughtcrime.securesms.util.BottomSheetUtil
|
||||
import org.thoughtcrime.securesms.util.ContextUtil
|
||||
import org.thoughtcrime.securesms.util.SpanUtil
|
||||
import org.thoughtcrime.securesms.util.ThemeUtil
|
||||
import org.thoughtcrime.securesms.util.ViewUtil
|
||||
import org.thoughtcrime.securesms.util.WindowUtil
|
||||
import org.thoughtcrime.securesms.util.visible
|
||||
|
||||
@@ -234,16 +235,20 @@ class RecipientBottomSheetDialogFragment : BottomSheetDialogFragment() {
|
||||
}
|
||||
|
||||
if (!recipient.isSelf && recipient.isIndividual) {
|
||||
val isLtr = ViewUtil.isLtr(view)
|
||||
val chevronGlyph = SignalSymbols.getSpannedString(
|
||||
requireContext(),
|
||||
SignalSymbols.Weight.BOLD,
|
||||
SignalSymbols.Glyph.CHEVRON_RIGHT
|
||||
if (isLtr) SignalSymbols.Glyph.CHEVRON_RIGHT else SignalSymbols.Glyph.CHEVRON_LEFT
|
||||
)
|
||||
|
||||
nameBuilder.append(" ")
|
||||
nameBuilder.append(
|
||||
SpanUtil.color(ContextCompat.getColor(requireContext(), R.color.signal_colorOutline), SpanUtil.ofSize(chevronGlyph, 24))
|
||||
)
|
||||
if (isLtr) {
|
||||
nameBuilder.append(" ")
|
||||
nameBuilder.append(SpanUtil.color(ContextCompat.getColor(requireContext(), R.color.signal_colorOutline), SpanUtil.ofSize(chevronGlyph, 24)))
|
||||
} else {
|
||||
nameBuilder.insert(0, " ")
|
||||
nameBuilder.insert(0, SpanUtil.color(ContextCompat.getColor(requireContext(), R.color.signal_colorOutline), SpanUtil.ofSize(chevronGlyph, 24)))
|
||||
}
|
||||
|
||||
fullName.text = nameBuilder
|
||||
fullName.setOnClickListener {
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
android:width="16dp"
|
||||
android:height="16dp"
|
||||
android:viewportWidth="16"
|
||||
android:viewportHeight="16">
|
||||
android:viewportHeight="16"
|
||||
android:autoMirrored="true">
|
||||
<path
|
||||
android:pathData="M5.47,2.47a0.75,0.75 0,0 1,1.06 0l5,5a0.75,0.75 0,0 1,0 1.06l-5,5a0.75,0.75 0,0 1,-1.06 -1.06L9.94,8 5.47,3.53a0.75,0.75 0,0 1,0 -1.06Z"
|
||||
android:fillColor="#000"/>
|
||||
|
||||
Reference in New Issue
Block a user