12
12
13
13
import bttv .settings .Settings ;
14
14
import tv .twitch .android .app .core .ThemeManager ;
15
+ import tv .twitch .android .shared .chat .adapter .item .ChatMessageViewHolder ;
15
16
import tv .twitch .android .shared .chat .chomments .ChommentRecyclerItem .ChommentItemViewHolder ;
16
17
import tv .twitch .android .shared .chat .messagefactory .adapteritem .UserNoticeRecyclerItem .UserNoticeViewHolder ;
17
18
@@ -49,7 +50,8 @@ public static void setBackgroundColor(int position, RecyclerView.ViewHolder view
49
50
// so make sure not to do anything when
50
51
// not a ViewHolder used in Chat
51
52
if (
52
- !(viewHolder instanceof ChommentItemViewHolder )
53
+ !(viewHolder instanceof ChatMessageViewHolder )
54
+ && !(viewHolder instanceof ChommentItemViewHolder )
53
55
&& !(viewHolder instanceof UserNoticeViewHolder )
54
56
) {
55
57
Log .i (TAG , "viewHolder is not known: " + viewHolder .toString ());
@@ -59,11 +61,26 @@ public static void setBackgroundColor(int position, RecyclerView.ViewHolder view
59
61
Context context = view .getContext ();
60
62
61
63
// make sure we only change chat message items
64
+ // Other elements like redeems or Sub Anniversaries are ConstraintLayouts
65
+
66
+ // If view is a LinearLayout, check the childrens to find chat_message_item
67
+ if (view instanceof LinearLayout ) {
68
+ Log .d (TAG , "view is LinearLayout: " + view .toString ());
69
+ LinearLayout linearLayout = (LinearLayout ) view ;
70
+ for (int j = 0 ; j < linearLayout .getChildCount (); j ++) {
71
+ View nestedChild = linearLayout .getChildAt (j );
72
+ if (nestedChild .getId () == ResUtil .getResourceId (context , "chat_message_item" , "id" )) {
73
+ Log .d (TAG , "found chat_message_item: " + nestedChild .toString ());
74
+ view = nestedChild ;
75
+ break ;
76
+ }
77
+ }
78
+ }
62
79
boolean hasChatMessageId = view .getId () == ResUtil .getResourceId (context , "chat_message_item" , "id" );
63
80
boolean hasChommentRootId = view .getId () == ResUtil .getResourceId (context , "chomment_root_view" , "id" );
64
81
65
- if (!hasChatMessageId && ! hasChommentRootId ) {
66
- Log .i (TAG , "view skipped, as it's not a chat message or chomment" + viewHolder .toString ());
82
+ if (!( hasChatMessageId || hasChommentRootId ) ) {
83
+ Log .i (TAG , "view skipped, as it's not a chat message or chomment, " + viewHolder .toString () + " ID: " + view . getId () + " View: " + view . toString () + " Expected ID: " + ResUtil . getResourceId ( context , "chat_message_item" , "id" ) + " or " + ResUtil . getResourceId ( context , "chomment_root_view" , "id" ));
67
84
reset (view );
68
85
return ;
69
86
}
0 commit comments