Index: chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunPagerAdapter.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunPagerAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunPagerAdapter.java |
index 79cb987570f63670ef61505e33ce530308178d25..5de1eba4005951234f78d3f9adb3d1d09366ec22 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunPagerAdapter.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunPagerAdapter.java |
@@ -68,8 +68,11 @@ class FirstRunPagerAdapter extends FragmentStatePagerAdapter { |
@Override |
public int getItemPosition(Object object) { |
- // We do not keep track of constructed objects, but we want the pages to be recreated |
- // on notifyDataSetChanged. Hence, tell the view that it needs to refresh the objects. |
+ // Each page can specify whether it should be re-created or not on a notifyDataSetChanged. |
+ if (object instanceof FirstRunPage) { |
+ FirstRunPage page = (FirstRunPage) object; |
+ return page.shouldRecreatePageOnDataChange() ? POSITION_NONE : POSITION_UNCHANGED; |
+ } |
return POSITION_NONE; |
} |
-} |
+} |