diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ChatColorsPalette.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ChatColorsPalette.kt index 5db0d4eee9..52a0b1c8eb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ChatColorsPalette.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ChatColorsPalette.kt @@ -185,42 +185,42 @@ object ChatColorsPalette { object Names { @JvmStatic val all = listOf( - NameColor(lightColor = 0xFFD00B0B.toInt(), darkColor = 0xFFF76E6E.toInt()), + NameColor(lightColor = 0xFF006DA3.toInt(), darkColor = 0xFF00A7FA.toInt()), + NameColor(lightColor = 0xFF007A3D.toInt(), darkColor = 0xFF00B85C.toInt()), + NameColor(lightColor = 0xFFC13215.toInt(), darkColor = 0xFFFF6F52.toInt()), + NameColor(lightColor = 0xFFB814B8.toInt(), darkColor = 0xFFF65AF6.toInt()), + NameColor(lightColor = 0xFF5B6976.toInt(), darkColor = 0xFF8BA1B6.toInt()), + NameColor(lightColor = 0xFF3D7406.toInt(), darkColor = 0xFF5EB309.toInt()), + NameColor(lightColor = 0xFFCC0066.toInt(), darkColor = 0xFFF76EB2.toInt()), + NameColor(lightColor = 0xFF2E51FF.toInt(), darkColor = 0xFF8599FF.toInt()), + NameColor(lightColor = 0xFF9C5711.toInt(), darkColor = 0xFFD5920B.toInt()), + NameColor(lightColor = 0xFF007575.toInt(), darkColor = 0xFF00B2B2.toInt()), + NameColor(lightColor = 0xFFD00B4D.toInt(), darkColor = 0xFFFF6B9C.toInt()), + NameColor(lightColor = 0xFF8F2AF4.toInt(), darkColor = 0xFFBF80FF.toInt()), + NameColor(lightColor = 0xFFD00B0B.toInt(), darkColor = 0xFFFF7070.toInt()), NameColor(lightColor = 0xFF067906.toInt(), darkColor = 0xFF0AB80A.toInt()), - NameColor(lightColor = 0xFF5151F6.toInt(), darkColor = 0xFF8B8BF9.toInt()), - NameColor(lightColor = 0xFF866118.toInt(), darkColor = 0xFFD08F0B.toInt()), - NameColor(lightColor = 0xFF067953.toInt(), darkColor = 0xFF09B37B.toInt()), - NameColor(lightColor = 0xFFA20CED.toInt(), darkColor = 0xFFCB72F8.toInt()), - NameColor(lightColor = 0xFF507406.toInt(), darkColor = 0xFF77AE09.toInt()), - NameColor(lightColor = 0xFF086DA0.toInt(), darkColor = 0xFF0DA6F2.toInt()), + NameColor(lightColor = 0xFF5151F6.toInt(), darkColor = 0xFF9494FF.toInt()), + NameColor(lightColor = 0xFF866118.toInt(), darkColor = 0xFFD68F00.toInt()), + NameColor(lightColor = 0xFF067953.toInt(), darkColor = 0xFF00B87A.toInt()), + NameColor(lightColor = 0xFFA20CED.toInt(), darkColor = 0xFFCF7CF8.toInt()), + NameColor(lightColor = 0xFF4B7000.toInt(), darkColor = 0xFF74AD00.toInt()), NameColor(lightColor = 0xFFC70A88.toInt(), darkColor = 0xFFF76EC9.toInt()), - NameColor(lightColor = 0xFFB34209.toInt(), darkColor = 0xFFF4702F.toInt()), + NameColor(lightColor = 0xFFB34209.toInt(), darkColor = 0xFFF57A3D.toInt()), NameColor(lightColor = 0xFF06792D.toInt(), darkColor = 0xFF0AB844.toInt()), - NameColor(lightColor = 0xFF7A3DF5.toInt(), darkColor = 0xFFAC86F9.toInt()), - NameColor(lightColor = 0xFF6C6C13.toInt(), darkColor = 0xFFA5A509.toInt()), - NameColor(lightColor = 0xFF067474.toInt(), darkColor = 0xFF09AEAE.toInt()), - NameColor(lightColor = 0xFFB80AB8.toInt(), darkColor = 0xFFF75FF7.toInt()), + NameColor(lightColor = 0xFF7A3DF5.toInt(), darkColor = 0xFFAF8AF9.toInt()), + NameColor(lightColor = 0xFF6B6B24.toInt(), darkColor = 0xFFA4A437.toInt()), + NameColor(lightColor = 0xFFD00B2C.toInt(), darkColor = 0xFFF77389.toInt()), NameColor(lightColor = 0xFF2D7906.toInt(), darkColor = 0xFF42B309.toInt()), - NameColor(lightColor = 0xFF0D59F2.toInt(), darkColor = 0xFF6495F7.toInt()), - NameColor(lightColor = 0xFFD00B4D.toInt(), darkColor = 0xFFF76998.toInt()), - NameColor(lightColor = 0xFFC72A0A.toInt(), darkColor = 0xFFF67055.toInt()), - NameColor(lightColor = 0xFF067919.toInt(), darkColor = 0xFF0AB827.toInt()), - NameColor(lightColor = 0xFF6447F5.toInt(), darkColor = 0xFF9986F9.toInt()), + NameColor(lightColor = 0xFFAF0BD0.toInt(), darkColor = 0xFFE06EF7.toInt()), + NameColor(lightColor = 0xFF32763E.toInt(), darkColor = 0xFF4BAF5C.toInt()), + NameColor(lightColor = 0xFF2662D9.toInt(), darkColor = 0xFF7DA1E8.toInt()), NameColor(lightColor = 0xFF76681E.toInt(), darkColor = 0xFFB89B0A.toInt()), NameColor(lightColor = 0xFF067462.toInt(), darkColor = 0xFF09B397.toInt()), - NameColor(lightColor = 0xFFAF0BD0.toInt(), darkColor = 0xFFE06EF7.toInt()), - NameColor(lightColor = 0xFF3D7406.toInt(), darkColor = 0xFF5EB309.toInt()), - NameColor(lightColor = 0xFF0A69C7.toInt(), darkColor = 0xFF429CF5.toInt()), - NameColor(lightColor = 0xFFCB0B6B.toInt(), darkColor = 0xFFF76EB2.toInt()), - NameColor(lightColor = 0xFF9C5711.toInt(), darkColor = 0xFFE97A0C.toInt()), - NameColor(lightColor = 0xFF067940.toInt(), darkColor = 0xFF09B35E.toInt()), - NameColor(lightColor = 0xFF8F2AF4.toInt(), darkColor = 0xFFBD81F8.toInt()), + NameColor(lightColor = 0xFF6447F5.toInt(), darkColor = 0xFFA18FF9.toInt()), NameColor(lightColor = 0xFF5E6E0C.toInt(), darkColor = 0xFF8FAA09.toInt()), - NameColor(lightColor = 0xFF077288.toInt(), darkColor = 0xFF0BABCB.toInt()), + NameColor(lightColor = 0xFF077288.toInt(), darkColor = 0xFF00AED1.toInt()), NameColor(lightColor = 0xFFC20AA3.toInt(), darkColor = 0xFFF75FDD.toInt()), - NameColor(lightColor = 0xFF1A7906.toInt(), darkColor = 0xFF27B80A.toInt()), - NameColor(lightColor = 0xFF3454F4.toInt(), darkColor = 0xFF778DF8.toInt()), - NameColor(lightColor = 0xFFD00B2C.toInt(), darkColor = 0xFFF76E85.toInt()) + NameColor(lightColor = 0xFF2D761E.toInt(), darkColor = 0xFF43B42D.toInt()), ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/Colorizer.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/Colorizer.kt index c3d531292d..6761593c98 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/Colorizer.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/Colorizer.kt @@ -9,6 +9,7 @@ import androidx.core.content.ContextCompat import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import org.thoughtcrime.securesms.R +import org.thoughtcrime.securesms.conversation.colors.ui.ChatColorPreviewView import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.util.Projection @@ -22,6 +23,7 @@ import org.thoughtcrime.securesms.util.Projection */ class Colorizer(private val colorizerView: ColorizerView) : RecyclerView.OnScrollListener(), View.OnLayoutChangeListener { + private var colorsHaveBeenSet = false private val groupSenderColors: MutableMap = mutableMapOf() @ColorInt @@ -40,7 +42,7 @@ class Colorizer(private val colorizerView: ColorizerView) : RecyclerView.OnScrol } @ColorInt - fun getIncomingGroupSenderColor(context: Context, recipient: Recipient): Int = groupSenderColors[recipient.id]?.getColor(context) ?: Color.TRANSPARENT + fun getIncomingGroupSenderColor(context: Context, recipient: Recipient): Int = groupSenderColors[recipient.id]?.getColor(context) ?: getDefaultColor(context, recipient.id) fun attachToRecyclerView(recyclerView: RecyclerView) { recyclerView.addOnScrollListener(this) @@ -50,6 +52,7 @@ class Colorizer(private val colorizerView: ColorizerView) : RecyclerView.OnScrol fun onNameColorsChanged(nameColorMap: Map) { groupSenderColors.clear() groupSenderColors.putAll(nameColorMap) + colorsHaveBeenSet = true } fun onChatColorsChanged(chatColors: ChatColors) { @@ -89,4 +92,15 @@ class Colorizer(private val colorizerView: ColorizerView) : RecyclerView.OnScrol colorizerView.visibility = View.GONE } } + + @ColorInt + private fun getDefaultColor(context: Context, recipientId: RecipientId): Int { + return if (colorsHaveBeenSet) { + val color = ChatColorsPalette.Names.all[groupSenderColors.size % ChatColorsPalette.Names.all.size] + groupSenderColors[recipientId] = color + return color.getColor(context) + } else { + Color.TRANSPARENT + } + } }