summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapChangeReceiver.java25
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java35
-rwxr-xr-xplatform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java7
3 files changed, 66 insertions, 1 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();
}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
index b4c977cf15..8a29ae8070 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
@@ -691,13 +691,33 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
/**
* Remove a callback that's invoked when the map has finished rendering.
*
- * @param listener The callback that's invoked when the map has finished rendering
+ * @param listener The callback that's invoked when the map has has finished rendering.
*/
public void removeOnDidFinishRenderingMapListener(OnDidFinishRenderingMapListener listener) {
mapChangeReceiver.removeOnDidFinishRenderingMapListener(listener);
}
/**
+ * Set a callback that's invoked when the map has entered the idle state.
+ *
+ * @param listener The callback that's invoked when the map has entered the idle state.
+ */
+ public void addOnDidEnterIdleListener(OnDidEnterIdleListener listener) {
+ mapChangeReceiver.addOnDidEnterIdleListener(listener);
+ }
+
+ /**
+ * Remove a callback that's invoked when the map has entered the idle state.
+ *
+ * @param listener The callback that's invoked when the map has entered the idle state.
+ */
+ public void removeOnDidEnterIdleListener(OnDidEnterIdleListener listener) {
+ mapChangeReceiver.removeOnDidEnterIdleListener(listener);
+ }
+
+ /**
+
+ /**
* Set a callback that's invoked when the style has finished loading.
*
* @param listener The callback that's invoked when the style has finished loading
@@ -871,6 +891,19 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
}
/**
+ * Interface definition for a callback to be invoked when the map has entered the idle state.
+ * <p>
+ * {@link MapView#addOnDidEnterIdleListener(OnDidEnterIdleListener)}
+ * </p>
+ */
+ public interface OnDidEnterIdleListener {
+ /**
+ * Called when the map has entered the idle state.
+ */
+ void onDidEnterIdle();
+ }
+
+ /**
* Interface definition for a callback to be invoked when the map has loaded the style.
* <p>
* {@link MapView#addOnDidFailLoadingMapListener(OnDidFailLoadingMapListener)}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java
index bdbca4fbca..59840f5bf3 100755
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java
@@ -1010,6 +1010,11 @@ final class NativeMapView {
}
@Keep
+ private void onDidEnterIdle() {
+ stateCallback.onDidEnterIdle();
+ }
+
+ @Keep
private void onDidFinishLoadingStyle() {
if (stateCallback != null) {
stateCallback.onDidFinishLoadingStyle();
@@ -1472,6 +1477,8 @@ final class NativeMapView {
void onDidFinishRenderingMap(boolean fully);
+ void onDidEnterIdle();
+
void onSourceChanged(String sourceId);
}
}