diff options
author | Chris Loer <chris.loer@gmail.com> | 2018-12-06 13:31:42 +0200 |
---|---|---|
committer | Chris Loer <chris.loer@mapbox.com> | 2018-12-11 11:46:16 -0800 |
commit | 70c2d5a4cabcd87bc4e6e564fcd6dfa10bd4c521 (patch) | |
tree | 5e514c52d9709d3f89263f53dd005aa7287e9b00 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapChangeReceiver.java | |
parent | 13e117b5016769f77dc6b3d3023f6c068e5a92ff (diff) | |
download | qtlocation-mapboxgl-70c2d5a4cabcd87bc4e6e564fcd6dfa10bd4c521.tar.gz |
[core, darwin, android] Add onDidEnterIdle to MapObserver.
didEnterIdle fires whenever render completes and no repaint is scheduled.
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapChangeReceiver.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapChangeReceiver.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapChangeReceiver.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapChangeReceiver.java index a12c6c7fb3..f569ae3af9 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapChangeReceiver.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapChangeReceiver.java @@ -26,6 +26,8 @@ class MapChangeReceiver implements NativeMapView.StateCallback { = new CopyOnWriteArrayList<>(); private final List<MapView.OnDidFinishRenderingMapListener> onDidFinishRenderingMapListenerList = new CopyOnWriteArrayList<>(); + private final List<MapView.OnDidEnterIdleListener> onDidEnterIdleListenerList + = new CopyOnWriteArrayList<>(); private final List<MapView.OnDidFinishLoadingStyleListener> onDidFinishLoadingStyleListenerList = new CopyOnWriteArrayList<>(); private final List<MapView.OnSourceChangedListener> onSourceChangedListenerList = new CopyOnWriteArrayList<>(); @@ -171,6 +173,20 @@ class MapChangeReceiver implements NativeMapView.StateCallback { } @Override + public void onDidEnterIdle() { + try { + if (!onDidEnterIdleListenerList.isEmpty()) { + for (MapView.OnDidEnterIdleListener listener : onDidEnterIdleListenerList) { + listener.onDidEnterIdle(); + } + } + } catch (Throwable err) { + Logger.e(TAG, "Exception in onDidEnterIdle", err); + throw err; + } + } + + @Override public void onDidFinishLoadingStyle() { try { if (!onDidFinishLoadingStyleListenerList.isEmpty()) { @@ -278,6 +294,14 @@ class MapChangeReceiver implements NativeMapView.StateCallback { onDidFinishRenderingMapListenerList.remove(listener); } + void addOnDidEnterIdleListener(MapView.OnDidEnterIdleListener listener) { + onDidEnterIdleListenerList.add(listener); + } + + void removeOnDidEnterIdleListener(MapView.OnDidEnterIdleListener listener) { + onDidEnterIdleListenerList.remove(listener); + } + void addOnDidFinishLoadingStyleListener(MapView.OnDidFinishLoadingStyleListener listener) { onDidFinishLoadingStyleListenerList.add(listener); } @@ -305,6 +329,7 @@ class MapChangeReceiver implements NativeMapView.StateCallback { onDidFinishRenderingFrameList.clear(); onWillStartRenderingMapListenerList.clear(); onDidFinishRenderingMapListenerList.clear(); + onDidEnterIdleListenerList.clear(); onDidFinishLoadingStyleListenerList.clear(); onSourceChangedListenerList.clear(); } |