Skip to content

Instantly share code, notes, and snippets.

@sewar
Created April 17, 2017 21:23
Show Gist options
  • Save sewar/6aebfd0ba606d13917d2b8e0e2cc516b to your computer and use it in GitHub Desktop.
Save sewar/6aebfd0ba606d13917d2b8e0e2cc516b to your computer and use it in GitHub Desktop.
Patch for debugging Conductor's RouterPagerAdapter which recreates controllers silently.
Index: demo/src/main/java/com/bluelinelabs/conductor/demo/controllers/PagerController.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- demo/src/main/java/com/bluelinelabs/conductor/demo/controllers/PagerController.java (revision df27bfaa3d5a2f8a552bb5ad18a3a26960647b62)
+++ demo/src/main/java/com/bluelinelabs/conductor/demo/controllers/PagerController.java (revision )
@@ -15,12 +15,13 @@
import com.bluelinelabs.conductor.support.RouterPagerAdapter;
import java.util.Locale;
+import java.util.Random;
import butterknife.BindView;
public class PagerController extends BaseController {
- private int[] PAGE_COLORS = new int[]{R.color.green_300, R.color.cyan_300, R.color.deep_purple_300, R.color.lime_300, R.color.red_300};
+ private int[] PAGE_COLORS = new int[]{R.color.green_300/*, R.color.cyan_300, R.color.deep_purple_300, R.color.lime_300, R.color.red_300*/};
@BindView(R.id.tab_layout) TabLayout tabLayout;
@BindView(R.id.view_pager) ViewPager viewPager;
@@ -32,7 +33,8 @@
@Override
public void configureRouter(@NonNull Router router, int position) {
if (!router.hasRootController()) {
- Controller page = new ChildController(String.format(Locale.getDefault(), "Child #%d (Swipe to see more)", position), PAGE_COLORS[position], true);
+ Controller page = new ChildController(String.format(Locale.getDefault(),
+ "Random(%d)", new Random().nextInt()), PAGE_COLORS[position], true);
router.setRoot(RouterTransaction.with(page));
}
}
@@ -47,11 +49,13 @@
return "Page " + position;
}
};
+ pagerAdapter.setMaxPagesToStateSave(10);
}
@Override
protected void onViewBound(@NonNull View view) {
super.onViewBound(view);
+ viewPager.setOffscreenPageLimit(10);
viewPager.setAdapter(pagerAdapter);
tabLayout.setupWithViewPager(viewPager);
}
@@ -70,7 +74,7 @@
@Override
protected String getTitle() {
- return "ViewPager Demo";
+ return "ViewPager Demo @" + hashCode();
}
}
Index: demo/src/main/java/com/bluelinelabs/conductor/demo/controllers/ChildController.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- demo/src/main/java/com/bluelinelabs/conductor/demo/controllers/ChildController.java (revision df27bfaa3d5a2f8a552bb5ad18a3a26960647b62)
+++ demo/src/main/java/com/bluelinelabs/conductor/demo/controllers/ChildController.java (revision )
@@ -44,7 +44,7 @@
protected void onViewBound(@NonNull View view) {
super.onViewBound(view);
- tvTitle.setText(getArgs().getString(KEY_TITLE));
+ tvTitle.setText(getArgs().getString(KEY_TITLE) + " @" + hashCode());
int bgColor = getArgs().getInt(KEY_BG_COLOR);
if (getArgs().getBoolean(KEY_COLOR_IS_RES)) {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment