8
8
import android .support .annotation .ColorInt ;
9
9
import android .support .v4 .content .ContextCompat ;
10
10
import android .support .v4 .view .ViewCompat ;
11
+ import android .support .v7 .app .AppCompatDelegate ;
11
12
import android .support .v7 .widget .RecyclerView ;
12
13
import android .util .Log ;
13
14
import android .text .format .DateUtils ;
@@ -56,12 +57,17 @@ public class RecyclerMessageAdapter extends RecyclerView.Adapter<RecyclerView.Vi
56
57
int mDefaultStreamHeaderColor ;
57
58
58
59
@ ColorInt
59
- private int mDefaultPrivateMessageColor ;
60
+ private int streamMessageBackground ;
61
+
62
+ @ ColorInt
63
+ private int privateMessageBackground ;
60
64
private OnItemClickListener onItemClickListener ;
61
65
private int contextMenuItemSelectedPosition ;
62
66
private View footerView ;
63
67
private View headerView ;
64
68
69
+ private boolean isCurrentThemeNight ;
70
+
65
71
int getContextMenuItemSelectedPosition () {
66
72
return contextMenuItemSelectedPosition ;
67
73
}
@@ -73,8 +79,11 @@ int getContextMenuItemSelectedPosition() {
73
79
this .context = context ;
74
80
narrowListener = (NarrowListener ) context ;
75
81
this .startedFromFilter = startedFromFilter ;
82
+ isCurrentThemeNight = (AppCompatDelegate .getDefaultNightMode () == AppCompatDelegate .MODE_NIGHT_YES );
76
83
mDefaultStreamHeaderColor = ContextCompat .getColor (context , R .color .stream_header );
77
- mDefaultPrivateMessageColor = ContextCompat .getColor (context , R .color .huddle_body );
84
+ privateMessageBackground = ContextCompat .getColor (context , R .color .private_background );
85
+ streamMessageBackground = ContextCompat .getColor (context , R .color .stream_background );
86
+
78
87
privateHuddleText = context .getResources ().getString (R .string .huddle_text );
79
88
setupHeaderAndFooterViews ();
80
89
onItemClickListener = new OnItemClickListener () {
@@ -183,7 +192,7 @@ else if (getItem(position) instanceof Integer && (Integer) getItem(position) ==
183
192
return VIEWTYPE_FOOTER ;
184
193
else {
185
194
Log .e ("ItemError" , "object: " + items .get (position ).toString ());
186
- throw new RuntimeException ("MESSAGE TYPE NOT KNOWN & Position:" + position );
195
+ throw new RuntimeException ("MESSAGE TYPE NOT KNOWN & Position:" + position );
187
196
}
188
197
}
189
198
@@ -254,6 +263,9 @@ public RecyclerView.ViewHolder onCreateViewHolder(final ViewGroup parent, int vi
254
263
View messageView = LayoutInflater .from (parent .getContext ()).inflate (R .layout .message_tile , parent , false );
255
264
MessageHolder messageHolder = new MessageHolder (messageView );
256
265
messageHolder .setItemClickListener (onItemClickListener );
266
+ if (isCurrentThemeNight ) {
267
+ messageHolder .leftBar .setVisibility (View .GONE );
268
+ }
257
269
return messageHolder ;
258
270
case VIEWTYPE_FOOTER :
259
271
footerView = LayoutInflater .from (parent .getContext ()).inflate (R .layout .list_loading , parent , false );
@@ -278,7 +290,10 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
278
290
messageHeaderHolder .streamTextView .setText (messageHeaderParent .getStream ());
279
291
messageHeaderHolder .topicTextView .setText (messageHeaderParent .getSubject ());
280
292
281
- ViewCompat .setBackgroundTintList (messageHeaderHolder .arrowHead , ColorStateList .valueOf (messageHeaderParent .getColor ()));
293
+ if (!isCurrentThemeNight ) {
294
+ messageHeaderHolder .streamTextView .setBackgroundColor (messageHeaderParent .getColor ());
295
+ ViewCompat .setBackgroundTintList (messageHeaderHolder .arrowHead , ColorStateList .valueOf (messageHeaderParent .getColor ()));
296
+ }
282
297
messageHeaderHolder .streamTextView .setBackgroundColor (messageHeaderParent .getColor ());
283
298
284
299
if (messageHeaderParent .isMute ()) {
@@ -301,12 +316,14 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
301
316
302
317
if (message .getType () == MessageType .STREAM_MESSAGE ) {
303
318
messageHolder .senderName .setText (message .getSender ().getName ());
304
- messageHolder .leftBar .setBackgroundColor (message .getStream ().getColor ());
305
- messageHolder .messageTile .setBackgroundColor (Color .WHITE );
319
+ if (!isCurrentThemeNight )
320
+ messageHolder .leftBar .setBackgroundColor (message .getStream ().getColor ());
321
+ messageHolder .messageTile .setBackgroundColor (streamMessageBackground );
306
322
} else {
307
323
messageHolder .senderName .setText (message .getSender ().getName ());
308
- messageHolder .leftBar .setBackgroundColor (mDefaultPrivateMessageColor );
309
- messageHolder .messageTile .setBackgroundColor (mDefaultPrivateMessageColor );
324
+ if (!isCurrentThemeNight )
325
+ messageHolder .leftBar .setBackgroundColor (privateMessageBackground );
326
+ messageHolder .messageTile .setBackgroundColor (privateMessageBackground );
310
327
}
311
328
312
329
setUpGravatar (message , messageHolder );
0 commit comments