Skip to content

Instantly share code, notes, and snippets.

View luciofm's full-sized avatar

Lucio Maciel luciofm

View GitHub Profile
@luciofm
luciofm / Pager.java
Created November 4, 2015 16:22 — forked from mttkay/Pager.java
A simple Rx based pager
public class Pager<I, O> {
private static final Observable FINISH_SEQUENCE = Observable.never();
private PublishSubject<Observable<I>> pages;
private Observable<I> nextPage = finish();
private Subscription subscription = Subscriptions.empty();
private final PagingFunction<I> pagingFunction;
private final Func1<I, O> pageTransformer;
E Process: org.lucasr.twowayview.sample, PID: 7606
E java.lang.NullPointerException: Attempt to read from field 'int org.lucasr.twowayview.widget.TWSpannableGridLayoutManager$SpannableItemEntry.rowSpan' on a
null object reference
E at org.lucasr.twowayview.widget.TWSpannableGridLayoutManager$SpannableItemEntry.access$100(TWSpannableGridLayoutManager.java:40)
E at org.lucasr.twowayview.widget.TWSpannableGridLayoutManager.getFirstChildCountInLanes(TWSpannableGridLayoutManager.java:223)
E at org.lucasr.twowayview.widget.TWSpannableGridLayoutManager.moveLayoutToPosition(TWSpannableGridLayoutManager.java:262)
E at org.lucasr.twowayview.widget.TWLanedLayoutManager.onLayoutChildren(TWLanedLayoutManager.java:236)
E at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:1461)
E at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:1600)
E at android.view.View.layout(View.java:15273)
diff --git a/library/src/main/java/org/lucasr/twowayview/TWSpannableGridLayoutManager.java b/library/src/main/java/org/lucasr/twowayview/TWSpannableGridLayoutManager.java
index e631060..d6956ff 100644
--- a/library/src/main/java/org/lucasr/twowayview/TWSpannableGridLayoutManager.java
+++ b/library/src/main/java/org/lucasr/twowayview/TWSpannableGridLayoutManager.java
@@ -218,6 +218,8 @@ public class TWSpannableGridLayoutManager extends TWGridLayoutManager {
int childCount = 0, i = 0;
while (i < itemCount && i < laneCount) {
SpannableItemEntry entry = (SpannableItemEntry) getItemEntryForPosition(i);
+ if (entry == null)
+ break;