@@ -79,7 +79,7 @@ public class InfoListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
7979
8080 private final LayoutInflater layoutInflater ;
8181 private final InfoItemBuilder infoItemBuilder ;
82- private final ArrayList <InfoItem > infoItemList ;
82+ private final List <InfoItem > infoItemList ;
8383 private final HistoryRecordManager recordManager ;
8484
8585 private boolean useMiniVariant = false ;
@@ -134,7 +134,7 @@ public void addInfoItemList(@Nullable final List<? extends InfoItem> data) {
134134 if (DEBUG ) {
135135 Log .d (TAG , "addInfoItemList() after > offsetStart = " + offsetStart + ", "
136136 + "infoItemList.size() = " + infoItemList .size () + ", "
137- + "header = " + hasHeader () + ", "
137+ + "hasHeader = " + hasHeader () + ", "
138138 + "showFooter = " + showFooter );
139139 }
140140 notifyItemRangeInserted (offsetStart , data .size ());
@@ -211,7 +211,7 @@ public int getItemCount() {
211211 if (DEBUG ) {
212212 Log .d (TAG , "getItemCount() called with: "
213213 + "count = " + count + ", infoItemList.size() = " + infoItemList .size () + ", "
214- + "header = " + hasHeader () + ", "
214+ + "hasHeader = " + hasHeader () + ", "
215215 + "showFooter = " + showFooter );
216216 }
217217 return count ;
@@ -296,28 +296,26 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull final ViewGroup paren
296296 }
297297 }
298298
299- @ SuppressWarnings ("FinalParameters" )
300299 @ Override
301- public void onBindViewHolder (@ NonNull final RecyclerView .ViewHolder holder , int position ) {
300+ public void onBindViewHolder (@ NonNull final RecyclerView .ViewHolder holder ,
301+ final int position ) {
302302 if (DEBUG ) {
303303 Log .d (TAG , "onBindViewHolder() called with: "
304304 + "holder = [" + holder .getClass ().getSimpleName () + "], "
305305 + "position = [" + position + "]" );
306306 }
307307 if (holder instanceof InfoItemHolder ) {
308- // If header isn't null, offset the items by -1
309- if (hasHeader ()) {
310- position --;
311- }
312-
313- ((InfoItemHolder ) holder ).updateFromItem (infoItemList .get (position ), recordManager );
308+ ((InfoItemHolder ) holder ).updateFromItem (
309+ // If header is present, offset the items by -1
310+ infoItemList .get (hasHeader () ? position - 1 : position ), recordManager );
314311 }
315312 }
316313
317314 @ Override
318315 public void onBindViewHolder (@ NonNull final RecyclerView .ViewHolder holder ,
319316 final int position ,
320317 @ NonNull final List <Object > payloads ) {
318+ // an empty payload requires a full update (see RecyclerView javadoc)
321319 if (payloads .isEmpty () || !(holder instanceof InfoItemHolder )) {
322320 onBindViewHolder (holder , position );
323321 return ;
0 commit comments