From 11a21b78375fde99c9178d568471121e6732c5b4 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Sun, 21 May 2023 13:13:27 -0500 Subject: [PATCH] Colour code conversations by account When multi-account --- .../conversations/ui/adapter/AccountAdapter.java | 8 ++++++++ .../ui/adapter/ConversationAdapter.java | 12 ++++++------ src/main/res/layout/account_row.xml | 8 +++++++- src/main/res/layout/conversation_list_row.xml | 6 +++--- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java index b070a63bbfdeb4632af624f92c1ec13aee95deb6..f8f8ee2ce947f9d812dfcc825d4f437ae7b17f93 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java @@ -6,6 +6,7 @@ import android.view.ViewGroup; import android.widget.ArrayAdapter; import androidx.annotation.NonNull; +import androidx.core.graphics.ColorUtils; import androidx.databinding.DataBindingUtil; import java.util.List; @@ -17,6 +18,7 @@ import eu.siacs.conversations.entities.Account; import eu.siacs.conversations.ui.XmppActivity; import eu.siacs.conversations.ui.util.AvatarWorkerTask; import eu.siacs.conversations.ui.util.StyledAttributes; +import eu.siacs.conversations.utils.UIHelper; public class AccountAdapter extends ArrayAdapter { @@ -79,6 +81,12 @@ public class AccountAdapter extends ArrayAdapter { ((OnTglAccountState) activity).onClickTglAccountState(account, b); } }); + if (activity.xmppConnectionService != null && activity.xmppConnectionService.getAccounts().size() > 1) { + viewHolder.binding.frame.setBackgroundColor(ColorUtils.setAlphaComponent( + UIHelper.getColorForName(account.getJid().asBareJid().toString()), + activity.isDarkTheme() ? 20 : 10 + )); + } return view; } diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java index b273883213c8eb347f93347aaf56a617c48197d2..6c2c3ccb207697f3c72abefea3025310526ecf77 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java @@ -8,6 +8,7 @@ import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; +import androidx.core.graphics.ColorUtils; import androidx.databinding.DataBindingUtil; import androidx.recyclerview.widget.RecyclerView; @@ -68,12 +69,11 @@ public class ConversationAdapter viewHolder.binding.conversationName.setText(name); } - if (conversation == ConversationFragment.getConversation(activity)) { - viewHolder.binding.frame.setBackgroundColor( - StyledAttributes.getColor(activity, R.attr.color_background_tertiary)); - } else { - viewHolder.binding.frame.setBackgroundColor( - StyledAttributes.getColor(activity, R.attr.color_background_primary)); + if (activity.xmppConnectionService != null && activity.xmppConnectionService.getAccounts().size() > 1) { + viewHolder.binding.frame.setBackgroundColor(ColorUtils.setAlphaComponent( + UIHelper.getColorForName(conversation.getAccount().getJid().asBareJid().toString()), + activity.isDarkTheme() ? 20 : 10 + )); } Message message = conversation.getLatestMessage(); diff --git a/src/main/res/layout/account_row.xml b/src/main/res/layout/account_row.xml index 010bbd4be7181ad82fd59ddf54e05270c9d4552f..bbc09b028e75ad1f6ec02f287f4e7110e271ff92 100644 --- a/src/main/res/layout/account_row.xml +++ b/src/main/res/layout/account_row.xml @@ -2,10 +2,15 @@ + + @@ -56,4 +61,5 @@ android:focusable="false" /> + diff --git a/src/main/res/layout/conversation_list_row.xml b/src/main/res/layout/conversation_list_row.xml index c592080792bc2acb81347f6ff560813bdd13b967..d85fc8ec2799b7ebc116d77570e8e1c800d82fc7 100644 --- a/src/main/res/layout/conversation_list_row.xml +++ b/src/main/res/layout/conversation_list_row.xml @@ -4,13 +4,13 @@ + android:descendantFocusability="blocksDescendants" + android:background="?attr/color_background_primary"> + android:layout_height="wrap_content">