From 9d55c1e8d732f1fa675b3e85e9b848af43baa708 Mon Sep 17 00:00:00 2001 From: Vanshika Arora <34261945+vanshikaarora@users.noreply.github.com> Date: Sat, 16 Mar 2019 21:57:25 +0530 Subject: [PATCH] Fix #2245: Correct back button behaviour from nearby fragment (#2301) --- .../nrw/commons/contributions/MainActivity.java | 15 +++++++++++---- .../free/nrw/commons/nearby/NearbyFragment.java | 6 ++++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java b/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java index bcacdac6c..465856e4e 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java @@ -269,9 +269,16 @@ public class MainActivity extends AuthenticatedActivity implements FragmentManag finish(); } } else if (getSupportFragmentManager().findFragmentByTag(nearbyFragmentTag) != null && !isContributionsFragmentVisible) { - // Meas that nearby fragment is visible (not contributions fragment) - // Set current item to contributions activity instead of closing the activity - viewPager.setCurrentItem(0); + // Means that nearby fragment is visible (not contributions fragment) + NearbyFragment nearbyFragment = (NearbyFragment) contributionsActivityPagerAdapter.getItem(1); + + if(nearbyFragment.isBottomSheetExpanded()) { + // Back should first hide the bottom sheet if it is expanded + nearbyFragment.listOptionMenuItemClicked(); + } else { + // Otherwise go back to contributions fragment + viewPager.setCurrentItem(0); + } } else { super.onBackPressed(); } @@ -347,7 +354,7 @@ public class MainActivity extends AuthenticatedActivity implements FragmentManag return true; case R.id.list_sheet: if (contributionsActivityPagerAdapter.getItem(1) != null) { - ((NearbyFragment)contributionsActivityPagerAdapter.getItem(1)).listOptionMenuIteClicked(); + ((NearbyFragment)contributionsActivityPagerAdapter.getItem(1)).listOptionMenuItemClicked(); } return true; default: diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyFragment.java index d4bc454dc..54d75710f 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyFragment.java @@ -132,14 +132,13 @@ public class NearbyFragment extends CommonsDaggerSupportFragment /** * Hide or expand bottom sheet according to states of all sheets */ - public void listOptionMenuIteClicked() { + public void listOptionMenuItemClicked() { if(bottomSheetBehavior.getState()==BottomSheetBehavior.STATE_COLLAPSED || bottomSheetBehavior.getState()==BottomSheetBehavior.STATE_HIDDEN){ bottomSheetBehaviorForDetails.setState(BottomSheetBehavior.STATE_HIDDEN); bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); }else if(bottomSheetBehavior.getState()==BottomSheetBehavior.STATE_EXPANDED){ bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); } - } /** @@ -822,6 +821,9 @@ public class NearbyFragment extends CommonsDaggerSupportFragment locationManager.unregisterLocationManager(); } } + + public boolean isBottomSheetExpanded() { return bottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED; + } }