When location permission request is denied in NearbyActivity, instead of the NoPermissionsFragment, now an AlertDialog is shown providing options to either retry the permission request or cancel and quit the activity.

This commit is contained in:
Vishan Seru 2017-09-05 20:53:55 +05:30
parent d4a89afafd
commit 11f9511495
2 changed files with 21 additions and 4 deletions

View file

@ -2,6 +2,7 @@ package fr.free.nrw.commons.nearby;
import android.Manifest;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.LocationManager;
@ -158,15 +159,30 @@ public class NearbyActivity extends NavigationBaseActivity {
if (progressBar != null) {
progressBar.setVisibility(View.GONE);
}
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
Fragment noPermissionsFragment = new NoPermissionsFragment();
fragmentTransaction.replace(R.id.container, noPermissionsFragment);
fragmentTransaction.commit();
showLocationPermissionDeniedErrorDialog();
}
}
}
}
private void showLocationPermissionDeniedErrorDialog() {
new AlertDialog.Builder(this)
.setMessage(R.string.nearby_needs_permissions)
.setCancelable(false)
.setPositiveButton(R.string.give_permission, (dialog, which) -> {
//will ask for the location permission again
checkLocationPermission();
})
.setNegativeButton(R.string.cancel, (dialog, which) -> {
//dismiss dialog and finish activity
dialog.cancel();
finish();
})
.create()
.show();
}
private void checkGps() {
LocationManager manager = (LocationManager) getSystemService(LOCATION_SERVICE);
if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {