Revert "Add prompt before asking for location in Nearby and Explore Maps (#5034)"

This reverts commit 9efafc8e1f.
This commit is contained in:
Josephine Lim 2022-08-22 23:53:52 +10:00
parent 9b9521a034
commit 51d604d068
5 changed files with 22 additions and 50 deletions

View file

@ -44,7 +44,7 @@ dependencies {
implementation 'com.mapbox.mapboxsdk:mapbox-android-telemetry:7.0.0' implementation 'com.mapbox.mapboxsdk:mapbox-android-telemetry:7.0.0'
implementation 'com.github.deano2390:MaterialShowcaseView:1.2.0' implementation 'com.github.deano2390:MaterialShowcaseView:1.2.0'
implementation 'com.dinuscxj:circleprogressbar:1.1.1' 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 "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION"
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'

View file

@ -31,7 +31,6 @@ import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.AppCompatTextView; import androidx.appcompat.widget.AppCompatTextView;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
@ -111,7 +110,6 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
private Marker currentLocationMarker; private Marker currentLocationMarker;
private Polygon currentLocationPolygon; private Polygon currentLocationPolygon;
IntentFilter intentFilter = new IntentFilter(MapUtils.NETWORK_INTENT_ACTION); IntentFilter intentFilter = new IntentFilter(MapUtils.NETWORK_INTENT_ACTION);
private AlertDialog locationDialog;
@Inject @Inject
LiveDataConverter liveDataConverter; LiveDataConverter liveDataConverter;
@ -402,27 +400,9 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
@Override @Override
public void checkPermissionsAndPerformAction() { public void checkPermissionsAndPerformAction() {
Timber.d("Checking permission and perfoming action"); 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(), PermissionUtils.checkPermissionsAndPerformAction(getActivity(),
Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION,
this::locationPermissionGranted, () -> locationPermissionGranted(),
() -> isPermissionDenied = true, () -> isPermissionDenied = true,
R.string.location_permission_title, R.string.location_permission_title,
R.string.location_permission_rationale_nearby); R.string.location_permission_rationale_nearby);

View file

@ -241,7 +241,6 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
private PlaceAdapter adapter; private PlaceAdapter adapter;
private NearbyParentFragmentInstanceReadyCallback nearbyParentFragmentInstanceReadyCallback; private NearbyParentFragmentInstanceReadyCallback nearbyParentFragmentInstanceReadyCallback;
private boolean isAdvancedQueryFragmentVisible = false; private boolean isAdvancedQueryFragmentVisible = false;
private AlertDialog locationDialog;
/** /**
* Holds filtered markers that are to be shown * Holds filtered markers that are to be shown
@ -439,7 +438,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
private void performMapReadyActions() { private void performMapReadyActions() {
if (((MainActivity)getActivity()).activeFragment == ActiveFragment.NEARBY && isMapBoxReady) { 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(); checkPermissionsAndPerformAction();
}else{ }else{
isPermissionDenied = true; isPermissionDenied = true;
@ -1212,30 +1212,12 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
@Override @Override
public void checkPermissionsAndPerformAction() { public void checkPermissionsAndPerformAction() {
Timber.d("Checking permission and perfoming action"); 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(), PermissionUtils.checkPermissionsAndPerformAction(getActivity(),
Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION,
this::locationPermissionGranted, () -> locationPermissionGranted(),
() -> isPermissionDenied = true, () -> isPermissionDenied = true,
R.string.location_permission_title, R.string.location_permission_title,
R.string.location_permission_rationale_nearby); R.string.location_permission_rationale_nearby);
} }
/** /**

View file

@ -130,7 +130,18 @@ public class PermissionUtils {
@Override @Override
public void onPermissionRationaleShouldBeShown(PermissionRequest permission, public void onPermissionRationaleShouldBeShown(PermissionRequest permission,
PermissionToken token) { 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(); .check();

View file

@ -254,8 +254,7 @@
<string name="copy_wikicode">Copy the wikitext to the clipboard</string> <string name="copy_wikicode">Copy the wikitext to the clipboard</string>
<string name="wikicode_copied">The wikitext was copied to the clipboard</string> <string name="wikicode_copied">The wikitext was copied to the clipboard</string>
<string name="nearby_location_not_available">Nearby might not work properly, Location not available.</string> <string name="nearby_location_not_available">Nearby might not work properly, Location not available.</string>
<string name="location_permission_rationale_nearby">The Commons app collects location data to <string name="location_permission_rationale_nearby">Permission required to display a list of nearby places</string>
display nearby places that need photos, even when the app is in the background.</string>
<string name="nearby_directions">Directions</string> <string name="nearby_directions">Directions</string>
<string name="nearby_wikidata">Wikidata</string> <string name="nearby_wikidata">Wikidata</string>