From 6cba1556ab84973bbc7333d38400d898dbd80afd Mon Sep 17 00:00:00 2001 From: YuviPanda Date: Mon, 25 Feb 2013 17:43:22 +0530 Subject: [PATCH] Horrible hack to keep page state during screen rotates --- .../commons/media/MediaDetailPagerFragment.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/commons/src/main/java/org/wikimedia/commons/media/MediaDetailPagerFragment.java b/commons/src/main/java/org/wikimedia/commons/media/MediaDetailPagerFragment.java index 13107e52b..e3ea0f8c4 100644 --- a/commons/src/main/java/org/wikimedia/commons/media/MediaDetailPagerFragment.java +++ b/commons/src/main/java/org/wikimedia/commons/media/MediaDetailPagerFragment.java @@ -49,9 +49,25 @@ public class MediaDetailPagerFragment extends SherlockFragment { View view = inflater.inflate(R.layout.fragment_media_detail_pager, container, false); pager = (ViewPager) view.findViewById(R.id.mediaDetailsPager); pager.setAdapter(new MediaDetailAdapter(getChildFragmentManager())); + if(savedInstanceState != null) { + final int pageNumber = savedInstanceState.getInt("current-page"); + // Adapter doesn't seem to be loading immediately. + // Dear God, please forgive us for our sins + view.postDelayed(new Runnable() { + public void run() { + pager.setCurrentItem(pageNumber, false); + } + }, 100); + } return view; } + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putInt("current-page", pager.getCurrentItem()); + } + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);