[android] expose OnRenderModeChangedListener

This commit is contained in:
Łukasz Paczos
2019-01-28 15:27:10 +01:00
committed by Łukasz Paczos
parent 9830c8309e
commit 953e6dca5b
2 changed files with 24 additions and 1 deletions

View File

@@ -164,6 +164,8 @@ public final class LocationComponent {
= new CopyOnWriteArrayList<>();
private final CopyOnWriteArrayList<OnCameraTrackingChangedListener> onCameraTrackingChangedListeners
= new CopyOnWriteArrayList<>();
private final CopyOnWriteArrayList<OnRenderModeChangedListener> onRenderModeChangedListeners
= new CopyOnWriteArrayList<>();
// Workaround for too frequent updates, see https://github.com/mapbox/mapbox-gl-native/issues/13587
private long fastestInterval;
@@ -863,6 +865,24 @@ public final class LocationComponent {
onCameraTrackingChangedListeners.remove(listener);
}
/**
* Adds a listener that gets invoked when render mode changes.
*
* @param listener Listener that gets invoked when render mode changes.
*/
public void addOnRenderModeChangedListener(@NonNull OnRenderModeChangedListener listener) {
onRenderModeChangedListeners.add(listener);
}
/**
* Removes a listener that gets invoked when render mode changes.
*
* @param listener Listener that gets invoked when render mode changes.
*/
public void removeRenderModeChangedListener(@NonNull OnRenderModeChangedListener listener) {
onRenderModeChangedListeners.remove(listener);
}
/**
* Adds the passed listener that gets invoked when user updates have stopped long enough for the last update
* to be considered stale.
@@ -1323,6 +1343,9 @@ public final class LocationComponent {
@Override
public void onRenderModeChanged(int currentMode) {
updateAnimatorListenerHolders();
for (OnRenderModeChangedListener listener : onRenderModeChangedListeners) {
listener.onRenderModeChanged(currentMode);
}
}
};

View File

@@ -5,7 +5,7 @@ import com.mapbox.mapboxsdk.location.modes.RenderMode;
/**
* Listener that gets invoked when layer render mode changes.
*/
interface OnRenderModeChangedListener {
public interface OnRenderModeChangedListener {
/**
* Invoked on every {@link RenderMode} change.