diff --git a/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayer.java b/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayer.java index 0e7ce37a0..3f09cc94f 100644 --- a/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayer.java +++ b/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayer.java @@ -168,6 +168,10 @@ void hide() { } } + boolean isHidden() { + return isHidden; + } + void updateForegroundOffset(double tilt) { JsonArray foregroundJsonArray = new JsonArray(); foregroundJsonArray.add(0f); diff --git a/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerPlugin.java b/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerPlugin.java index f599b8bf7..d6f57bdea 100644 --- a/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerPlugin.java +++ b/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerPlugin.java @@ -830,9 +830,7 @@ private void updateLocation(final Location location, boolean fromLastLocation) { return; } - if (isEnabled && isPluginStarted) { - locationLayer.show(); - } + showLocationLayerIfHidden(); if (!fromLastLocation) { staleStateManager.updateLatestLocationTime(); @@ -844,6 +842,13 @@ private void updateLocation(final Location location, boolean fromLastLocation) { lastLocation = location; } + private void showLocationLayerIfHidden() { + boolean isLocationLayerHidden = locationLayer.isHidden(); + if (isEnabled && isPluginStarted && isLocationLayerHidden) { + locationLayer.show(); + } + } + private void updateCompassHeading(float heading) { pluginAnimatorCoordinator.feedNewCompassBearing(heading, mapboxMap.getCameraPosition()); }