@@ -310,10 +310,24 @@ public void selected(final CommentsInfoItem selectedItem) {
310310 onItemSelected (selectedItem );
311311 }
312312 });
313+
314+ // Ensure that there is always a scroll listener (e.g. when rotating the device)
315+ useNormalItemListScrollListener ();
316+ }
317+
318+ /**
319+ * Removes all listeners and adds the normal scroll listener to the {@link #itemsList}.
320+ */
321+ protected void useNormalItemListScrollListener () {
322+ if (DEBUG ) {
323+ Log .d (TAG , "useNormalItemListScrollListener called" );
324+ }
325+ itemsList .clearOnScrollListeners ();
326+ itemsList .addOnScrollListener (new DefaultItemListOnScrolledDownListener ());
313327 }
314328
315329 /**
316- * Remove all listeners and add the initial scroll listener to the {@link #itemsList}.
330+ * Removes all listeners and adds the initial scroll listener to the {@link #itemsList}.
317331 * <br/>
318332 * Which tries to load more items when not enough are in the view (not scrollable)
319333 * and more are available.
@@ -329,9 +343,9 @@ public void selected(final CommentsInfoItem selectedItem) {
329343 * <li>no more items can be loaded</li>
330344 * </ul>
331345 */
332- protected void setItemsListInitialScrollListener () {
346+ protected void useInitialItemListLoadScrollListener () {
333347 if (DEBUG ) {
334- Log .d (TAG , "setItemsListInitialScrollListener called" );
348+ Log .d (TAG , "useInitialItemListLoadScrollListener called" );
335349 }
336350 itemsList .clearOnScrollListeners ();
337351 itemsList .addOnScrollListener (new DefaultItemListOnScrolledDownListener () {
@@ -342,7 +356,7 @@ public void onScrolled(final RecyclerView recyclerView, final int dx, final int
342356 if (dy != 0 ) {
343357 log ("Vertical scroll occurred" );
344358
345- useNormalScrollListener ();
359+ useNormalItemListScrollListener ();
346360 return ;
347361 }
348362 if (isLoading .get ()) {
@@ -352,29 +366,24 @@ public void onScrolled(final RecyclerView recyclerView, final int dx, final int
352366 if (!hasMoreItems ()) {
353367 log ("No more items to load" );
354368
355- useNormalScrollListener ();
369+ useNormalItemListScrollListener ();
356370 return ;
357371 }
358372 if (itemsList .canScrollVertically (1 )
359373 || itemsList .canScrollVertically (-1 )) {
360374 log ("View is scrollable" );
361375
362- useNormalScrollListener ();
376+ useNormalItemListScrollListener ();
363377 return ;
364378 }
365379
366380 log ("Loading more data" );
367381 loadMoreItems ();
368382 }
369383
370- private void useNormalScrollListener () {
371- itemsList .removeOnScrollListener (this );
372- itemsList .addOnScrollListener (new DefaultItemListOnScrolledDownListener ());
373- }
374-
375384 private void log (final String msg ) {
376385 if (DEBUG ) {
377- Log .d (TAG , "itemListInitScrollListener - " + msg );
386+ Log .d (TAG , "initItemListLoadScrollListener - " + msg );
378387 }
379388 }
380389 });
@@ -476,7 +485,7 @@ public void onCreateOptionsMenu(@NonNull final Menu menu,
476485
477486 @ Override
478487 protected void startLoading (final boolean forceLoad ) {
479- setItemsListInitialScrollListener ();
488+ useInitialItemListLoadScrollListener ();
480489 super .startLoading (forceLoad );
481490 }
482491
0 commit comments