From 51d604d06825d87db406b83876173589480c4cf2 Mon Sep 17 00:00:00 2001 From: Josephine Lim Date: Mon, 22 Aug 2022 23:53:52 +1000 Subject: [PATCH] Revert "Add prompt before asking for location in Nearby and Explore Maps (#5034)" This reverts commit 9efafc8e1ff62c5ad8bcd972d9284c6e13501016. --- app/build.gradle | 2 +- .../explore/map/ExploreMapFragment.java | 22 +------------ .../fragments/NearbyParentFragment.java | 32 ++++--------------- .../nrw/commons/utils/PermissionUtils.java | 13 +++++++- app/src/main/res/values/strings.xml | 3 +- 5 files changed, 22 insertions(+), 50 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index a9fba0796..f59878ab5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,7 @@ dependencies { implementation 'com.mapbox.mapboxsdk:mapbox-android-telemetry:7.0.0' implementation 'com.github.deano2390:MaterialShowcaseView:1.2.0' implementation 'com.dinuscxj:circleprogressbar:1.1.1' - implementation 'com.karumi:dexter:6.2.3' + implementation 'com.karumi:dexter:5.0.0' implementation "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION" implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' diff --git a/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java b/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java index b2145d59a..83a2d14dd 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java @@ -31,7 +31,6 @@ import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.AppCompatTextView; import butterknife.BindView; import butterknife.ButterKnife; @@ -111,7 +110,6 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment private Marker currentLocationMarker; private Polygon currentLocationPolygon; IntentFilter intentFilter = new IntentFilter(MapUtils.NETWORK_INTENT_ACTION); - private AlertDialog locationDialog; @Inject LiveDataConverter liveDataConverter; @@ -402,27 +400,9 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment @Override public void checkPermissionsAndPerformAction() { Timber.d("Checking permission and perfoming action"); - if (PermissionUtils.hasPermission(getActivity(), - Manifest.permission.ACCESS_FINE_LOCATION)) { - Timber.d("Permission granted"); - getPermissions(); - } else { - if (locationDialog == null) { - locationDialog = new AlertDialog.Builder(requireActivity()) - .setTitle(R.string.location_permission_title) - .setMessage(R.string.location_permission_rationale_nearby) - .setPositiveButton(R.string.ok, (dialog, which) -> { - dialog.dismiss(); - getPermissions(); - }).show(); - } - } - } - - private void getPermissions() { PermissionUtils.checkPermissionsAndPerformAction(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION, - this::locationPermissionGranted, + () -> locationPermissionGranted(), () -> isPermissionDenied = true, R.string.location_permission_title, R.string.location_permission_rationale_nearby); diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java index b30e0f349..6fd89a989 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java @@ -241,7 +241,6 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment private PlaceAdapter adapter; private NearbyParentFragmentInstanceReadyCallback nearbyParentFragmentInstanceReadyCallback; private boolean isAdvancedQueryFragmentVisible = false; - private AlertDialog locationDialog; /** * Holds filtered markers that are to be shown @@ -439,7 +438,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment private void performMapReadyActions() { if (((MainActivity)getActivity()).activeFragment == ActiveFragment.NEARBY && isMapBoxReady) { - if(!applicationKvStore.getBoolean("doNotAskForLocationPermission", false)){ + if(!applicationKvStore.getBoolean("doNotAskForLocationPermission", false) || + PermissionUtils.hasPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION)){ checkPermissionsAndPerformAction(); }else{ isPermissionDenied = true; @@ -1212,30 +1212,12 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment @Override public void checkPermissionsAndPerformAction() { Timber.d("Checking permission and perfoming action"); - if (PermissionUtils.hasPermission(getActivity(), - Manifest.permission.ACCESS_FINE_LOCATION)) { - Timber.d("Permission granted"); - getPermissions(); - } else { - if (locationDialog == null) { - locationDialog = new AlertDialog.Builder(requireActivity()) - .setTitle(R.string.location_permission_title) - .setMessage(R.string.location_permission_rationale_nearby) - .setPositiveButton(R.string.ok, (dialog, which) -> { - dialog.dismiss(); - getPermissions(); - }).show(); - } - } - } - - private void getPermissions() { PermissionUtils.checkPermissionsAndPerformAction(getActivity(), - Manifest.permission.ACCESS_FINE_LOCATION, - this::locationPermissionGranted, - () -> isPermissionDenied = true, - R.string.location_permission_title, - R.string.location_permission_rationale_nearby); + Manifest.permission.ACCESS_FINE_LOCATION, + () -> locationPermissionGranted(), + () -> isPermissionDenied = true, + R.string.location_permission_title, + R.string.location_permission_rationale_nearby); } /** diff --git a/app/src/main/java/fr/free/nrw/commons/utils/PermissionUtils.java b/app/src/main/java/fr/free/nrw/commons/utils/PermissionUtils.java index 8e186cbe0..1b22fcfc0 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/PermissionUtils.java +++ b/app/src/main/java/fr/free/nrw/commons/utils/PermissionUtils.java @@ -130,7 +130,18 @@ public class PermissionUtils { @Override public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) { - token.continuePermissionRequest(); + if (rationaleTitle == -1 && rationaleMessage == -1) { + token.continuePermissionRequest(); + return; + } + DialogUtil.showAlertDialog(activity, activity.getString(rationaleTitle), + activity.getString(rationaleMessage), + activity.getString(android.R.string.ok), + activity.getString(android.R.string.cancel), + token::continuePermissionRequest, + token::cancelPermissionRequest, + null, + false); } }) .check(); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 394d31f23..8b165000d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -254,8 +254,7 @@ Copy the wikitext to the clipboard The wikitext was copied to the clipboard Nearby might not work properly, Location not available. - The Commons app collects location data to - display nearby places that need photos, even when the app is in the background. + Permission required to display a list of nearby places Directions Wikidata