diff --git a/sdk/src/main/java/com/mapbox/maps/MapView.kt b/sdk/src/main/java/com/mapbox/maps/MapView.kt index bf3fd3e49a..988967c93e 100644 --- a/sdk/src/main/java/com/mapbox/maps/MapView.kt +++ b/sdk/src/main/java/com/mapbox/maps/MapView.kt @@ -110,8 +110,7 @@ open class MapView : FrameLayout, MapPluginProviderDelegate, MapControllable { val resourceOptions = ResourcesAttributeParser.parseResourcesOptions( context, - typedArray, - CredentialsManager.default + typedArray ) val mapOptions = MapAttributeParser.parseMapOptions(typedArray, context.resources.displayMetrics.density) diff --git a/sdk/src/main/java/com/mapbox/maps/ResourceOptionsManager.kt b/sdk/src/main/java/com/mapbox/maps/ResourceOptionsManager.kt index 761ebbab9a..7e470d38de 100644 --- a/sdk/src/main/java/com/mapbox/maps/ResourceOptionsManager.kt +++ b/sdk/src/main/java/com/mapbox/maps/ResourceOptionsManager.kt @@ -1,6 +1,8 @@ package com.mapbox.maps import android.content.Context +import androidx.annotation.VisibleForTesting +import androidx.annotation.VisibleForTesting.PRIVATE /** * Convenience class that holds the default ResourceOptions. @@ -24,20 +26,21 @@ class ResourceOptionsManager( * Static variables and methods. */ companion object { - private lateinit var default: ResourceOptionsManager + @VisibleForTesting(otherwise = PRIVATE) + internal var default: ResourceOptionsManager? = null /** * The default shared instance with default resource options. */ @Synchronized fun getDefault(context: Context, token: String? = null): ResourceOptionsManager { - if (!this::default.isInitialized) { + if (default == null) { default = ResourceOptionsManager( ResourceOptions.Builder().applyDefaultParams(context, token) .build() ) } - return default + return default as ResourceOptionsManager } } } \ No newline at end of file diff --git a/sdk/src/main/java/com/mapbox/maps/ResourcesAttributeParser.kt b/sdk/src/main/java/com/mapbox/maps/ResourcesAttributeParser.kt index 50f0763199..b2331dcf57 100644 --- a/sdk/src/main/java/com/mapbox/maps/ResourcesAttributeParser.kt +++ b/sdk/src/main/java/com/mapbox/maps/ResourcesAttributeParser.kt @@ -16,8 +16,7 @@ internal object ResourcesAttributeParser { */ fun parseResourcesOptions( context: Context, - typedArray: TypedArray, - credentialsManager: CredentialsManager + typedArray: TypedArray ): ResourceOptions { val token = typedArray.getString(R.styleable.mapbox_MapView_mapbox_resourcesAccessToken) diff --git a/sdk/src/test/java/com/mapbox/maps/MapViewTest.kt b/sdk/src/test/java/com/mapbox/maps/MapViewTest.kt index f9595a81a3..a24962fae4 100644 --- a/sdk/src/test/java/com/mapbox/maps/MapViewTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/MapViewTest.kt @@ -54,7 +54,7 @@ class MapViewTest { mockkObject(CameraAttributeParser) every { context.resources } returns resources every { resources.displayMetrics } returns displayMetrics - every { ResourcesAttributeParser.parseResourcesOptions(any(), any(), any()) } returns mockk() + every { ResourcesAttributeParser.parseResourcesOptions(any(), any()) } returns mockk() every { MapAttributeParser.parseMapOptions(any(), any()) } returns mockk() every { CameraAttributeParser.parseCameraOptions(any()) } returns mockk() every { typedArray.getInt(R.styleable.mapbox_MapView_mapbox_mapSurface, 0) } returns 1 diff --git a/sdk/src/test/java/com/mapbox/maps/ResourceAttributeParserTest.kt b/sdk/src/test/java/com/mapbox/maps/ResourceAttributeParserTest.kt index 773f21511e..da2dcaba5b 100644 --- a/sdk/src/test/java/com/mapbox/maps/ResourceAttributeParserTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/ResourceAttributeParserTest.kt @@ -27,12 +27,13 @@ class ResourceAttributeParserTest { every { typedArray.getBoolean(any(), any()) } returns true every { typedArray.getFloat(any(), any()) } returns 99.0f every { typedArray.hasValue(any()) } returns true + ResourceOptionsManager.default = null } @Test fun default() { val resourceOptions = - ResourcesAttributeParser.parseResourcesOptions(context, typedArray, CredentialsManager.default) + ResourcesAttributeParser.parseResourcesOptions(context, typedArray) assertEquals("pk.foobar", resourceOptions.accessToken) assertEquals(null, resourceOptions.baseURL) assertEquals("/foobar/mapbox/maps/ambient_cache.db", resourceOptions.cachePath) @@ -43,14 +44,23 @@ class ResourceAttributeParserTest { fun noAccessTokenResource() { every { resources.getIdentifier("mapbox_access_token", "string", "foobar") } returns 0 val options = - ResourcesAttributeParser.parseResourcesOptions(context, typedArray, CredentialsManager.default) + ResourcesAttributeParser.parseResourcesOptions(context, typedArray) assertEquals("", options.accessToken) } + @Test + fun noAccessTokenResourceHasTokenFromAttr() { + every { resources.getIdentifier("mapbox_access_token", "string", "foobar") } returns 0 + every { typedArray.getString(R.styleable.mapbox_MapView_mapbox_resourcesAccessToken) } returns "token" + val options = + ResourcesAttributeParser.parseResourcesOptions(context, typedArray) + assertEquals("token", options.accessToken) + } + @Test fun cachePath() { val resourceOptions = - ResourcesAttributeParser.parseResourcesOptions(context, typedArray, CredentialsManager.default) + ResourcesAttributeParser.parseResourcesOptions(context, typedArray) assertEquals("/foobar/mapbox/maps/ambient_cache.db", resourceOptions.cachePath) } @@ -66,8 +76,7 @@ class ResourceAttributeParserTest { 1234L, ResourcesAttributeParser.parseResourcesOptions( context, - typedArray, - CredentialsManager.default + typedArray ).cacheSize ) } @@ -79,8 +88,7 @@ class ResourceAttributeParserTest { "mapbox.be", ResourcesAttributeParser.parseResourcesOptions( context, - typedArray, - CredentialsManager.default + typedArray ).baseURL ) }