Skip to content

Commit 6cba155

Browse files
committed
Horrible hack to keep page state during screen rotates
1 parent a29a07b commit 6cba155

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

commons/src/main/java/org/wikimedia/commons/media/MediaDetailPagerFragment.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,25 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
4949
View view = inflater.inflate(R.layout.fragment_media_detail_pager, container, false);
5050
pager = (ViewPager) view.findViewById(R.id.mediaDetailsPager);
5151
pager.setAdapter(new MediaDetailAdapter(getChildFragmentManager()));
52+
if(savedInstanceState != null) {
53+
final int pageNumber = savedInstanceState.getInt("current-page");
54+
// Adapter doesn't seem to be loading immediately.
55+
// Dear God, please forgive us for our sins
56+
view.postDelayed(new Runnable() {
57+
public void run() {
58+
pager.setCurrentItem(pageNumber, false);
59+
}
60+
}, 100);
61+
}
5262
return view;
5363
}
5464

65+
@Override
66+
public void onSaveInstanceState(Bundle outState) {
67+
super.onSaveInstanceState(outState);
68+
outState.putInt("current-page", pager.getCurrentItem());
69+
}
70+
5571
@Override
5672
public void onCreate(Bundle savedInstanceState) {
5773
super.onCreate(savedInstanceState);

0 commit comments

Comments
 (0)