diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java index a9a2b2066..62ecf6c37 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java @@ -84,19 +84,23 @@ public class MediaDetailPagerFragment extends Fragment implements ViewPager.OnPa View view = inflater.inflate(R.layout.fragment_media_detail_pager, container, false); pager = (ViewPager) view.findViewById(R.id.mediaDetailsPager); pager.setOnPageChangeListener(this); + + final MediaDetailAdapter adapter = 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.setAdapter(new MediaDetailAdapter(getChildFragmentManager())); + pager.setAdapter(adapter); pager.setCurrentItem(pageNumber, false); getActivity().supportInvalidateOptionsMenu(); + adapter.notifyDataSetChanged(); } }, 100); } else { - pager.setAdapter(new MediaDetailAdapter(getChildFragmentManager())); + pager.setAdapter(adapter); } return view; } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/GPSExtractor.java b/app/src/main/java/fr/free/nrw/commons/upload/GPSExtractor.java index 2bf9fe79f..2f76e3149 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/GPSExtractor.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/GPSExtractor.java @@ -63,13 +63,19 @@ public class GPSExtractor { if (location != null) { myLocationListener.onLocationChanged(location); } - } catch (IllegalArgumentException e){ + } catch (IllegalArgumentException e) { Log.e(TAG, "Illegal argument exception", e); + } catch (SecurityException e) { + Log.e(TAG, "Security exception", e); } } protected void unregisterLocationManager() { - locationManager.removeUpdates(myLocationListener); + try { + locationManager.removeUpdates(myLocationListener); + } catch (SecurityException e) { + Log.e(TAG, "Security exception", e); + } } /**