Skip to content

Commit

Permalink
Fix commons-app#5276: improve the media location access dialog strings
Browse files Browse the repository at this point in the history
Modify the sequence of displaying dialogues
  • Loading branch information
1911-revo committed Oct 28, 2023
1 parent 6b8954b commit 3a94b54
Showing 1 changed file with 15 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -268,30 +268,13 @@ public void onActivityResult(Map<String, Boolean> result) {
private ActivityResultLauncher<String[]> locationPermissionLauncher = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), new ActivityResultCallback<Map<String, Boolean>>() {
@Override
public void onActivityResult(Map<String, Boolean> result) {
boolean areAllGranted = true;
for (final boolean b : result.values()) {
areAllGranted = areAllGranted && b;
}

if (areAllGranted) {
locationPermissionGranted();
} else {
if (shouldShowRequestPermissionRationale(permission.ACCESS_FINE_LOCATION)) {
DialogUtil.showAlertDialog(getActivity(), getActivity().getString(R.string.location_permission_title),
getActivity().getString(R.string.location_permission_rationale_nearby),
getActivity().getString(android.R.string.ok),
getActivity().getString(android.R.string.cancel),
() -> {
if (!(locationManager.isNetworkProviderEnabled() || locationManager.isGPSProviderEnabled())) {
showLocationOffDialog();
}
},
() -> isPermissionDenied = true,
null,
false);
} else {
isPermissionDenied = true;
if (shouldShowRequestPermissionRationale(permission.ACCESS_FINE_LOCATION)) {
if (!(locationManager.isNetworkProviderEnabled() || locationManager.isGPSProviderEnabled())) {
showLocationOffDialog();
}
} else {
isPermissionDenied = true;
}
}
});
Expand Down Expand Up @@ -1268,7 +1251,16 @@ public void setTabItemContributions() {
@Override
public void checkPermissionsAndPerformAction() {
Timber.d("Checking permission and perfoming action");
locationPermissionLauncher.launch(new String[]{permission.ACCESS_FINE_LOCATION});
DialogUtil.showAlertDialog(getActivity(), getActivity().getString(R.string.location_permission_title),
getActivity().getString(R.string.location_permission_rationale_nearby),
getActivity().getString(android.R.string.ok),
getActivity().getString(android.R.string.cancel),
() -> {
locationPermissionLauncher.launch(new String[]{permission.ACCESS_FINE_LOCATION});
},
() -> isPermissionDenied = true,
null,
false);
}

/**
Expand Down

0 comments on commit 3a94b54

Please sign in to comment.