diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/mvp/fragments/NearbyParentFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/mvp/fragments/NearbyParentFragment.java index 0d8dde8ae..abcee0ea6 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/mvp/fragments/NearbyParentFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/mvp/fragments/NearbyParentFragment.java @@ -78,6 +78,35 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment return view; } + @Override + public void onResume() { + super.onResume(); + resumeFragment(); + } + + /** + * Resume fragments if they exists + */ + private void resumeFragment() { + // Find the retained fragment on activity restarts + nearbyMapFragment = getMapFragment(); + nearbyListFragment = getListFragment(); + } + + /** + * Returns the map fragment added to child fragment manager previously, if exists. + */ + private NearbyMapFragment getMapFragment() { + return (NearbyMapFragment) getChildFragmentManager().findFragmentByTag(TAG_RETAINED_MAP_FRAGMENT); + } + + /** + * Returns the list fragment added to child fragment manager previously, if exists. + */ + private NearbyListFragment getListFragment() { + return (NearbyListFragment) getChildFragmentManager().findFragmentByTag(TAG_RETAINED_LIST_FRAGMENT); + } + @Override public void onLocationChangedSignificantly(LatLng latLng) {