diff --git a/sdk/src/main/java/com/mapbox/maps/MapboxMap.kt b/sdk/src/main/java/com/mapbox/maps/MapboxMap.kt index 2eed9a9e46..7adbfdaf98 100644 --- a/sdk/src/main/java/com/mapbox/maps/MapboxMap.kt +++ b/sdk/src/main/java/com/mapbox/maps/MapboxMap.kt @@ -52,6 +52,7 @@ class MapboxMap internal constructor( internal var isStyleLoadInitiated = false private val styleObserver = StyleObserver(this, nativeMapWeakRef, nativeObserver, pixelRatio) internal var renderHandler: Handler? = null + internal var styleLoaded = false /** * Represents current camera state. @@ -209,8 +210,15 @@ class MapboxMap internal constructor( onMapLoadErrorListener: OnMapLoadErrorListener? = null ) { // clear listeners from previous invocation - styleObserver.onNewStyleLoad(onStyleLoaded, onMapLoadErrorListener) + styleObserver.onNewStyleLoad( + { + styleLoaded = true + onStyleLoaded?.onStyleLoaded(it) + }, + onMapLoadErrorListener + ) isStyleLoadInitiated = true + styleLoaded = false } /** @@ -220,7 +228,7 @@ class MapboxMap internal constructor( */ fun getStyle(onStyleLoaded: Style.OnStyleLoaded) { if (::style.isInitialized) { - if (style.isStyleLoaded) { + if (styleLoaded) { // style has loaded, notify callback immediately onStyleLoaded.onStyleLoaded(style) } else { @@ -237,7 +245,7 @@ class MapboxMap internal constructor( * Get the Style of the map synchronously, will return null is style is not loaded yet. */ fun getStyle(): Style? { - if (::style.isInitialized && style.isStyleLoaded) { + if (::style.isInitialized && styleLoaded) { // style has loaded, return it immediately return style } diff --git a/sdk/src/test/java/com/mapbox/maps/MapboxMapTest.kt b/sdk/src/test/java/com/mapbox/maps/MapboxMapTest.kt index f14a224511..bdd36ab331 100644 --- a/sdk/src/test/java/com/mapbox/maps/MapboxMapTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/MapboxMapTest.kt @@ -188,7 +188,7 @@ class MapboxMapTest { fun getStyleLoadedCallback() { val style = mockk