fixed regression of not highlighting current conversation in overview. fixes #3001

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java | 10 
src/main/res/layout/conversation_list_row.xml                            |  1 
2 files changed, 9 insertions(+), 2 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java 🔗

@@ -13,6 +13,7 @@ import android.util.Pair;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.TextView;
 
@@ -24,7 +25,9 @@ import eu.siacs.conversations.R;
 import eu.siacs.conversations.entities.Conversation;
 import eu.siacs.conversations.entities.Message;
 import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.ui.ConversationFragment;
 import eu.siacs.conversations.ui.XmppActivity;
+import eu.siacs.conversations.ui.util.Color;
 import eu.siacs.conversations.ui.widget.UnreadCountCustomView;
 import eu.siacs.conversations.utils.EmojiWrapper;
 import eu.siacs.conversations.utils.IrregularUnicodeDetector;
@@ -72,8 +75,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<ConversationAdapte
 	public ConversationViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
 		LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 		View view = inflater.inflate(R.layout.conversation_list_row, parent, false);
-		ConversationViewHolder conversationViewHolder = ConversationViewHolder.get(view);
-		return conversationViewHolder;
+		return ConversationViewHolder.get(view);
 	}
 
 	@Override
@@ -93,6 +95,8 @@ public class ConversationAdapter extends RecyclerView.Adapter<ConversationAdapte
 			viewHolder.name.setText(conversation.getJid().asBareJid().toString());
 		}
 
+		viewHolder.frame.setBackgroundColor(Color.get(activity, conversation == ConversationFragment.getConversation(activity) ? R.attr.color_background_secondary : R.attr.color_background_primary));
+
 		Message message = conversation.getLatestMessage();
 		final int unreadCount = conversation.unreadCount();
 		final boolean isRead = conversation.isRead();
@@ -268,6 +272,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<ConversationAdapte
 		private ImageView notificationIcon;
 		private UnreadCountCustomView unreadCount;
 		private ImageView avatar;
+		private FrameLayout frame;
 
 		private ConversationViewHolder(View view) {
 			super(view);
@@ -277,6 +282,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<ConversationAdapte
 			ConversationViewHolder conversationViewHolder = (ConversationViewHolder) layout.getTag();
 			if (conversationViewHolder == null) {
 				conversationViewHolder = new ConversationViewHolder(layout);
+				conversationViewHolder.frame = layout.findViewById(R.id.frame);
 				conversationViewHolder.name = layout.findViewById(R.id.conversation_name);
 				conversationViewHolder.lastMessage = layout.findViewById(R.id.conversation_lastmsg);
 				conversationViewHolder.lastMessageIcon = layout.findViewById(R.id.conversation_lastmsg_img);

src/main/res/layout/conversation_list_row.xml 🔗

@@ -5,6 +5,7 @@
              android:descendantFocusability="blocksDescendants">
 
     <FrameLayout
+        android:id="@+id/frame"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:background="?attr/color_background_primary">