Navigation now car request location permission.
This commit is contained in:
parent
d044d5f850
commit
d199406c75
2 changed files with 84 additions and 63 deletions
|
@ -1058,6 +1058,10 @@ public class MapActivity extends AccessibleActivity implements DownloadEvents,
|
|||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
|
||||
OsmandPlugin.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
|
||||
MapControlsLayer mcl = mapView.getLayerByClass(MapControlsLayer.class);
|
||||
if (mcl != null) {
|
||||
mcl.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
}
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.Manifest;
|
|||
import android.annotation.SuppressLint;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.ColorFilter;
|
||||
|
@ -57,6 +58,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
|||
|
||||
private static final int TIMEOUT_TO_SHOW_BUTTONS = 7000;
|
||||
public static final int REQUEST_ADDRESS_SELECT = 2;
|
||||
private static final int REQUEST_LOCATION_FOR_NAVIGATION_PERMISSION = 200;
|
||||
|
||||
public MapHudButton createHudButton(View iv, int resId) {
|
||||
MapHudButton mc = new MapHudButton();
|
||||
|
@ -459,6 +461,18 @@ public class MapControlsLayer extends OsmandMapLayer {
|
|||
routePlanButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (OsmAndLocationProvider.isLocationPermissionAvailable(mapActivity)) {
|
||||
onNavigationClick();
|
||||
} else {
|
||||
ActivityCompat.requestPermissions(mapActivity,
|
||||
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
|
||||
REQUEST_LOCATION_FOR_NAVIGATION_PERMISSION);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void onNavigationClick() {
|
||||
notifyClicked();
|
||||
RoutingHelper routingHelper = mapActivity.getRoutingHelper();
|
||||
if (!routingHelper.isFollowingMode() && !routingHelper.isRoutePlanningMode()) {
|
||||
|
@ -467,8 +481,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
|||
switchToRoutePlanningLayout();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public void switchToRouteFollowingLayout() {
|
||||
|
@ -545,7 +557,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
|||
}
|
||||
|
||||
|
||||
|
||||
private void stopCounter() {
|
||||
startCounter = 0;
|
||||
|
||||
|
@ -594,7 +605,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
|||
}
|
||||
|
||||
|
||||
|
||||
private void updateControls(@NonNull RotatedTileBox tileBox, DrawSettings nightMode) {
|
||||
boolean isNight = nightMode != null && nightMode.isNightMode();
|
||||
int shadw = isNight ? Color.TRANSPARENT : Color.WHITE;
|
||||
|
@ -1030,4 +1040,11 @@ public class MapControlsLayer extends OsmandMapLayer {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
|
||||
if (requestCode == REQUEST_LOCATION_FOR_NAVIGATION_PERMISSION
|
||||
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
onNavigationClick();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue