diff --git a/CHANGELOG.md b/CHANGELOG.md index 73b86e8e9e..e8cc193977 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ Mapbox welcomes participation and contributions from everyone. # main ## Features ✨ and improvements 🏁 +* Refactor all Mapbox logs so that Logcat tag will always be 'Mapbox' allowing easier filtering. Previous log tag will become part of the log message now. ([#1276](https://github.com/mapbox/mapbox-maps-android/pull/1276)) ## Bug fixes 🐞 * Fix NaN latitude native crash rarely happening during `MapboxMap#flyTo`. ([#1271](https://github.com/mapbox/mapbox-maps-android/pull/1271)) diff --git a/app/src/androidTest/java/com/mapbox/maps/testapp/observable/ObservableExtensionTest.kt b/app/src/androidTest/java/com/mapbox/maps/testapp/observable/ObservableExtensionTest.kt index f22718f96c..7354c12cb0 100644 --- a/app/src/androidTest/java/com/mapbox/maps/testapp/observable/ObservableExtensionTest.kt +++ b/app/src/androidTest/java/com/mapbox/maps/testapp/observable/ObservableExtensionTest.kt @@ -4,7 +4,6 @@ import android.graphics.BitmapFactory import androidx.annotation.UiThread import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.LargeTest -import com.mapbox.common.Logger import com.mapbox.geojson.Point import com.mapbox.maps.* import com.mapbox.maps.dsl.cameraOptions @@ -503,7 +502,7 @@ class ObservableExtensionTest : BaseMapTest() { activity.runOnUiThread { mapboxMap.subscribe( { - Logger.e(TAG, it.toString()) + logE(TAG, it.toString()) }, SUPPORTED_EVENTS ) diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/DebugModeActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/DebugModeActivity.kt index 533330ecad..16d4856ba0 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/DebugModeActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/DebugModeActivity.kt @@ -4,7 +4,6 @@ import android.os.Bundle import android.view.Menu import android.view.MenuItem import androidx.appcompat.app.AppCompatActivity -import com.mapbox.common.Logger import com.mapbox.maps.* import com.mapbox.maps.extension.observable.eventdata.MapLoadingErrorEventData import com.mapbox.maps.extension.observable.getResourceEventData @@ -30,14 +29,14 @@ class DebugModeActivity : AppCompatActivity() { ) private val extensionObservable = Observer { event -> val data = event.getResourceEventData() - Logger.i( + logI( TAG, "extensionObservable DataSource: ${data.dataSource}\nRequest: ${data.request}\nResponse: ${data.response}\nCancelled: ${data.cancelled}" ) } private val observable = Observer { event -> - Logger.i( + logI( TAG, "Type: ${event.type}\nValue: ${event.data.contents}" ) @@ -62,54 +61,54 @@ class DebugModeActivity : AppCompatActivity() { private fun registerListeners(mapboxMap: MapboxMap) { mapboxMap.addOnStyleLoadedListener { - Logger.i(TAG, "OnStyleLoadedListener: $it") + logI(TAG, "OnStyleLoadedListener: $it") } mapboxMap.addOnStyleDataLoadedListener { - Logger.i(TAG, "OnStyleDataLoadedListener: $it") + logI(TAG, "OnStyleDataLoadedListener: $it") } mapboxMap.addOnStyleImageMissingListener { - Logger.i(TAG, "OnStyleImageMissingListener: $it") + logI(TAG, "OnStyleImageMissingListener: $it") } mapboxMap.addOnStyleImageUnusedListener { - Logger.i(TAG, "OnStyleImageUnusedListener: $it") + logI(TAG, "OnStyleImageUnusedListener: $it") } mapboxMap.addOnMapIdleListener { - Logger.i(TAG, "OnMapIdleListener: $it") + logI(TAG, "OnMapIdleListener: $it") } mapboxMap.addOnMapLoadErrorListener(object : OnMapLoadErrorListener { override fun onMapLoadError(eventData: MapLoadingErrorEventData) { - Logger.i(TAG, "OnMapLoadErrorListener: $eventData") + logI(TAG, "OnMapLoadErrorListener: $eventData") } }) mapboxMap.addOnMapLoadedListener { - Logger.i(TAG, "OnMapLoadedListener: $it") + logI(TAG, "OnMapLoadedListener: $it") } mapboxMap.addOnCameraChangeListener { - Logger.i(TAG, "OnCameraChangeListener: $it") + logI(TAG, "OnCameraChangeListener: $it") } mapboxMap.addOnRenderFrameStartedListener { - Logger.i(TAG, "OnRenderFrameStartedListener: $it") + logI(TAG, "OnRenderFrameStartedListener: $it") } mapboxMap.addOnRenderFrameFinishedListener { - Logger.i( + logI( TAG, "OnRenderFrameFinishedListener: $it" ) } mapboxMap.addOnSourceAddedListener { - Logger.i( + logI( TAG, "OnSourceAddedListener: $it" ) } mapboxMap.addOnSourceDataLoadedListener { - Logger.i( + logI( TAG, "OnSourceDataLoadedListener: $it" ) } mapboxMap.addOnSourceRemovedListener { - Logger.i( + logI( TAG, "OnSourceRemovedListener: $it" ) diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/LegacyOfflineActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/LegacyOfflineActivity.kt index d8b6b4c6a4..5dcef031d8 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/LegacyOfflineActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/LegacyOfflineActivity.kt @@ -3,7 +3,6 @@ package com.mapbox.maps.testapp.examples import android.os.Bundle import android.view.View import androidx.appcompat.app.AppCompatActivity -import com.mapbox.common.Logger import com.mapbox.geojson.Point import com.mapbox.maps.* import com.mapbox.maps.testapp.databinding.ActivityLegacyOfflineBinding @@ -21,11 +20,11 @@ class LegacyOfflineActivity : AppCompatActivity() { private val regionObserver: OfflineRegionObserver = object : OfflineRegionObserver { override fun mapboxTileCountLimitExceeded(limit: Long) { - Logger.e(TAG, "Mapbox tile count max (= $limit) has exceeded!") + logE(TAG, "Mapbox tile count max (= $limit) has exceeded!") } override fun statusChanged(status: OfflineRegionStatus) { - Logger.d( + logD( TAG, "${status.completedResourceCount}/${status.requiredResourceCount} resources; ${status.completedResourceSize} bytes downloaded." ) @@ -36,7 +35,7 @@ class LegacyOfflineActivity : AppCompatActivity() { } override fun responseError(error: ResponseError) { - Logger.e(TAG, "onError: ${error.reason}, ${error.message}") + logE(TAG, "onError: ${error.reason}, ${error.message}") offlineRegion.setOfflineRegionDownloadState(OfflineRegionDownloadState.INACTIVE) } } @@ -49,7 +48,7 @@ class LegacyOfflineActivity : AppCompatActivity() { it.setOfflineRegionDownloadState(OfflineRegionDownloadState.ACTIVE) } } else { - Logger.e(TAG, expected.error!!) + logE(TAG, expected.error!!) } } diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/RuntimeStylingActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/RuntimeStylingActivity.kt index 1a31ee8630..b0815d9428 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/RuntimeStylingActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/RuntimeStylingActivity.kt @@ -6,7 +6,6 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import androidx.core.graphics.drawable.toBitmap import com.mapbox.bindgen.Value -import com.mapbox.common.Logger import com.mapbox.geojson.FeatureCollection import com.mapbox.maps.* import com.mapbox.maps.extension.style.expressions.dsl.generated.* @@ -58,7 +57,7 @@ class RuntimeStylingActivity : AppCompatActivity() { addLayerWithoutStyleExtension(style) val source = style.getSource("composite") as VectorSource - Logger.e(TAG, "getSource: $source") + logE(TAG, "getSource: $source") } private fun addImage(style: Style) { @@ -69,10 +68,10 @@ class RuntimeStylingActivity : AppCompatActivity() { true ) expected.error?.let { - Logger.e(TAG, it) + logE(TAG, it) } expected.value?.let { - Logger.d(TAG, it.toString()) + logD(TAG, it.toString()) } } @@ -157,9 +156,9 @@ class RuntimeStylingActivity : AppCompatActivity() { cluster(true) prefetchZoomDelta(1) } - Logger.i(TAG, source.toString()) + logI(TAG, source.toString()) style.addSource(source) - Logger.i(TAG, "prefetchZoomDelta : ${source.prefetchZoomDelta}") + logI(TAG, "prefetchZoomDelta : ${source.prefetchZoomDelta}") } private fun addSymbolLayer(style: Style) { @@ -217,7 +216,7 @@ class RuntimeStylingActivity : AppCompatActivity() { iconIgnorePlacement(false) } style.addLayer(symbolLayer) - Logger.i(TAG, symbolLayer.iconOpacityAsExpression.toString()) + logI(TAG, symbolLayer.iconOpacityAsExpression.toString()) } private fun addFillSource(style: Style) { @@ -261,7 +260,7 @@ class RuntimeStylingActivity : AppCompatActivity() { ) ) } - Logger.i(TAG, polygon.toString()) + logI(TAG, polygon.toString()) style.addSource(polygon) } @@ -288,7 +287,7 @@ class RuntimeStylingActivity : AppCompatActivity() { } ) fillLayer.visibility(Visibility.VISIBLE) - Logger.i(TAG, fillLayer.fillColorAsExpression.toString()) + logI(TAG, fillLayer.fillColorAsExpression.toString()) } private fun addFillExtrusionLayer(style: Style) { @@ -347,10 +346,10 @@ class RuntimeStylingActivity : AppCompatActivity() { null ) expected.error?.let { - Logger.e(TAG, it) + logE(TAG, it) } expected.value?.let { - Logger.d(TAG, it.toString()) + logD(TAG, it.toString()) } val sourceParams = HashMap() diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/SpaceStationLocationActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/SpaceStationLocationActivity.kt index e1681eac50..d3679b6bdb 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/SpaceStationLocationActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/SpaceStationLocationActivity.kt @@ -6,14 +6,10 @@ import android.os.Handler import android.os.Looper import android.widget.Toast import androidx.appcompat.app.AppCompatActivity -import com.mapbox.common.Logger import com.mapbox.geojson.Feature import com.mapbox.geojson.FeatureCollection import com.mapbox.geojson.Point -import com.mapbox.maps.CameraOptions -import com.mapbox.maps.MapView -import com.mapbox.maps.MapboxMap -import com.mapbox.maps.Style +import com.mapbox.maps.* import com.mapbox.maps.extension.style.layers.addLayer import com.mapbox.maps.extension.style.layers.generated.symbolLayer import com.mapbox.maps.extension.style.sources.addSource @@ -89,7 +85,7 @@ class SpaceStationLocationActivity : AppCompatActivity() { if (latitude != null && longitude != null) { updateMarkerPosition(longitude = longitude, latitude = latitude) } else { - Logger.w(TAG, "Wrong response position") + logW(TAG, "Wrong response position") } } @@ -100,9 +96,9 @@ class SpaceStationLocationActivity : AppCompatActivity() { // If retrofit fails or the API was unreachable, an error will be called. // to check if throwable is null, then give a custom message. if (throwable.message == null) { - Logger.e(TAG, "Http connection failed") + logE(TAG, "Http connection failed") } else { - Logger.e(TAG, "onFailure: ${throwable.message}") + logE(TAG, "onFailure: ${throwable.message}") } } }) diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/annotation/AnnotationUtils.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/annotation/AnnotationUtils.kt index baf747972f..3f2b1dc9d8 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/annotation/AnnotationUtils.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/annotation/AnnotationUtils.kt @@ -1,9 +1,9 @@ package com.mapbox.maps.testapp.examples.annotation import android.content.Context -import com.mapbox.common.Logger import com.mapbox.geojson.Point import com.mapbox.maps.Style +import com.mapbox.maps.logE import okhttp3.Cache import okhttp3.OkHttpClient import okhttp3.Request @@ -92,7 +92,7 @@ object AnnotationUtils { } sb.toString() } catch (e: IOException) { - Logger.e(TAG, "Unable to parse $fileName") + logE(TAG, "Unable to parse $fileName") null } } @@ -120,7 +120,7 @@ object AnnotationUtils { } sb.toString() } catch (e: IOException) { - Logger.e(TAG, "Unable to download $url") + logE(TAG, "Unable to download $url") null } } diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/CustomLayerActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/CustomLayerActivity.kt index 5c31de3ea4..225fe87c45 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/CustomLayerActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/CustomLayerActivity.kt @@ -4,12 +4,8 @@ import android.os.Bundle import android.view.Menu import android.view.MenuItem import androidx.appcompat.app.AppCompatActivity -import com.mapbox.common.Logger import com.mapbox.geojson.Point -import com.mapbox.maps.CameraOptions -import com.mapbox.maps.LayerPosition -import com.mapbox.maps.MapboxMap -import com.mapbox.maps.Style +import com.mapbox.maps.* import com.mapbox.maps.testapp.R import com.mapbox.maps.testapp.databinding.ActivityCustomLayerBinding @@ -53,7 +49,7 @@ class CustomLayerActivity : AppCompatActivity() { LayerPosition(null, "building", null) ) expected.error?.let { - Logger.e(TAG, "Add custom layer exception $it") + logE(TAG, "Add custom layer exception $it") } binding.fab.setImageResource(R.drawable.ic_layers_clear) } diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/ExampleCustomLayer.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/ExampleCustomLayer.kt index ba63832716..993afd0a14 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/ExampleCustomLayer.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/ExampleCustomLayer.kt @@ -1,9 +1,10 @@ package com.mapbox.maps.testapp.examples.customlayer import android.opengl.GLES20 -import com.mapbox.common.Logger import com.mapbox.maps.CustomLayerHost import com.mapbox.maps.CustomLayerRenderParameters +import com.mapbox.maps.logD +import com.mapbox.maps.logW import com.mapbox.maps.testapp.BuildConfig import java.nio.ByteBuffer import java.nio.ByteOrder @@ -36,7 +37,7 @@ class ExampleCustomLayer : CustomLayerHost { override fun initialize() { val maxAttrib = IntArray(1) GLES20.glGetIntegerv(GLES20.GL_MAX_VERTEX_ATTRIBS, maxAttrib, 0) - Logger.d(TAG, "Max vertex attributes: ${maxAttrib[0]}") + logD(TAG, "Max vertex attributes: ${maxAttrib[0]}") // load and compile shaders vertexShader = loadShader( @@ -101,7 +102,7 @@ class ExampleCustomLayer : CustomLayerHost { } override fun contextLost() { - Logger.w(TAG, "contextLost") + logW(TAG, "contextLost") program = 0 } @@ -177,7 +178,7 @@ class ExampleCustomLayer : CustomLayerHost { if (BuildConfig.DEBUG) { when (val error = GLES20.glGetError()) { GLES20.GL_NO_ERROR -> { - Logger.d(TAG, "$cmd -> no error") + logD(TAG, "$cmd -> no error") } GLES20.GL_INVALID_ENUM -> throw RuntimeException("$cmd -> error in gl: GL_INVALID_ENUM") GLES20.GL_INVALID_VALUE -> throw RuntimeException("$cmd -> error in gl: GL_INVALID_VALUE") diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/NativeCustomLayerActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/NativeCustomLayerActivity.kt index 0aa3173666..1fdd43b4a0 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/NativeCustomLayerActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/NativeCustomLayerActivity.kt @@ -4,12 +4,8 @@ import android.os.Bundle import android.view.Menu import android.view.MenuItem import androidx.appcompat.app.AppCompatActivity -import com.mapbox.common.Logger import com.mapbox.geojson.Point -import com.mapbox.maps.CameraOptions -import com.mapbox.maps.LayerPosition -import com.mapbox.maps.MapboxMap -import com.mapbox.maps.Style +import com.mapbox.maps.* import com.mapbox.maps.testapp.R import com.mapbox.maps.testapp.databinding.ActivityCustomLayerBinding @@ -55,7 +51,7 @@ class NativeCustomLayerActivity : AppCompatActivity() { LayerPosition(null, "building", null) ) expected.error?.let { - Logger.e(TAG, "Add custom layer exception $it") + logE(TAG, "Add custom layer exception $it") } binding.fab.setImageResource(R.drawable.ic_layers_clear) } diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/TriangleCustomLayer.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/TriangleCustomLayer.kt index 5ffb8dd93b..7eac58574c 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/TriangleCustomLayer.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/TriangleCustomLayer.kt @@ -1,11 +1,8 @@ package com.mapbox.maps.testapp.examples.customlayer import android.opengl.GLES20 -import com.mapbox.common.Logger import com.mapbox.geojson.Point -import com.mapbox.maps.CustomLayerHost -import com.mapbox.maps.CustomLayerRenderParameters -import com.mapbox.maps.Projection +import com.mapbox.maps.* import com.mapbox.maps.testapp.BuildConfig import java.nio.ByteBuffer import java.nio.ByteOrder @@ -146,7 +143,7 @@ class TriangleCustomLayer : CustomLayerHost { } override fun contextLost() { - Logger.w(TAG, "contextLost") + logW(TAG, "contextLost") program = 0 } @@ -228,7 +225,7 @@ class TriangleCustomLayer : CustomLayerHost { if (BuildConfig.DEBUG) { when (val error = GLES20.glGetError()) { GLES20.GL_NO_ERROR -> { - Logger.d(TAG, "$cmd -> no error") + logD(TAG, "$cmd -> no error") } GLES20.GL_INVALID_ENUM -> throw RuntimeException("$cmd -> error in gl: GL_INVALID_ENUM") GLES20.GL_INVALID_VALUE -> throw RuntimeException("$cmd -> error in gl: GL_INVALID_VALUE") diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/TriangleCustomLayerActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/TriangleCustomLayerActivity.kt index 0727857ea9..333849e48e 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/TriangleCustomLayerActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/customlayer/TriangleCustomLayerActivity.kt @@ -4,12 +4,8 @@ import android.os.Bundle import android.view.Menu import android.view.MenuItem import androidx.appcompat.app.AppCompatActivity -import com.mapbox.common.Logger import com.mapbox.geojson.Point -import com.mapbox.maps.CameraOptions -import com.mapbox.maps.LayerPosition -import com.mapbox.maps.MapboxMap -import com.mapbox.maps.Style +import com.mapbox.maps.* import com.mapbox.maps.testapp.R import com.mapbox.maps.testapp.databinding.ActivityCustomLayerBinding @@ -41,7 +37,7 @@ class TriangleCustomLayerActivity : AppCompatActivity() { LayerPosition(null, "building", null), ) expected.error?.let { - Logger.e(TAG, "Add custom layer exception $it") + logE(TAG, "Add custom layer exception $it") } binding.fab.setImageResource(R.drawable.ic_layers_clear) } diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/featurestate/FeatureStateActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/featurestate/FeatureStateActivity.kt index 45bc49d157..fb7b1ec193 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/featurestate/FeatureStateActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/featurestate/FeatureStateActivity.kt @@ -9,7 +9,6 @@ import android.widget.FrameLayout import androidx.appcompat.app.AppCompatActivity import com.mapbox.bindgen.Expected import com.mapbox.bindgen.Value -import com.mapbox.common.Logger import com.mapbox.geojson.Point import com.mapbox.maps.* import com.mapbox.maps.dsl.cameraOptions @@ -82,7 +81,7 @@ class FeatureStateActivity : AppCompatActivity(), OnCameraChangeListener { sourceId = SOURCE_ID, featureId = featureId ) { stateMap -> - Logger.d( + logD( TAG, "getFeatureState: ${stateMap.value!!}" ) diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/java/RuntimeStylingJavaActivity.java b/app/src/main/java/com/mapbox/maps/testapp/examples/java/RuntimeStylingJavaActivity.java index 0837fc482b..21f562d286 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/java/RuntimeStylingJavaActivity.java +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/java/RuntimeStylingJavaActivity.java @@ -12,7 +12,6 @@ import com.mapbox.bindgen.Expected; import com.mapbox.bindgen.None; import com.mapbox.bindgen.Value; -import com.mapbox.common.Logger; import com.mapbox.geojson.FeatureCollection; import com.mapbox.maps.Image; import com.mapbox.maps.MapView; @@ -41,6 +40,9 @@ import java.util.ArrayList; import java.util.HashMap; +import static com.mapbox.maps.MapboxLogger.logD; +import static com.mapbox.maps.MapboxLogger.logE; +import static com.mapbox.maps.MapboxLogger.logI; import static com.mapbox.maps.extension.style.expressions.generated.Expression.eq; import static com.mapbox.maps.extension.style.expressions.generated.Expression.get; import static com.mapbox.maps.extension.style.expressions.generated.Expression.image; @@ -224,7 +226,7 @@ private void setUpStyle(Style style) { addLayerWithoutStyleExtension(style); final VectorSource source = (VectorSource) SourceUtils.getSource(style, "composite"); - Logger.e(TAG, "getSource: " + source); + logE(TAG, "getSource: " + source); } private void addImage(Style style) { @@ -240,9 +242,9 @@ private void addSymbolSource(Style style) { .cluster(true) .prefetchZoomDelta(1) .build(); - Logger.i(TAG, geoJsonSource.toString()); + logI(TAG, geoJsonSource.toString()); SourceUtils.addSource(style, geoJsonSource); - Logger.i(TAG, "prefetchZoomDelta :" + geoJsonSource.getPrefetchZoomDelta()); + logI(TAG, "prefetchZoomDelta :" + geoJsonSource.getPrefetchZoomDelta()); } private void addSymbolLayer(Style style) { @@ -273,14 +275,14 @@ private void addSymbolLayer(Style style) { symbolLayer.textIgnorePlacement(false); symbolLayer.iconIgnorePlacement(false); LayerUtils.addLayer(style, symbolLayer); - Logger.i(TAG, symbolLayer.getIconOpacityAsExpression().toString()); + logI(TAG, symbolLayer.getIconOpacityAsExpression().toString()); } private void addFillSource(Style style) { final GeoJsonSource polygon = new GeoJsonSource.Builder(POLYGON_SOURCE_ID) .featureCollection(FeatureCollection.fromJson(FILL_FEATURE_COLLECTION)) .build(); - Logger.i(TAG, polygon.toString()); + logI(TAG, polygon.toString()); SourceUtils.addSource(style, polygon); } @@ -309,7 +311,7 @@ private void setFillLayer(Style style) { }); fillLayer.fillColor(interpolateBuilder.build()); fillLayer.visibility(Visibility.VISIBLE); - Logger.i(TAG, fillLayer.getFillColorAsExpression().toString()); + logI(TAG, fillLayer.getFillColorAsExpression().toString()); } @@ -357,10 +359,10 @@ private void addLayerWithoutStyleExtension(Style style) { null ); if (expected.isError()) { - Logger.e(TAG, expected.getError()); + logE(TAG, expected.getError()); } if (expected.isValue()) { - Logger.d(TAG, expected.getValue().toString()); + logD(TAG, expected.getValue().toString()); } final HashMap sourceParams = new HashMap<>(); diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/linesandpolygons/LineGradientActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/linesandpolygons/LineGradientActivity.kt index d1cc2c37f0..bfed4d15d3 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/linesandpolygons/LineGradientActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/linesandpolygons/LineGradientActivity.kt @@ -2,7 +2,6 @@ package com.mapbox.maps.testapp.examples.linesandpolygons import android.os.Bundle import androidx.appcompat.app.AppCompatActivity -import com.mapbox.common.Logger import com.mapbox.geojson.Feature import com.mapbox.geojson.LineString import com.mapbox.geojson.Point @@ -15,6 +14,7 @@ import com.mapbox.maps.extension.style.layers.properties.generated.LineCap import com.mapbox.maps.extension.style.layers.properties.generated.LineJoin import com.mapbox.maps.extension.style.sources.generated.geoJsonSource import com.mapbox.maps.extension.style.style +import com.mapbox.maps.logI import com.mapbox.maps.testapp.databinding.ActivityLineGradientBinding class LineGradientActivity : AppCompatActivity() { @@ -24,7 +24,7 @@ class LineGradientActivity : AppCompatActivity() { val binding = ActivityLineGradientBinding.inflate(layoutInflater) setContentView(binding.root) binding.mapView.getMapboxMap().loadStyle(createStyle()) { style -> - Logger.d(TAG, "Style loaded: ${style.styleURI}") + logI(TAG, "Style loaded: ${style.styleURI}") // Increase trim offset when user click the increase trim offset button. binding.trimOffsetButton.setOnClickListener { val linelayer = style.getLayerAs(LAYER_ID) diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/linesandpolygons/MovingIconWithTrailingLineActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/linesandpolygons/MovingIconWithTrailingLineActivity.kt index 2d90cec9f9..ec9454075f 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/linesandpolygons/MovingIconWithTrailingLineActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/linesandpolygons/MovingIconWithTrailingLineActivity.kt @@ -12,7 +12,6 @@ import androidx.appcompat.app.AppCompatActivity import com.mapbox.api.directions.v5.DirectionsCriteria import com.mapbox.api.directions.v5.MapboxDirections import com.mapbox.api.directions.v5.models.DirectionsResponse -import com.mapbox.common.Logger import com.mapbox.core.constants.Constants.PRECISION_6 import com.mapbox.geojson.Feature import com.mapbox.geojson.FeatureCollection @@ -30,6 +29,7 @@ import com.mapbox.maps.extension.style.layers.properties.generated.LineJoin import com.mapbox.maps.extension.style.sources.addSource import com.mapbox.maps.extension.style.sources.generated.GeoJsonSource import com.mapbox.maps.extension.style.sources.generated.geoJsonSource +import com.mapbox.maps.logE import com.mapbox.maps.plugin.animation.MapAnimationOptions.Companion.mapAnimationOptions import com.mapbox.maps.plugin.animation.easeTo import com.mapbox.maps.testapp.R @@ -145,7 +145,7 @@ class MovingIconWithTrailingLineActivity : AppCompatActivity() { ) { response.body()?.let { body -> if (body.routes().size < 1) { - Logger.e(TAG, "No routes found") + logE(TAG, "No routes found") return } @@ -179,13 +179,13 @@ class MovingIconWithTrailingLineActivity : AppCompatActivity() { } } } ?: run { - Logger.e(TAG, "No routes found, make sure you set the right user and access token.") + logE(TAG, "No routes found, make sure you set the right user and access token.") return } } override fun onFailure(call: Call, t: Throwable) { - Logger.e(TAG, "Error: ${t.message}") + logE(TAG, "Error: ${t.message}") Toast.makeText( this@MovingIconWithTrailingLineActivity, "Error: ${t.message}", diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/linesandpolygons/SnakingDirectionsRouteActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/linesandpolygons/SnakingDirectionsRouteActivity.kt index afaf0048f9..c794f20839 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/linesandpolygons/SnakingDirectionsRouteActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/linesandpolygons/SnakingDirectionsRouteActivity.kt @@ -11,7 +11,6 @@ import com.mapbox.api.directions.v5.DirectionsCriteria.GEOMETRY_POLYLINE import com.mapbox.api.directions.v5.MapboxDirections import com.mapbox.api.directions.v5.models.DirectionsResponse import com.mapbox.api.directions.v5.models.LegStep -import com.mapbox.common.Logger import com.mapbox.core.constants.Constants.PRECISION_5 import com.mapbox.geojson.Feature import com.mapbox.geojson.FeatureCollection @@ -27,6 +26,7 @@ import com.mapbox.maps.extension.style.sources.generated.GeoJsonSource import com.mapbox.maps.extension.style.sources.generated.geoJsonSource import com.mapbox.maps.extension.style.sources.getSource import com.mapbox.maps.extension.style.style +import com.mapbox.maps.logE import com.mapbox.maps.testapp.R import com.mapbox.maps.testapp.databinding.ActivityJavaservicesSnakingDirectionsRouteBinding import retrofit2.Call @@ -111,14 +111,14 @@ class SnakingDirectionsRouteActivity : AppCompatActivity() { ) { response.body()?.let { body -> if (body.routes().isEmpty()) { - Logger.e(TAG, "No routes found") + logE(TAG, "No routes found") return } body.routes()[0]?.legs()?.get(0)?.steps()?.let { steps -> drawRoute(steps) } } ?: run { - Logger.e(TAG, "No routes found, make sure you set the right user and access token.") + logE(TAG, "No routes found, make sure you set the right user and access token.") return } } diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/markersandcallouts/MultipleGeometriesActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/markersandcallouts/MultipleGeometriesActivity.kt index a20efb8a86..39caa0d29a 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/markersandcallouts/MultipleGeometriesActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/markersandcallouts/MultipleGeometriesActivity.kt @@ -3,7 +3,6 @@ package com.mapbox.maps.testapp.examples.markersandcallouts import android.graphics.Color import android.os.Bundle import androidx.appcompat.app.AppCompatActivity -import com.mapbox.common.Logger import com.mapbox.maps.MapboxMap import com.mapbox.maps.Style import com.mapbox.maps.extension.style.expressions.dsl.generated.eq @@ -11,6 +10,7 @@ import com.mapbox.maps.extension.style.layers.addLayer import com.mapbox.maps.extension.style.layers.generated.* import com.mapbox.maps.extension.style.sources.addSource import com.mapbox.maps.extension.style.sources.generated.geoJsonSource +import com.mapbox.maps.logE import com.mapbox.maps.testapp.databinding.ActivityMultipleGeometriesBinding import java.net.URISyntaxException @@ -46,7 +46,7 @@ class MultipleGeometriesActivity : AppCompatActivity() { } ) } catch (exception: URISyntaxException) { - Logger.e(TAG, "Creating geojson source failed ${exception.message}") + logE(TAG, "Creating geojson source failed ${exception.message}") } } diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/snapshotter/MapSnapshotterActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/snapshotter/MapSnapshotterActivity.kt index 4542f9bce9..fb135f175f 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/snapshotter/MapSnapshotterActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/snapshotter/MapSnapshotterActivity.kt @@ -3,7 +3,6 @@ package com.mapbox.maps.testapp.examples.snapshotter import android.os.Bundle import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity -import com.mapbox.common.Logger import com.mapbox.geojson.Point import com.mapbox.maps.* import com.mapbox.maps.Snapshotter @@ -50,7 +49,7 @@ class MapSnapshotterActivity : AppCompatActivity(), SnapshotStyleListener { } override fun onDidFinishLoadingStyle(style: Style) { - Logger.i(TAG, "OnStyleLoaded: ${style.styleURI}") + logI(TAG, "OnStyleLoaded: ${style.styleURI}") } override fun onDestroy() { diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/style/TileJsonActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/style/TileJsonActivity.kt index 80f9a35e04..8a8e1206ce 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/style/TileJsonActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/style/TileJsonActivity.kt @@ -6,7 +6,6 @@ import android.view.MenuItem import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import com.google.android.material.floatingactionbutton.FloatingActionButton -import com.mapbox.common.Logger import com.mapbox.common.ValueConverter import com.mapbox.maps.MapView import com.mapbox.maps.MapboxMap @@ -18,6 +17,7 @@ import com.mapbox.maps.extension.style.sources.generated.RasterSource import com.mapbox.maps.extension.style.sources.generated.Scheme import com.mapbox.maps.extension.style.sources.generated.rasterSource import com.mapbox.maps.extension.style.sources.getSourceAs +import com.mapbox.maps.logI import com.mapbox.maps.testapp.R /** @@ -62,7 +62,7 @@ class TileJsonActivity : AppCompatActivity() { mapboxMap.getStyle { val properties = it.getStyleSourceProperties(SOURCE_ID).value!! val propertiesJson = ValueConverter.toJson(properties) - Logger.i(TAG, propertiesJson) + logI(TAG, propertiesJson) Toast.makeText(this, propertiesJson, Toast.LENGTH_LONG).show() } } diff --git a/app/src/main/java/com/mapbox/maps/testapp/examples/viewport/ViewportShowcaseActivity.kt b/app/src/main/java/com/mapbox/maps/testapp/examples/viewport/ViewportShowcaseActivity.kt index 37c1fa60fe..a24253e034 100644 --- a/app/src/main/java/com/mapbox/maps/testapp/examples/viewport/ViewportShowcaseActivity.kt +++ b/app/src/main/java/com/mapbox/maps/testapp/examples/viewport/ViewportShowcaseActivity.kt @@ -8,15 +8,10 @@ import android.widget.Button import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.content.res.AppCompatResources import com.mapbox.api.directions.v5.models.DirectionsResponse -import com.mapbox.common.Logger import com.mapbox.core.constants.Constants import com.mapbox.geojson.LineString import com.mapbox.geojson.Point -import com.mapbox.maps.CameraOptions -import com.mapbox.maps.EdgeInsets -import com.mapbox.maps.MapView -import com.mapbox.maps.MapboxExperimental -import com.mapbox.maps.MapboxMap +import com.mapbox.maps.* import com.mapbox.maps.plugin.LocationPuck2D import com.mapbox.maps.plugin.locationcomponent.location import com.mapbox.maps.plugin.viewport.ViewportPlugin @@ -135,7 +130,7 @@ class ViewportShowcaseActivity : AppCompatActivity() { OverviewViewportStateOptions.Builder().geometry(simulateRouteLocationProvider.route).build() ) viewport.addStatusObserver { from, to, reason -> - Logger.i( + logI( TAG, """ ViewportStatus changed: diff --git a/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceCallback.kt b/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceCallback.kt index 5d4add9967..3199965ff0 100644 --- a/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceCallback.kt +++ b/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceCallback.kt @@ -5,9 +5,9 @@ import androidx.car.app.AppManager import androidx.car.app.CarContext import androidx.car.app.SurfaceCallback import androidx.car.app.SurfaceContainer -import com.mapbox.common.Logger import com.mapbox.maps.MapInitOptions import com.mapbox.maps.MapboxExperimental +import com.mapbox.maps.logI /** * @see MapboxCarMap to create new map experiences. @@ -28,7 +28,7 @@ internal class CarMapSurfaceCallback internal constructor( } override fun onSurfaceAvailable(surfaceContainer: SurfaceContainer) { - Logger.i(TAG, "onSurfaceAvailable $surfaceContainer") + logI(TAG, "onSurfaceAvailable $surfaceContainer") surfaceContainer.surface?.let { surface -> val mapSurface = MapSurfaceProvider.create( carContext, @@ -44,7 +44,7 @@ internal class CarMapSurfaceCallback internal constructor( } override fun onVisibleAreaChanged(visibleArea: Rect) { - Logger.i(TAG, "onVisibleAreaChanged visibleArea:$visibleArea") + logI(TAG, "onVisibleAreaChanged visibleArea:$visibleArea") carMapSurfaceOwner.surfaceVisibleAreaChanged(visibleArea) } @@ -53,22 +53,22 @@ internal class CarMapSurfaceCallback internal constructor( } override fun onScroll(distanceX: Float, distanceY: Float) { - Logger.i(TAG, "onScroll $distanceX, $distanceY") + logI(TAG, "onScroll $distanceX, $distanceY") carMapSurfaceOwner.scroll(distanceX, distanceY) } override fun onFling(velocityX: Float, velocityY: Float) { - Logger.i(TAG, "onFling $velocityX, $velocityY") + logI(TAG, "onFling $velocityX, $velocityY") carMapSurfaceOwner.fling(velocityX, velocityY) } override fun onScale(focusX: Float, focusY: Float, scaleFactor: Float) { - Logger.i(TAG, "onScroll $focusX, $focusY, $scaleFactor") + logI(TAG, "onScroll $focusX, $focusY, $scaleFactor") carMapSurfaceOwner.scale(focusX, focusY, scaleFactor) } override fun onSurfaceDestroyed(surfaceContainer: SurfaceContainer) { - Logger.i(TAG, "onSurfaceDestroyed") + logI(TAG, "onSurfaceDestroyed") carMapSurfaceOwner.surfaceDestroyed() } diff --git a/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceOwner.kt b/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceOwner.kt index 7667422610..31ac3082d0 100644 --- a/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceOwner.kt +++ b/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceOwner.kt @@ -1,10 +1,10 @@ package com.mapbox.maps.extension.androidauto import android.graphics.Rect -import com.mapbox.common.Logger import com.mapbox.maps.EdgeInsets import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.ScreenCoordinate +import com.mapbox.maps.logI import java.util.concurrent.CopyOnWriteArraySet /** @@ -30,13 +30,13 @@ internal class CarMapSurfaceOwner( fun registerObserver(mapboxCarMapObserver: MapboxCarMapObserver) { carMapObservers.add(mapboxCarMapObserver) - Logger.i(TAG, "registerObserver + 1 = ${carMapObservers.size}") + logI(TAG, "registerObserver + 1 = ${carMapObservers.size}") mapboxCarMapSurface?.let { carMapSurface -> mapboxCarMapObserver.onAttached(carMapSurface) } ifNonNull(mapboxCarMapSurface, visibleArea, edgeInsets) { _, area, edge -> - Logger.i(TAG, "registerObserver visibleAreaChanged") + logI(TAG, "registerObserver visibleAreaChanged") mapboxCarMapObserver.onVisibleAreaChanged(area, edge) } } @@ -44,7 +44,7 @@ internal class CarMapSurfaceOwner( fun unregisterObserver(mapboxCarMapObserver: MapboxCarMapObserver) { carMapObservers.remove(mapboxCarMapObserver) mapboxCarMapSurface?.let { mapboxCarMapObserver.onDetached(it) } - Logger.i(TAG, "unregisterObserver - 1 = ${carMapObservers.size}") + logI(TAG, "unregisterObserver - 1 = ${carMapObservers.size}") } fun clearObservers() { @@ -53,7 +53,7 @@ internal class CarMapSurfaceOwner( } fun surfaceAvailable(mapboxCarMapSurface: MapboxCarMapSurface) { - Logger.i(TAG, "surfaceAvailable") + logI(TAG, "surfaceAvailable") val oldCarMapSurface = this.mapboxCarMapSurface this.mapboxCarMapSurface = mapboxCarMapSurface oldCarMapSurface?.let { carMapObservers.forEach { it.onDetached(oldCarMapSurface) } } @@ -63,7 +63,7 @@ internal class CarMapSurfaceOwner( } fun surfaceDestroyed() { - Logger.i(TAG, "surfaceDestroyed") + logI(TAG, "surfaceDestroyed") val detachSurface = this.mapboxCarMapSurface detachSurface?.mapSurface?.onStop() detachSurface?.mapSurface?.surfaceDestroyed() @@ -73,7 +73,7 @@ internal class CarMapSurfaceOwner( } fun surfaceVisibleAreaChanged(visibleArea: Rect) { - Logger.i(TAG, "surfaceVisibleAreaChanged") + logI(TAG, "surfaceVisibleAreaChanged") this.visibleArea = visibleArea notifyVisibleAreaChanged() } @@ -82,7 +82,7 @@ internal class CarMapSurfaceOwner( this.edgeInsets = visibleArea?.edgeInsets() this.visibleCenter = visibleCenter() ifNonNull(mapboxCarMapSurface, visibleArea, edgeInsets) { _, area, edge -> - Logger.i(TAG, "notifyVisibleAreaChanged $area $edge") + logI(TAG, "notifyVisibleAreaChanged $area $edge") carMapObservers.forEach { it.onVisibleAreaChanged(area, edge) } diff --git a/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/DefaultMapboxCarMapGestureHandler.kt b/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/DefaultMapboxCarMapGestureHandler.kt index 3e6e5eb6dd..0f2af119c4 100644 --- a/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/DefaultMapboxCarMapGestureHandler.kt +++ b/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/DefaultMapboxCarMapGestureHandler.kt @@ -1,11 +1,7 @@ package com.mapbox.maps.extension.androidauto import androidx.car.app.SurfaceCallback -import com.mapbox.common.Logger -import com.mapbox.maps.CameraOptions -import com.mapbox.maps.MapboxExperimental -import com.mapbox.maps.MapboxMap -import com.mapbox.maps.ScreenCoordinate +import com.mapbox.maps.* import com.mapbox.maps.plugin.animation.camera /** @@ -36,7 +32,7 @@ open class DefaultMapboxCarMapGestureHandler : MapboxCarMapGestureHandler { visibleCenter.x - distanceX, visibleCenter.y - distanceY ) - Logger.i(TAG, "scroll from $visibleCenter to $toCoordinate") + logI(TAG, "scroll from $visibleCenter to $toCoordinate") setCamera(getDragCameraOptions(visibleCenter, toCoordinate)) dragEnd() } @@ -55,7 +51,7 @@ open class DefaultMapboxCarMapGestureHandler : MapboxCarMapGestureHandler { velocityX: Float, velocityY: Float ) { - Logger.i(TAG, "fling $velocityX, $velocityY") + logI(TAG, "fling $velocityX, $velocityY") // TODO implement fling // https://github.com/mapbox/mapbox-navigation-android-examples/issues/67 } @@ -89,7 +85,7 @@ open class DefaultMapboxCarMapGestureHandler : MapboxCarMapGestureHandler { .anchor(anchor) .build() - Logger.i(TAG, "scale with $focusX, $focusY $scaleFactor -> $fromZoom $toZoom") + logI(TAG, "scale with $focusX, $focusY $scaleFactor -> $fromZoom $toZoom") if (scaleFactor == DOUBLE_TAP_SCALE_FACTOR) { camera.easeTo(cameraOptions) } else { diff --git a/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceCallbackTest.kt b/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceCallbackTest.kt index 7398d98133..8d345ad865 100644 --- a/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceCallbackTest.kt +++ b/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceCallbackTest.kt @@ -4,11 +4,7 @@ import android.graphics.Rect import androidx.car.app.AppManager import androidx.car.app.CarContext import androidx.car.app.SurfaceCallback -import com.mapbox.common.Logger -import com.mapbox.maps.MapInitOptions -import com.mapbox.maps.MapSurface -import com.mapbox.maps.MapboxExperimental -import com.mapbox.maps.Style +import com.mapbox.maps.* import io.mockk.Runs import io.mockk.every import io.mockk.just @@ -41,8 +37,8 @@ class CarMapSurfaceCallbackTest { @Before fun setup() { - mockkStatic(Logger::class) - every { Logger.i(any(), any()) } just Runs + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logI(any(), any()) } just Runs mockkObject(MapSurfaceProvider) every { MapSurfaceProvider.create(any(), any(), any()) } returns testMapSurface } diff --git a/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceOwnerTest.kt b/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceOwnerTest.kt index a431528cdd..606becc1d2 100644 --- a/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceOwnerTest.kt +++ b/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/CarMapSurfaceOwnerTest.kt @@ -6,30 +6,35 @@ import android.graphics.Rect import com.mapbox.maps.EdgeInsets import com.mapbox.maps.MapSurface import com.mapbox.maps.MapboxExperimental -import com.mapbox.maps.extension.androidauto.testing.ShadowLogger -import io.mockk.Runs -import io.mockk.every -import io.mockk.just -import io.mockk.mockk -import io.mockk.slot -import io.mockk.verify -import io.mockk.verifyOrder +import com.mapbox.maps.logI +import io.mockk.* +import org.junit.After import org.junit.Assert.assertEquals import org.junit.Assert.assertNotEquals import org.junit.Assert.assertNull +import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @OptIn(MapboxExperimental::class) @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class CarMapSurfaceOwnerTest { private val carMapGestures = mockk(relaxed = true) private val carMapSurfaceOwner = CarMapSurfaceOwner(carMapGestures) + @Before + fun `set up mocks`() { + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logI(any(), any()) } just Runs + } + + @After + fun cleanup() { + unmockkStatic("com.mapbox.maps.MapboxLogger") + } + @Test fun `should not notify observer loaded when there is no surface`() { val firstObserver: MapboxCarMapObserver = mockk(relaxed = true) diff --git a/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/DefaultMapboxCarMapGestureHandlerTest.kt b/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/DefaultMapboxCarMapGestureHandlerTest.kt index 7ad677754d..0c7f3130e9 100644 --- a/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/DefaultMapboxCarMapGestureHandlerTest.kt +++ b/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/DefaultMapboxCarMapGestureHandlerTest.kt @@ -5,21 +5,18 @@ package com.mapbox.maps.extension.androidauto import com.mapbox.maps.CameraOptions import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.ScreenCoordinate -import com.mapbox.maps.extension.androidauto.testing.ShadowLogger +import com.mapbox.maps.logI import com.mapbox.maps.plugin.animation.camera -import io.mockk.every -import io.mockk.mockk -import io.mockk.slot -import io.mockk.verifyOrder +import io.mockk.* +import org.junit.After import org.junit.Assert.assertEquals +import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @OptIn(MapboxExperimental::class) @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class DefaultMapboxCarMapGestureHandlerTest { private val surface = mockk(relaxed = true) { @@ -30,6 +27,17 @@ class DefaultMapboxCarMapGestureHandlerTest { } private val carMapGestures = DefaultMapboxCarMapGestureHandler() + @Before + fun `set up mocks`() { + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logI(any(), any()) } just Runs + } + + @After + fun cleanup() { + unmockkStatic("com.mapbox.maps.MapboxLogger") + } + @Test fun `onScroll will start and stop dragging`() { val center = ScreenCoordinate(450.0, 225.0) diff --git a/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/MapboxCarMapTest.kt b/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/MapboxCarMapTest.kt index 68de1c2cca..129da2f419 100644 --- a/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/MapboxCarMapTest.kt +++ b/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/MapboxCarMapTest.kt @@ -3,11 +3,7 @@ package com.mapbox.maps.extension.androidauto import androidx.car.app.AppManager import androidx.car.app.CarContext import androidx.car.app.SurfaceCallback -import com.mapbox.common.Logger -import com.mapbox.maps.MapInitOptions -import com.mapbox.maps.MapSurface -import com.mapbox.maps.MapboxExperimental -import com.mapbox.maps.ScreenCoordinate +import com.mapbox.maps.* import io.mockk.Runs import io.mockk.every import io.mockk.just @@ -33,8 +29,8 @@ class MapboxCarMapTest { @Before fun setup() { - mockkStatic(Logger::class) - every { Logger.i(any(), any()) } just Runs + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logI(any(), any()) } just Runs mockkObject(MapSurfaceProvider) every { MapSurfaceProvider.create(any(), any(), any()) } returns testMapSurface } diff --git a/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/testing/ShadowLogger.java b/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/testing/ShadowLogger.java deleted file mode 100644 index 46be4f9f4b..0000000000 --- a/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/testing/ShadowLogger.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.mapbox.maps.extension.androidauto.testing; - -import android.util.Log; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import com.mapbox.common.Logger; - -import org.robolectric.annotation.Implementation; -import org.robolectric.annotation.Implements; - -@Implements(Logger.class) -public class ShadowLogger { - - @Implementation - public static void e(@Nullable String tag, @NonNull String message) { - Log.e(message, tag); - } - - @Implementation - public static void d(@Nullable String tag, @NonNull String message) { - Log.d(message, tag); - } - - @Implementation - public static void w(@Nullable String tag, @NonNull String message) { - Log.w(message, tag); - } - - @Implementation - public static void i(@Nullable String tag, @NonNull String message) { - Log.i(message, tag); - } -} \ No newline at end of file diff --git a/extension-localization/src/main/java/com/mapbox/maps/extension/localization/Localization.kt b/extension-localization/src/main/java/com/mapbox/maps/extension/localization/Localization.kt index 041d3f7d7a..e0102c0759 100644 --- a/extension-localization/src/main/java/com/mapbox/maps/extension/localization/Localization.kt +++ b/extension-localization/src/main/java/com/mapbox/maps/extension/localization/Localization.kt @@ -1,6 +1,5 @@ package com.mapbox.maps.extension.localization -import com.mapbox.common.Logger import com.mapbox.maps.StyleObjectInfo import com.mapbox.maps.extension.style.StyleInterface import com.mapbox.maps.extension.style.expressions.dsl.generated.get @@ -9,6 +8,8 @@ import com.mapbox.maps.extension.style.layers.generated.SymbolLayer import com.mapbox.maps.extension.style.layers.getLayerAs import com.mapbox.maps.extension.style.sources.generated.VectorSource import com.mapbox.maps.extension.style.sources.getSourceAs +import com.mapbox.maps.logE +import com.mapbox.maps.logI import java.util.* /** @@ -21,7 +22,7 @@ import java.util.* internal fun setMapLanguage(locale: Locale, style: StyleInterface, layerIds: List?) { var convertedLocale = "name_${locale.language}" if (!isSupportedLanguage(convertedLocale)) { - Logger.e(TAG, "Locale: $locale is not supported.") + logE(TAG, "Locale: $locale is not supported.") return } @@ -37,7 +38,7 @@ internal fun setMapLanguage(locale: Locale, style: StyleInterface, layerIds: Lis symbolLayer?.let { it.textFieldAsExpression?.let { textFieldExpression -> if (BuildConfig.DEBUG) { - Logger.i(TAG, "Localize layer id: ${it.layerId}") + logI(TAG, "Localize layer id: ${it.layerId}") } if (sourceIsStreetsV8(style, source)) { @@ -59,7 +60,7 @@ private fun convertExpression(language: String, layer: SymbolLayer, textField: E get(language).toJson() ).replace(EXPRESSION_ABBR_REGEX, get(language).toJson()) if (BuildConfig.DEBUG) { - Logger.i(TAG, "Localize layer with expression: $stringExpression") + logI(TAG, "Localize layer with expression: $stringExpression") } layer.textField(Expression.fromRaw(stringExpression)) } diff --git a/extension-localization/src/main/java/com/mapbox/maps/extension/localization/SupportedLanguages.kt b/extension-localization/src/main/java/com/mapbox/maps/extension/localization/SupportedLanguages.kt index cf52ded403..7026dbb8f2 100644 --- a/extension-localization/src/main/java/com/mapbox/maps/extension/localization/SupportedLanguages.kt +++ b/extension-localization/src/main/java/com/mapbox/maps/extension/localization/SupportedLanguages.kt @@ -1,6 +1,6 @@ package com.mapbox.maps.extension.localization -import com.mapbox.common.Logger +import com.mapbox.maps.logW import java.util.* /** @@ -130,7 +130,7 @@ internal fun getLanguageNameV7(locale: Locale): String { } return "name_${locale.language}".apply { if (!supportedV7.contains(this)) { - Logger.w(TAG, "Language ${locale.displayLanguage} is not supported in the current style") + logW(TAG, "Language ${locale.displayLanguage} is not supported in the current style") } } } @@ -145,7 +145,7 @@ internal fun getLanguageNameV8(locale: Locale): String { } return "name_${locale.language}".apply { if (!supportedV8.contains(this)) { - Logger.w(TAG, "Language ${locale.displayLanguage} is not supported in the current style") + logW(TAG, "Language ${locale.displayLanguage} is not supported in the current style") } } } diff --git a/extension-style/src/main/java/com/mapbox/maps/extension/style/layers/LayerExt.kt b/extension-style/src/main/java/com/mapbox/maps/extension/style/layers/LayerExt.kt index c1eb1f3c79..6c713533d0 100644 --- a/extension-style/src/main/java/com/mapbox/maps/extension/style/layers/LayerExt.kt +++ b/extension-style/src/main/java/com/mapbox/maps/extension/style/layers/LayerExt.kt @@ -1,7 +1,6 @@ @file:JvmName("LayerUtils") package com.mapbox.maps.extension.style.layers -import com.mapbox.common.Logger import com.mapbox.maps.LayerPosition import com.mapbox.maps.MapboxStyleException import com.mapbox.maps.StyleManagerInterface @@ -10,6 +9,7 @@ import com.mapbox.maps.extension.style.StyleInterface import com.mapbox.maps.extension.style.layers.generated.* import com.mapbox.maps.extension.style.utils.silentUnwrap import com.mapbox.maps.extension.style.utils.unwrap +import com.mapbox.maps.logE /** * Extension function to get a Layer provided by the Style Extension by layer id. @@ -32,7 +32,7 @@ fun StyleManagerInterface.getLayer(layerId: String): Layer? { "raster" -> RasterLayer(layerId, this.getStyleLayerProperty(layerId, "source").unwrap()).also { it.delegate = this } "symbol" -> SymbolLayer(layerId, this.getStyleLayerProperty(layerId, "source").unwrap()).also { it.delegate = this } else -> { - Logger.e(TAG, "Layer type: $type unknown.") + logE(TAG, "Layer type: $type unknown.") null } } @@ -49,7 +49,7 @@ fun StyleManagerInterface.getLayer(layerId: String): Layer? { inline fun StyleManagerInterface.getLayerAs(layerId: String): T? { val layer = getLayer(layerId) as? T if (layer == null) { - Logger.e(TAG, "Given layerId = $layerId is not requested type in Layer") + logE(TAG, "Given layerId = $layerId is not requested type in Layer") return null } return layer diff --git a/extension-style/src/main/java/com/mapbox/maps/extension/style/sources/Source.kt b/extension-style/src/main/java/com/mapbox/maps/extension/style/sources/Source.kt index 7a355aa930..cc4d543bf8 100644 --- a/extension-style/src/main/java/com/mapbox/maps/extension/style/sources/Source.kt +++ b/extension-style/src/main/java/com/mapbox/maps/extension/style/sources/Source.kt @@ -2,13 +2,13 @@ package com.mapbox.maps.extension.style.sources import android.util.Log import com.mapbox.bindgen.Value -import com.mapbox.common.Logger import com.mapbox.maps.MapboxStyleException import com.mapbox.maps.extension.style.StyleContract import com.mapbox.maps.extension.style.StyleInterface import com.mapbox.maps.extension.style.layers.properties.PropertyValue import com.mapbox.maps.extension.style.sources.generated.GeoJsonSource import com.mapbox.maps.extension.style.utils.unwrap +import com.mapbox.maps.logE /** * Base class for sources. @@ -111,7 +111,7 @@ abstract class Source( if (throwRuntimeException) { throw MapboxStyleException(it) } else { - Logger.e(TAG, it) + logE(TAG, it) } } } @@ -119,7 +119,7 @@ abstract class Source( if (throwRuntimeException) { throw e } else { - Logger.e(TAG, e.message ?: "") + logE(TAG, e.message ?: "") } } } diff --git a/extension-style/src/main/java/com/mapbox/maps/extension/style/sources/SourceExt.kt b/extension-style/src/main/java/com/mapbox/maps/extension/style/sources/SourceExt.kt index eea04c7489..108c4d5c2c 100644 --- a/extension-style/src/main/java/com/mapbox/maps/extension/style/sources/SourceExt.kt +++ b/extension-style/src/main/java/com/mapbox/maps/extension/style/sources/SourceExt.kt @@ -1,12 +1,13 @@ @file:JvmName("SourceUtils") package com.mapbox.maps.extension.style.sources -import com.mapbox.common.Logger import com.mapbox.maps.StyleManagerInterface import com.mapbox.maps.extension.style.StyleContract import com.mapbox.maps.extension.style.StyleInterface import com.mapbox.maps.extension.style.sources.generated.* import com.mapbox.maps.extension.style.utils.silentUnwrap +import com.mapbox.maps.logE +import com.mapbox.maps.logW /** * Extension function to get a Source provided by the Style Extension by source id. @@ -23,7 +24,7 @@ fun StyleManagerInterface.getSource(sourceId: String): Source? { "raster-dem" -> RasterDemSource.Builder(sourceId).build().also { it.delegate = this as StyleInterface } "raster" -> RasterSource.Builder(sourceId).build().also { it.delegate = this as StyleInterface } else -> { - Logger.e("StyleSourcePlugin", "Source type: $type unknown.") + logE("StyleSourcePlugin", "Source type: $type unknown.") null } } @@ -40,7 +41,7 @@ fun StyleManagerInterface.getSource(sourceId: String): Source? { inline fun StyleManagerInterface.getSourceAs(sourceId: String): T? { val source = getSource(sourceId) if (source !is T) { - Logger.w( + logW( "StyleSourcePlugin", "Given sourceId = $sourceId is not requested type in getSourceAs." ) diff --git a/plugin-animation/src/main/java/com/mapbox/maps/plugin/animation/CameraAnimationsPluginImpl.kt b/plugin-animation/src/main/java/com/mapbox/maps/plugin/animation/CameraAnimationsPluginImpl.kt index 60372e6d76..62c586e817 100644 --- a/plugin-animation/src/main/java/com/mapbox/maps/plugin/animation/CameraAnimationsPluginImpl.kt +++ b/plugin-animation/src/main/java/com/mapbox/maps/plugin/animation/CameraAnimationsPluginImpl.kt @@ -8,7 +8,6 @@ import android.os.Handler import android.os.Looper import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting.PRIVATE -import com.mapbox.common.Logger import com.mapbox.geojson.Point import com.mapbox.maps.* import com.mapbox.maps.plugin.animation.animator.* @@ -190,12 +189,12 @@ class CameraAnimationsPluginImpl : CameraAnimationsPlugin { notifyListeners(mapCameraManagerDelegate.cameraState) lastCameraOptions = cameraOptions } catch (e: Exception) { - Logger.e( + logE( TAG, "Exception while setting camera options : ${e.message} CameraOptions = $cameraOptions" ) } catch (error: Error) { - Logger.e( + logE( TAG, "Error while setting camera options : ${error.message} CameraOptions = $cameraOptions" ) @@ -214,7 +213,7 @@ class CameraAnimationsPluginImpl : CameraAnimationsPlugin { CameraAnimatorType.PITCH -> mapCameraManagerDelegate.cameraState.pitch }.also { if (debugMode) { - Logger.d( + logD( TAG, "Animation ${cameraAnimator.type.name}(${cameraAnimator.hashCode()}): automatically setting start value $it." ) @@ -297,7 +296,7 @@ class CameraAnimationsPluginImpl : CameraAnimationsPlugin { // finally register update listener in order to update map properly registerInternalUpdateListener(this) if (debugMode) { - Logger.d(TAG, "Animation ${type.name}(${hashCode()}) started.") + logD(TAG, "Animation ${type.name}(${hashCode()}) started.") } } } ?: throw MapboxCameraAnimationException( @@ -323,11 +322,11 @@ class CameraAnimationsPluginImpl : CameraAnimationsPlugin { AnimationFinishStatus.CANCELED -> "was canceled." AnimationFinishStatus.ENDED -> "ended." } - Logger.d(TAG, "Animation ${type.name}(${hashCode()}) $logText") + logD(TAG, "Animation ${type.name}(${hashCode()}) $logText") } if (isInternal) { if (debugMode) { - Logger.d(TAG, "Internal Animator ${type.name} was unregistered") + logD(TAG, "Internal Animator ${type.name} was unregistered") } unregisterAnimators(this, cancelAnimators = false) } @@ -405,7 +404,7 @@ class CameraAnimationsPluginImpl : CameraAnimationsPlugin { if (animator is CameraAnimator<*>) { registerInternalListener(animator) } else { - Logger.e(TAG, "All animators must be CameraAnimator's to be registered!") + logE(TAG, "All animators must be CameraAnimator's to be registered!") return } } @@ -430,7 +429,7 @@ class CameraAnimationsPluginImpl : CameraAnimationsPlugin { animator.removeInternalListener() animator.removeInternalUpdateListener() } else { - Logger.e(TAG, "All animators must be CameraAnimator's to be unregistered!") + logE(TAG, "All animators must be CameraAnimator's to be unregistered!") return } } @@ -786,7 +785,7 @@ class CameraAnimationsPluginImpl : CameraAnimationsPlugin { cameraAnimator.owner = MapAnimationOwnerRegistry.INTERNAL cameraAnimators.add(cameraAnimator) } else { - Logger.e(TAG, "All animators must be CameraAnimator's to be played together!") + logE(TAG, "All animators must be CameraAnimator's to be played together!") } } registerAnimators(*cameraAnimators.toTypedArray()) @@ -809,7 +808,7 @@ class CameraAnimationsPluginImpl : CameraAnimationsPlugin { cameraAnimator.owner = MapAnimationOwnerRegistry.INTERNAL cameraAnimators.add(cameraAnimator) } else { - Logger.e(TAG, "All animators must be CameraAnimator's to be played sequentially!") + logE(TAG, "All animators must be CameraAnimator's to be played sequentially!") } } registerAnimators(*cameraAnimators.toTypedArray()) diff --git a/plugin-animation/src/main/java/com/mapbox/maps/plugin/animation/animator/CameraAnimator.kt b/plugin-animation/src/main/java/com/mapbox/maps/plugin/animation/animator/CameraAnimator.kt index e87a2b1c2f..b8130a3a01 100644 --- a/plugin-animation/src/main/java/com/mapbox/maps/plugin/animation/animator/CameraAnimator.kt +++ b/plugin-animation/src/main/java/com/mapbox/maps/plugin/animation/animator/CameraAnimator.kt @@ -3,8 +3,8 @@ package com.mapbox.maps.plugin.animation.animator import android.animation.TypeEvaluator import android.animation.ValueAnimator import android.annotation.SuppressLint -import com.mapbox.common.Logger import com.mapbox.maps.CameraOptions +import com.mapbox.maps.logW import com.mapbox.maps.plugin.animation.CameraAnimatorOptions import com.mapbox.maps.plugin.animation.CameraAnimatorType @@ -83,7 +83,7 @@ abstract class CameraAnimator ( canceled = false super.start() } else { - Logger.w( + logW( TAG, "Animation $type was not registered and will not run. Register it with registerAnimation() method." ) diff --git a/plugin-animation/src/test/java/com/mapbox/common/ShadowLogger.java b/plugin-animation/src/test/java/com/mapbox/common/ShadowLogger.java deleted file mode 100644 index 65e1acc120..0000000000 --- a/plugin-animation/src/test/java/com/mapbox/common/ShadowLogger.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.mapbox.common; - -import android.util.Log; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import org.robolectric.annotation.Implementation; -import org.robolectric.annotation.Implements; - -@Implements(Logger.class) -public class ShadowLogger { - - @Implementation - public static void e(@Nullable String tag, @NonNull String message) { - Log.e(message, tag); - } - - @Implementation - public static void d(@Nullable String tag, @NonNull String message) { - Log.d(message, tag); - } - - @Implementation - public static void w(@Nullable String tag, @NonNull String message) { - Log.w(message, tag); - } - - @Implementation - public static void i(@Nullable String tag, @NonNull String message) { - Log.i(message, tag); - } -} \ No newline at end of file diff --git a/plugin-animation/src/test/java/com/mapbox/maps/plugin/animation/CameraAnimationsListenersTest.kt b/plugin-animation/src/test/java/com/mapbox/maps/plugin/animation/CameraAnimationsListenersTest.kt index 08c742d884..e19d8eae1a 100644 --- a/plugin-animation/src/test/java/com/mapbox/maps/plugin/animation/CameraAnimationsListenersTest.kt +++ b/plugin-animation/src/test/java/com/mapbox/maps/plugin/animation/CameraAnimationsListenersTest.kt @@ -3,8 +3,8 @@ package com.mapbox.maps.plugin.animation import android.animation.Animator import android.animation.ValueAnimator import android.os.Looper -import com.mapbox.common.ShadowLogger import com.mapbox.maps.CameraOptions +import com.mapbox.maps.logW import com.mapbox.maps.plugin.animation.CameraAnimationsPluginImplTest.Companion.toCameraState import com.mapbox.maps.plugin.animation.CameraAnimatorOptions.Companion.cameraAnimatorOptions import com.mapbox.maps.plugin.animation.animator.CameraBearingAnimator @@ -12,18 +12,17 @@ import com.mapbox.maps.plugin.delegates.MapCameraManagerDelegate import com.mapbox.maps.plugin.delegates.MapDelegateProvider import com.mapbox.maps.plugin.delegates.MapTransformDelegate import io.mockk.* +import org.junit.After import org.junit.Assert import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner import org.robolectric.Shadows -import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import org.robolectric.shadows.ShadowLog @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) @LooperMode(LooperMode.Mode.PAUSED) class CameraAnimationsListenersTest { @@ -47,6 +46,8 @@ class CameraAnimationsListenersTest { val delegateProvider = mockk(relaxed = true) mapCameraManagerDelegate = mockk(relaxed = true) mapTransformDelegate = mockk(relaxed = true) + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logW(any(), any()) } just Runs mockkObject(CameraTransform) every { delegateProvider.mapCameraManagerDelegate } returns mapCameraManagerDelegate every { delegateProvider.mapTransformDelegate } returns mapTransformDelegate @@ -55,6 +56,12 @@ class CameraAnimationsListenersTest { } } + @After + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") + unmockkObject(CameraTransform) + } + @Test fun testAddListenerBeforeRegister() { val bearingAnimator = CameraBearingAnimator(CameraAnimatorOptions.Builder(1.0).build(), true) diff --git a/plugin-animation/src/test/java/com/mapbox/maps/plugin/animation/CameraAnimationsPluginImplTest.kt b/plugin-animation/src/test/java/com/mapbox/maps/plugin/animation/CameraAnimationsPluginImplTest.kt index c7aba75934..5c6e4fcfb9 100644 --- a/plugin-animation/src/test/java/com/mapbox/maps/plugin/animation/CameraAnimationsPluginImplTest.kt +++ b/plugin-animation/src/test/java/com/mapbox/maps/plugin/animation/CameraAnimationsPluginImplTest.kt @@ -7,7 +7,6 @@ import android.animation.ValueAnimator import android.os.Handler import android.os.Looper.getMainLooper import androidx.core.animation.addListener -import com.mapbox.common.ShadowLogger import com.mapbox.geojson.Point import com.mapbox.maps.* import com.mapbox.maps.plugin.animation.CameraAnimationsPluginImpl.Companion.TAG @@ -21,13 +20,13 @@ import com.mapbox.maps.plugin.delegates.MapDelegateProvider import com.mapbox.maps.plugin.delegates.MapTransformDelegate import io.mockk.* import io.mockk.verify +import org.junit.After import org.junit.Assert.* import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner import org.robolectric.Shadows.shadowOf -import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import org.robolectric.shadows.ShadowLog import java.lang.Error @@ -35,7 +34,6 @@ import java.lang.Exception import java.time.Duration @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) @LooperMode(LooperMode.Mode.PAUSED) class CameraAnimationsPluginImplTest { @@ -77,6 +75,11 @@ class CameraAnimationsPluginImplTest { mapCameraManagerDelegate = mockk(relaxed = true) mapTransformDelegate = mockk(relaxed = true) mockkObject(CameraTransform) + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logW(any(), any()) } just Runs + every { logI(any(), any()) } just Runs + every { logD(any(), any()) } just Runs + every { logE(any(), any()) } just Runs every { delegateProvider.mapCameraManagerDelegate } returns mapCameraManagerDelegate every { delegateProvider.mapTransformDelegate } returns mapTransformDelegate cameraAnimationsPluginImpl = CameraAnimationsPluginImpl().apply { @@ -84,6 +87,12 @@ class CameraAnimationsPluginImplTest { } } + @After + fun cleanUp() { + unmockkObject(CameraTransform) + unmockkStatic("com.mapbox.maps.MapboxLogger") + } + @Test fun registerAnimators() { val animators = arrayOf( @@ -961,24 +970,20 @@ class CameraAnimationsPluginImplTest { @Test fun debugModeTrueTest() { - mockkStatic(ShadowLogger::class) cameraAnimationsPluginImpl.debugMode = true shadowOf(getMainLooper()).pause() cameraAnimationsPluginImpl.easeTo(cameraState.toCameraOptions(), mapAnimationOptions { duration(DURATION) }) shadowOf(getMainLooper()).idle() - verify { ShadowLogger.d(TAG, any()) } - unmockkStatic(ShadowLogger::class) + verify { logD(TAG, any()) } } @Test fun debugModeFalseTest() { - mockkStatic(ShadowLogger::class) cameraAnimationsPluginImpl.debugMode = false shadowOf(getMainLooper()).pause() cameraAnimationsPluginImpl.easeTo(cameraState.toCameraOptions(), mapAnimationOptions { duration(DURATION) }) shadowOf(getMainLooper()).idle() - verify(exactly = 0) { ShadowLogger.d(TAG, any()) } - unmockkStatic(ShadowLogger::class) + verify(exactly = 0) { logD(TAG, any()) } } @Test diff --git a/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/AnnotationManagerImpl.kt b/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/AnnotationManagerImpl.kt index 1eb4fbe507..b94fdfd4e0 100644 --- a/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/AnnotationManagerImpl.kt +++ b/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/AnnotationManagerImpl.kt @@ -2,15 +2,11 @@ package com.mapbox.maps.plugin.annotation import android.graphics.PointF import com.mapbox.android.gestures.MoveGestureDetector -import com.mapbox.common.Logger import com.mapbox.geojson.Feature import com.mapbox.geojson.FeatureCollection import com.mapbox.geojson.Geometry import com.mapbox.geojson.Point -import com.mapbox.maps.LayerPosition -import com.mapbox.maps.RenderedQueryGeometry -import com.mapbox.maps.RenderedQueryOptions -import com.mapbox.maps.ScreenCoordinate +import com.mapbox.maps.* import com.mapbox.maps.extension.style.StyleInterface import com.mapbox.maps.extension.style.expressions.dsl.generated.literal import com.mapbox.maps.extension.style.expressions.generated.Expression @@ -221,7 +217,7 @@ abstract class AnnotationManagerImpl, S : Annota style.addPersistentLayer(it, LayerPosition(null, annotationConfig.belowLayerId, null)) layerAdded = true } else { - Logger.w( + logW( TAG, "Layer with id $belowLayerId doesn't exist in style ${style.styleURI}, will add annotation layer directly." ) @@ -348,7 +344,7 @@ abstract class AnnotationManagerImpl, S : Annota updateDragSource() } else -> { - Logger.e( + logE( TAG, "Can't delete annotation: $annotation, the annotation isn't an active annotation." ) @@ -398,7 +394,7 @@ abstract class AnnotationManagerImpl, S : Annota dragSource?.let { geoJsonSource -> dragLayer?.let { layer -> if (!style.styleSourceExists(geoJsonSource.sourceId) || !style.styleLayerExists(layer.layerId)) { - Logger.e( + logE( TAG, "Can't update dragSource: drag source or layer has not been added to style." ) @@ -423,7 +419,7 @@ abstract class AnnotationManagerImpl, S : Annota source?.let { geoJsonSource -> layer?.let { layer -> if (!style.styleSourceExists(geoJsonSource.sourceId) || !style.styleLayerExists(layer.layerId)) { - Logger.e(TAG, "Can't update source: source or layer has not been added to style.") + logE(TAG, "Can't update source: source or layer has not been added to style.") return@getStyle } addIconToStyle(style, annotationMap.values) @@ -473,7 +469,7 @@ abstract class AnnotationManagerImpl, S : Annota updateDragSource() } else -> { - Logger.e( + logE( TAG, "Can't update annotation: $annotation, the annotation isn't an active annotation." ) @@ -498,7 +494,7 @@ abstract class AnnotationManagerImpl, S : Annota needUpdateDragSource = true } else -> { - Logger.e( + logE( TAG, "Can't update annotation: $it, the annotation isn't an active annotation." ) @@ -582,7 +578,7 @@ abstract class AnnotationManagerImpl, S : Annota } } else -> { - Logger.e( + logE( TAG, "Can't select annotation: $annotation, the annotation isn't an active annotation." ) @@ -807,7 +803,7 @@ abstract class AnnotationManagerImpl, S : Annota annotation = dragAnnotationMap[id] } else -> { - Logger.e( + logE( TAG, "The queried id: $id, doesn't belong to an active annotation." ) diff --git a/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/AnnotationPluginImplTest.kt b/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/AnnotationPluginImplTest.kt index 0da6f67efb..1ec8c92d91 100644 --- a/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/AnnotationPluginImplTest.kt +++ b/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/AnnotationPluginImplTest.kt @@ -18,10 +18,8 @@ import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class AnnotationPluginImplTest { private val delegateProvider: MapDelegateProvider = mockk(relaxed = true) private val style: StyleInterface = mockk(relaxed = true) diff --git a/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/ShadowLogger.java b/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/ShadowLogger.java deleted file mode 100644 index eeda048730..0000000000 --- a/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/ShadowLogger.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.mapbox.maps.plugin.annotation; - -import android.util.Log; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import com.mapbox.common.Logger; - -import org.robolectric.annotation.Implementation; -import org.robolectric.annotation.Implements; - -@Implements(Logger.class) -public class ShadowLogger { - - @Implementation - public static void e(@Nullable String tag, @NonNull String message) { - Log.e(message, tag); - } - - @Implementation - public static void d(@Nullable String tag, @NonNull String message) { - Log.d(message, tag); - } - - @Implementation - public static void w(@Nullable String tag, @NonNull String message) { - Log.w(message, tag); - } - - @Implementation - public static void i(@Nullable String tag, @NonNull String message) { - Log.i(message, tag); - } -} diff --git a/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/CircleAnnotationManagerTest.kt b/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/CircleAnnotationManagerTest.kt index 057dd4861f..2254d1f1e9 100644 --- a/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/CircleAnnotationManagerTest.kt +++ b/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/CircleAnnotationManagerTest.kt @@ -12,11 +12,7 @@ import com.mapbox.common.Cancelable import com.mapbox.geojson.Feature import com.mapbox.geojson.FeatureCollection import com.mapbox.geojson.Point -import com.mapbox.maps.LayerPosition -import com.mapbox.maps.QueriedFeature -import com.mapbox.maps.QueryFeaturesCallback -import com.mapbox.maps.RenderedQueryGeometry -import com.mapbox.maps.ScreenCoordinate +import com.mapbox.maps.* import com.mapbox.maps.extension.style.StyleInterface import com.mapbox.maps.extension.style.expressions.generated.Expression import com.mapbox.maps.extension.style.layers.addPersistentLayer @@ -32,15 +28,14 @@ import com.mapbox.maps.plugin.gestures.OnMapClickListener import com.mapbox.maps.plugin.gestures.OnMapLongClickListener import com.mapbox.maps.plugin.gestures.OnMoveListener import io.mockk.* +import org.junit.After import org.junit.Assert.* import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class CircleAnnotationManagerTest { private val delegateProvider: MapDelegateProvider = mockk() private val style: StyleInterface = mockk() @@ -65,6 +60,8 @@ class CircleAnnotationManagerTest { fun setUp() { mockkStatic("com.mapbox.maps.extension.style.layers.LayerUtils") mockkStatic("com.mapbox.maps.extension.style.sources.SourceUtils") + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logE(any(), any()) } just Runs val captureCallback = slot<(StyleInterface) -> Unit>() every { delegateProvider.getStyle(capture(captureCallback)) } answers { captureCallback.captured.invoke(style) @@ -137,6 +134,11 @@ class CircleAnnotationManagerTest { every { dragLayer.circleStrokeWidth(any()) } answers { dragLayer } } + @After + fun cleanUp() { + unmockkAll() + } + @Test fun initialize() { verify { gesturesPlugin.addOnMapClickListener(any()) } diff --git a/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/PointAnnotationManagerTest.kt b/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/PointAnnotationManagerTest.kt index 030426e1eb..f40401e920 100644 --- a/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/PointAnnotationManagerTest.kt +++ b/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/PointAnnotationManagerTest.kt @@ -14,11 +14,7 @@ import com.mapbox.common.Cancelable import com.mapbox.geojson.Feature import com.mapbox.geojson.FeatureCollection import com.mapbox.geojson.Point -import com.mapbox.maps.LayerPosition -import com.mapbox.maps.QueriedFeature -import com.mapbox.maps.QueryFeaturesCallback -import com.mapbox.maps.RenderedQueryGeometry -import com.mapbox.maps.ScreenCoordinate +import com.mapbox.maps.* import com.mapbox.maps.extension.style.StyleInterface import com.mapbox.maps.extension.style.expressions.generated.Expression import com.mapbox.maps.extension.style.layers.addPersistentLayer @@ -35,15 +31,14 @@ import com.mapbox.maps.plugin.gestures.OnMapClickListener import com.mapbox.maps.plugin.gestures.OnMapLongClickListener import com.mapbox.maps.plugin.gestures.OnMoveListener import io.mockk.* +import org.junit.After import org.junit.Assert.* import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class PointAnnotationManagerTest { private val delegateProvider: MapDelegateProvider = mockk() private val style: StyleInterface = mockk() @@ -69,6 +64,8 @@ class PointAnnotationManagerTest { fun setUp() { mockkStatic("com.mapbox.maps.extension.style.layers.LayerUtils") mockkStatic("com.mapbox.maps.extension.style.sources.SourceUtils") + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logE(any(), any()) } just Runs val captureCallback = slot<(StyleInterface) -> Unit>() every { delegateProvider.getStyle(capture(captureCallback)) } answers { captureCallback.captured.invoke(style) @@ -180,6 +177,11 @@ class PointAnnotationManagerTest { every { dragLayer.textOpacity(any()) } answers { dragLayer } } + @After + fun cleanUp() { + unmockkAll() + } + @Test fun initialize() { verify { gesturesPlugin.addOnMapClickListener(any()) } diff --git a/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/PolygonAnnotationManagerTest.kt b/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/PolygonAnnotationManagerTest.kt index 91eb055072..6328c5b0dc 100644 --- a/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/PolygonAnnotationManagerTest.kt +++ b/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/PolygonAnnotationManagerTest.kt @@ -29,6 +29,7 @@ import com.mapbox.maps.plugin.gestures.OnMapClickListener import com.mapbox.maps.plugin.gestures.OnMapLongClickListener import com.mapbox.maps.plugin.gestures.OnMoveListener import io.mockk.* +import org.junit.After import org.junit.Assert.* import org.junit.Before import org.junit.Test @@ -37,7 +38,7 @@ import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class, ShadowProjection::class]) +@Config(shadows = [ShadowProjection::class]) class PolygonAnnotationManagerTest { private val delegateProvider: MapDelegateProvider = mockk() private val style: StyleInterface = mockk() @@ -63,6 +64,8 @@ class PolygonAnnotationManagerTest { mockkStatic("com.mapbox.maps.extension.style.layers.LayerUtils") mockkStatic("com.mapbox.maps.extension.style.sources.SourceUtils") mockkStatic(Projection::class) + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logE(any(), any()) } just Runs val captureCallback = slot<(StyleInterface) -> Unit>() every { delegateProvider.getStyle(capture(captureCallback)) } answers { captureCallback.captured.invoke(style) @@ -130,6 +133,11 @@ class PolygonAnnotationManagerTest { every { dragLayer.fillPattern(any()) } answers { dragLayer } } + @After + fun cleanUp() { + unmockkAll() + } + @Test fun initialize() { verify { gesturesPlugin.addOnMapClickListener(any()) } diff --git a/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/PolylineAnnotationManagerTest.kt b/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/PolylineAnnotationManagerTest.kt index b080bbbc1a..070d471729 100644 --- a/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/PolylineAnnotationManagerTest.kt +++ b/plugin-annotation/src/test/java/com/mapbox/maps/plugin/annotation/generated/PolylineAnnotationManagerTest.kt @@ -30,6 +30,7 @@ import com.mapbox.maps.plugin.gestures.OnMapClickListener import com.mapbox.maps.plugin.gestures.OnMapLongClickListener import com.mapbox.maps.plugin.gestures.OnMoveListener import io.mockk.* +import org.junit.After import org.junit.Assert.* import org.junit.Before import org.junit.Test @@ -38,7 +39,7 @@ import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class, ShadowProjection::class]) +@Config(shadows = [ShadowProjection::class]) class PolylineAnnotationManagerTest { private val delegateProvider: MapDelegateProvider = mockk() private val style: StyleInterface = mockk() @@ -64,6 +65,8 @@ class PolylineAnnotationManagerTest { mockkStatic("com.mapbox.maps.extension.style.layers.LayerUtils") mockkStatic("com.mapbox.maps.extension.style.sources.SourceUtils") mockkStatic(Projection::class) + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logE(any(), any()) } just Runs val captureCallback = slot<(StyleInterface) -> Unit>() every { delegateProvider.getStyle(capture(captureCallback)) } answers { captureCallback.captured.invoke(style) @@ -139,6 +142,11 @@ class PolylineAnnotationManagerTest { every { dragLayer.lineWidth(any()) } answers { dragLayer } } + @After + fun cleanUp() { + unmockkAll() + } + @Test fun initialize() { verify { gesturesPlugin.addOnMapClickListener(any()) } diff --git a/plugin-attribution/src/main/java/com/mapbox/maps/plugin/attribution/AttributionViewImpl.kt b/plugin-attribution/src/main/java/com/mapbox/maps/plugin/attribution/AttributionViewImpl.kt index 67d7ce510e..d7612e2552 100644 --- a/plugin-attribution/src/main/java/com/mapbox/maps/plugin/attribution/AttributionViewImpl.kt +++ b/plugin-attribution/src/main/java/com/mapbox/maps/plugin/attribution/AttributionViewImpl.kt @@ -9,7 +9,7 @@ import android.widget.FrameLayout import androidx.appcompat.widget.AppCompatImageView import androidx.core.content.res.ResourcesCompat import androidx.core.widget.ImageViewCompat -import com.mapbox.common.Logger +import com.mapbox.maps.logW /** * Concrete implementation of AttributionView from AttributionContract. @@ -35,7 +35,7 @@ class AttributionViewImpl @JvmOverloads constructor( */ override fun setEnable(enabled: Boolean) { visibility = if (enabled) View.VISIBLE else { - Logger.w("MbxAttribution", context.getString(R.string.mapbox_warning_attribution_disabled)) + logW("MbxAttribution", context.getString(R.string.mapbox_warning_attribution_disabled)) View.GONE } } diff --git a/plugin-attribution/src/test/java/com/mapbox/common/ShadowLogger.java b/plugin-attribution/src/test/java/com/mapbox/common/ShadowLogger.java deleted file mode 100644 index 65e1acc120..0000000000 --- a/plugin-attribution/src/test/java/com/mapbox/common/ShadowLogger.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.mapbox.common; - -import android.util.Log; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import org.robolectric.annotation.Implementation; -import org.robolectric.annotation.Implements; - -@Implements(Logger.class) -public class ShadowLogger { - - @Implementation - public static void e(@Nullable String tag, @NonNull String message) { - Log.e(message, tag); - } - - @Implementation - public static void d(@Nullable String tag, @NonNull String message) { - Log.d(message, tag); - } - - @Implementation - public static void w(@Nullable String tag, @NonNull String message) { - Log.w(message, tag); - } - - @Implementation - public static void i(@Nullable String tag, @NonNull String message) { - Log.i(message, tag); - } -} \ No newline at end of file diff --git a/plugin-attribution/src/test/java/com/mapbox/maps/plugin/attribution/AttributionViewImplTest.kt b/plugin-attribution/src/test/java/com/mapbox/maps/plugin/attribution/AttributionViewImplTest.kt index e8f25e375a..9a6f175817 100644 --- a/plugin-attribution/src/test/java/com/mapbox/maps/plugin/attribution/AttributionViewImplTest.kt +++ b/plugin-attribution/src/test/java/com/mapbox/maps/plugin/attribution/AttributionViewImplTest.kt @@ -5,17 +5,16 @@ import android.view.Gravity import android.view.View import android.widget.FrameLayout import androidx.test.core.app.ApplicationProvider -import com.mapbox.common.ShadowLogger -import io.mockk.mockk +import com.mapbox.maps.logW +import io.mockk.* +import org.junit.After import org.junit.Assert.* import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class AttributionViewImplTest { private lateinit var attributionView: AttributionViewImpl @@ -23,6 +22,13 @@ class AttributionViewImplTest { @Before fun setUp() { attributionView = AttributionViewImpl(ApplicationProvider.getApplicationContext()) + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logW(any(), any()) } just Runs + } + + @After + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") } @Test diff --git a/plugin-lifecycle/src/main/java/com/mapbox/maps/plugin/lifecycle/MapboxLifecyclePluginImpl.kt b/plugin-lifecycle/src/main/java/com/mapbox/maps/plugin/lifecycle/MapboxLifecyclePluginImpl.kt index 5555a61f0a..7b491517c1 100644 --- a/plugin-lifecycle/src/main/java/com/mapbox/maps/plugin/lifecycle/MapboxLifecyclePluginImpl.kt +++ b/plugin-lifecycle/src/main/java/com/mapbox/maps/plugin/lifecycle/MapboxLifecyclePluginImpl.kt @@ -14,8 +14,9 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleObserver import androidx.lifecycle.OnLifecycleEvent import androidx.lifecycle.ViewTreeLifecycleOwner -import com.mapbox.common.Logger import com.mapbox.maps.MapboxLifecycleObserver +import com.mapbox.maps.logE +import com.mapbox.maps.logW import com.mapbox.maps.plugin.Plugin.Companion.MAPBOX_LIFECYCLE_PLUGIN_ID import com.mapbox.maps.plugin.delegates.MapPluginProviderDelegate @@ -32,7 +33,7 @@ class MapboxLifecyclePluginImpl : MapboxLifecyclePlugin { override fun registerLifecycleObserver(mapView: View, observer: MapboxLifecycleObserver) { val lifecycleOwner = ViewTreeLifecycleOwner.get(mapView) if (lifecycleOwner == null) { - Logger.e( + logE( TAG, """Can't get lifecycleOwner for mapview, please make sure the host Activity is AppCompatActivity and the version of appcompat is 1.3.0+. @@ -52,7 +53,7 @@ class MapboxLifecyclePluginImpl : MapboxLifecyclePlugin { override fun onTrimMemory(level: Int) { when (level) { TRIM_MEMORY_RUNNING_CRITICAL, TRIM_MEMORY_RUNNING_LOW -> { - Logger.w(TAG, "onTrimMemory with level $level is received, reduceMemoryUse will be called.") + logW(TAG, "onTrimMemory with level $level is received, reduceMemoryUse will be called.") observer.onLowMemory() } TRIM_MEMORY_BACKGROUND, TRIM_MEMORY_COMPLETE, TRIM_MEMORY_MODERATE, TRIM_MEMORY_RUNNING_MODERATE, TRIM_MEMORY_UI_HIDDEN -> Unit diff --git a/plugin-lifecycle/src/test/java/com/mapbox/common/ShadowLogger.java b/plugin-lifecycle/src/test/java/com/mapbox/common/ShadowLogger.java deleted file mode 100644 index 65e1acc120..0000000000 --- a/plugin-lifecycle/src/test/java/com/mapbox/common/ShadowLogger.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.mapbox.common; - -import android.util.Log; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import org.robolectric.annotation.Implementation; -import org.robolectric.annotation.Implements; - -@Implements(Logger.class) -public class ShadowLogger { - - @Implementation - public static void e(@Nullable String tag, @NonNull String message) { - Log.e(message, tag); - } - - @Implementation - public static void d(@Nullable String tag, @NonNull String message) { - Log.d(message, tag); - } - - @Implementation - public static void w(@Nullable String tag, @NonNull String message) { - Log.w(message, tag); - } - - @Implementation - public static void i(@Nullable String tag, @NonNull String message) { - Log.i(message, tag); - } -} \ No newline at end of file diff --git a/plugin-lifecycle/src/test/java/com/mapbox/maps/extension/lifecycle/MapboxLifecyclePluginImplTest.kt b/plugin-lifecycle/src/test/java/com/mapbox/maps/extension/lifecycle/MapboxLifecyclePluginImplTest.kt index 152fc0cf7e..64809eabbc 100644 --- a/plugin-lifecycle/src/test/java/com/mapbox/maps/extension/lifecycle/MapboxLifecyclePluginImplTest.kt +++ b/plugin-lifecycle/src/test/java/com/mapbox/maps/extension/lifecycle/MapboxLifecyclePluginImplTest.kt @@ -12,16 +12,16 @@ import android.content.Context import android.widget.FrameLayout import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.ViewTreeLifecycleOwner -import com.mapbox.common.ShadowLogger import com.mapbox.maps.MapboxLifecycleObserver +import com.mapbox.maps.logW import com.mapbox.maps.plugin.lifecycle.MapboxLifecyclePlugin import com.mapbox.maps.plugin.lifecycle.MapboxLifecyclePluginImpl import io.mockk.* +import org.junit.After import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.ParameterizedRobolectricTestRunner -import org.robolectric.annotation.Config class MapboxLifecyclePluginImplTest { private lateinit var mapboxLifecyclePlugin: MapboxLifecyclePlugin @@ -51,7 +51,6 @@ class MapboxLifecyclePluginImplTest { } @RunWith(ParameterizedRobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class TrimMemoryLevelTest(private val level: Pair) { private lateinit var mapboxLifecyclePlugin: MapboxLifecyclePlugin private val mapView: FrameLayout = mockk(relaxed = true) @@ -62,11 +61,19 @@ class TrimMemoryLevelTest(private val level: Pair) { @Before fun setUp() { mockkStatic(ViewTreeLifecycleOwner::class) + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logW(any(), any()) } just Runs every { mapView.context } returns context every { ViewTreeLifecycleOwner.get(any()) } returns lifecycleOwner mapboxLifecyclePlugin = MapboxLifecyclePluginImpl() } + @After + fun cleanUp() { + unmockkStatic(ViewTreeLifecycleOwner::class) + unmockkStatic("com.mapbox.maps.MapboxLogger") + } + @Test fun checkOnLowMemoryIsCalled() { val mapboxLifecycleObserver: MapboxLifecycleObserver = mockk(relaxed = true) diff --git a/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/DefaultLocationProvider.kt b/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/DefaultLocationProvider.kt index b759dbd85d..f46e023198 100644 --- a/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/DefaultLocationProvider.kt +++ b/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/DefaultLocationProvider.kt @@ -12,8 +12,9 @@ import com.mapbox.android.core.location.LocationEngineProvider import com.mapbox.android.core.location.LocationEngineRequest import com.mapbox.android.core.location.LocationEngineResult import com.mapbox.android.core.permissions.PermissionsManager -import com.mapbox.common.Logger import com.mapbox.geojson.Point +import com.mapbox.maps.logE +import com.mapbox.maps.logW import com.mapbox.maps.plugin.PuckBearingSource import java.lang.ref.WeakReference import java.util.concurrent.CopyOnWriteArraySet @@ -70,7 +71,7 @@ class DefaultLocationProvider @VisibleForTesting(otherwise = PRIVATE) internal c updateDelay = MAX_UPDATE_DELAY } handler?.postDelayed(runnable, updateDelay) - Logger.w( + logW( TAG, "Missing location permission, location component will not take effect before location permission is granted." ) @@ -134,7 +135,7 @@ class DefaultLocationProvider @VisibleForTesting(otherwise = PRIVATE) internal c if (PermissionsManager.areLocationPermissionsGranted(applicationContext)) { locationEngine.getLastLocation(locationEngineCallback) } else { - Logger.w( + logW( TAG, "Missing location permission, location component will not take effect before location permission is granted." ) @@ -175,7 +176,7 @@ class DefaultLocationProvider @VisibleForTesting(otherwise = PRIVATE) internal c } override fun onFailure(exception: Exception) { - Logger.e( + logE( TAG, "Failed to obtain location update: $exception" ) diff --git a/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/LocationCompassEngine.kt b/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/LocationCompassEngine.kt index 10c8944f15..5bcecb465b 100644 --- a/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/LocationCompassEngine.kt +++ b/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/LocationCompassEngine.kt @@ -8,7 +8,7 @@ import android.hardware.SensorManager import android.os.SystemClock import android.view.Surface import android.view.WindowManager -import com.mapbox.common.Logger +import com.mapbox.maps.logW /** * This class handles compass events and tracking the current device heading. @@ -35,7 +35,7 @@ internal class LocationCompassEngine(context: Context) : SensorEventListener { init { compassSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR) if (compassSensor == null) { - Logger.w( + logW( TAG, "Rotation vector sensor not supported on device, falling back to accelerometer and magnetic field." ) diff --git a/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/LocationLayerWrapper.kt b/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/LocationLayerWrapper.kt index 85ea232aa1..838d6fc640 100644 --- a/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/LocationLayerWrapper.kt +++ b/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/LocationLayerWrapper.kt @@ -1,11 +1,11 @@ package com.mapbox.maps.plugin.locationcomponent import com.mapbox.bindgen.Value -import com.mapbox.common.Logger import com.mapbox.maps.LayerPosition import com.mapbox.maps.MapboxLocationComponentException import com.mapbox.maps.StyleManagerInterface import com.mapbox.maps.extension.style.StyleInterface +import com.mapbox.maps.logW internal open class LocationLayerWrapper(val layerId: String) { @@ -33,7 +33,7 @@ internal open class LocationLayerWrapper(val layerId: String) { throw MapboxLocationComponentException("Set layer property \"${propertyName}\" failed:\n$it\n$value") } } else { - Logger.w(TAG, "Skip updating layer property $propertyName, layer $layerId not ready yet.") + logW(TAG, "Skip updating layer property $propertyName, layer $layerId not ready yet.") } } } diff --git a/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/ModelSourceWrapper.kt b/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/ModelSourceWrapper.kt index d4ffcd7273..9c968ff63a 100644 --- a/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/ModelSourceWrapper.kt +++ b/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/ModelSourceWrapper.kt @@ -2,10 +2,10 @@ package com.mapbox.maps.plugin.locationcomponent import android.util.Log import com.mapbox.bindgen.Value -import com.mapbox.common.Logger import com.mapbox.maps.MapboxLocationComponentException import com.mapbox.maps.StyleManagerInterface import com.mapbox.maps.extension.style.StyleInterface +import com.mapbox.maps.logW internal class ModelSourceWrapper( val sourceId: String, @@ -63,7 +63,7 @@ internal class ModelSourceWrapper( throw MapboxLocationComponentException("Set source property \"${propertyName}\" failed:\nError: $it\nValue set: $value") } } else { - Logger.w( + logW( TAG, "Skip updating source property $propertyName, source $sourceId not ready yet." ) diff --git a/plugin-locationcomponent/src/test/java/com/mapbox/common/ShadowLogger.java b/plugin-locationcomponent/src/test/java/com/mapbox/common/ShadowLogger.java deleted file mode 100644 index 65e1acc120..0000000000 --- a/plugin-locationcomponent/src/test/java/com/mapbox/common/ShadowLogger.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.mapbox.common; - -import android.util.Log; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import org.robolectric.annotation.Implementation; -import org.robolectric.annotation.Implements; - -@Implements(Logger.class) -public class ShadowLogger { - - @Implementation - public static void e(@Nullable String tag, @NonNull String message) { - Log.e(message, tag); - } - - @Implementation - public static void d(@Nullable String tag, @NonNull String message) { - Log.d(message, tag); - } - - @Implementation - public static void w(@Nullable String tag, @NonNull String message) { - Log.w(message, tag); - } - - @Implementation - public static void i(@Nullable String tag, @NonNull String message) { - Log.i(message, tag); - } -} \ No newline at end of file diff --git a/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/DefaultLocationProviderTest.kt b/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/DefaultLocationProviderTest.kt index a100eef1af..7d0dc613c5 100644 --- a/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/DefaultLocationProviderTest.kt +++ b/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/DefaultLocationProviderTest.kt @@ -4,19 +4,18 @@ import android.content.Context import android.location.Location import com.mapbox.android.core.location.* import com.mapbox.android.core.permissions.PermissionsManager -import com.mapbox.common.ShadowLogger import com.mapbox.geojson.Point +import com.mapbox.maps.logW import com.mapbox.maps.plugin.PuckBearingSource import io.mockk.* +import org.junit.After import org.junit.Assert.assertEquals import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class DefaultLocationProviderTest { private val context = mockk(relaxed = true) private val locationEngine = mockk(relaxed = true) @@ -32,10 +31,18 @@ class DefaultLocationProviderTest { @Before fun setup() { mockkStatic(LocationEngineProvider::class) + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logW(any(), any()) } just Runs every { LocationEngineProvider.getBestLocationEngine(context.applicationContext) } returns locationEngine defaultLocationProvider = DefaultLocationProvider(context, locationCompassEngine) } + @After + fun cleanUp() { + unmockkStatic(LocationEngineProvider::class) + unmockkStatic("com.mapbox.maps.MapboxLogger") + } + @Test fun testEmptyConsumer() { verify(exactly = 0) { diff --git a/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationCompassEngineTest.kt b/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationCompassEngineTest.kt index 5709b1f2e4..e6c512af97 100644 --- a/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationCompassEngineTest.kt +++ b/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationCompassEngineTest.kt @@ -4,18 +4,15 @@ import android.content.Context import android.hardware.Sensor import android.hardware.SensorManager import android.view.WindowManager -import com.mapbox.common.ShadowLogger -import io.mockk.every -import io.mockk.mockk -import io.mockk.verify +import com.mapbox.maps.logW +import io.mockk.* +import org.junit.After import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class LocationCompassEngineTest { private val windowManager = mockk() private val sensorManager = mockk(relaxed = true) @@ -28,6 +25,8 @@ class LocationCompassEngineTest { @Before fun setUp() { + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logW(any(), any()) } just Runs every { sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR) } returns compassSensor every { sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) } returns gravitySensor every { sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD) } returns magneticFieldSensor @@ -35,6 +34,11 @@ class LocationCompassEngineTest { every { context.applicationContext.getSystemService(Context.SENSOR_SERVICE) } returns sensorManager } + @After + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") + } + @Test fun supportRotationVectorSensor() { locationCompassEngine = LocationCompassEngine(context) diff --git a/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationComponentPluginImplTest.kt b/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationComponentPluginImplTest.kt index d1e54088a7..117aea991f 100644 --- a/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationComponentPluginImplTest.kt +++ b/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationComponentPluginImplTest.kt @@ -11,24 +11,23 @@ import android.view.WindowManager import com.mapbox.android.core.location.LocationEngine import com.mapbox.android.core.location.LocationEngineProvider import com.mapbox.bindgen.ExpectedFactory -import com.mapbox.common.ShadowLogger import com.mapbox.geojson.Point import com.mapbox.maps.extension.style.StyleInterface +import com.mapbox.maps.logW import com.mapbox.maps.plugin.LocationPuck2D import com.mapbox.maps.plugin.delegates.MapDelegateProvider import com.mapbox.maps.plugin.locationcomponent.generated.LocationComponentAttributeParser import com.mapbox.maps.plugin.locationcomponent.generated.LocationComponentAttributeParser2 import com.mapbox.maps.plugin.locationcomponent.generated.LocationComponentSettings import io.mockk.* +import org.junit.After import org.junit.Assert.* import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class LocationComponentPluginImplTest { private val delegateProvider = mockk(relaxed = true) @@ -55,6 +54,8 @@ class LocationComponentPluginImplTest { mockkObject(LocationComponentAttributeParser) mockkObject(LocationComponentAttributeParser2) mockkStatic(LocationEngineProvider::class) + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logW(any(), any()) } just Runs every { context.obtainStyledAttributes(any(), any(), 0, 0) } returns typedArray every { context.packageName } returns pack @@ -75,6 +76,11 @@ class LocationComponentPluginImplTest { locationComponentPlugin = LocationComponentPluginImpl() } + @After + fun cleanUp() { + unmockkAll() + } + // Utility function to setup initialise the plugin. private fun preparePluginInitialisationWithEnabled() { every { diff --git a/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationIndicatorLayerWrapperTest.kt b/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationIndicatorLayerWrapperTest.kt index a07f6b6d74..7a01ac6e47 100644 --- a/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationIndicatorLayerWrapperTest.kt +++ b/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationIndicatorLayerWrapperTest.kt @@ -3,21 +3,18 @@ package com.mapbox.maps.plugin.locationcomponent import com.mapbox.bindgen.Expected import com.mapbox.bindgen.None import com.mapbox.bindgen.Value -import com.mapbox.common.ShadowLogger import com.mapbox.maps.StyleManagerInterface import com.mapbox.maps.extension.style.StyleInterface -import io.mockk.every -import io.mockk.mockk -import io.mockk.verify +import com.mapbox.maps.logW +import io.mockk.* +import org.junit.After import org.junit.Assert.assertEquals import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class LocationIndicatorLayerWrapperTest { private val style: StyleManagerInterface = mockk(relaxed = true) @@ -26,6 +23,8 @@ class LocationIndicatorLayerWrapperTest { @Before fun setup() { + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logW(any(), any()) } just Runs every { style.styleLayerExists(any()) } returns true every { style.addPersistentStyleLayer(any(), any()) } returns expected every { style.setStyleLayerProperty(any(), any(), any()) } returns expected @@ -34,6 +33,11 @@ class LocationIndicatorLayerWrapperTest { layer.bindTo(style) } + @After + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") + } + @Test fun testInitialProperties() { val value = layer.toValue() diff --git a/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationLayerWrapperTest.kt b/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationLayerWrapperTest.kt index 41fc8431f6..4489a85a52 100644 --- a/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationLayerWrapperTest.kt +++ b/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/LocationLayerWrapperTest.kt @@ -2,21 +2,18 @@ package com.mapbox.maps.plugin.locationcomponent import com.mapbox.bindgen.ExpectedFactory import com.mapbox.bindgen.Value -import com.mapbox.common.ShadowLogger import com.mapbox.maps.LayerPosition import com.mapbox.maps.extension.style.StyleInterface -import io.mockk.every -import io.mockk.mockk -import io.mockk.verify +import com.mapbox.maps.logW +import io.mockk.* +import org.junit.After import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config import java.lang.RuntimeException @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class LocationLayerWrapperTest { private lateinit var locationLayerWrapper: LocationLayerWrapper private val layerId = "testLayerId" @@ -24,9 +21,16 @@ class LocationLayerWrapperTest { @Before fun setup() { + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logW(any(), any()) } just Runs locationLayerWrapper = LocationLayerWrapper(layerId) } + @After + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") + } + @Test fun testBindTo() { every { mapStyleDelegate.addPersistentStyleLayer(any(), any()) } returns ExpectedFactory.createNone() diff --git a/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/ModelLayerWrapperTest.kt b/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/ModelLayerWrapperTest.kt index 622df9b990..7be52d68ac 100644 --- a/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/ModelLayerWrapperTest.kt +++ b/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/ModelLayerWrapperTest.kt @@ -3,22 +3,19 @@ package com.mapbox.maps.plugin.locationcomponent import com.mapbox.bindgen.Expected import com.mapbox.bindgen.None import com.mapbox.bindgen.Value -import com.mapbox.common.ShadowLogger import com.mapbox.maps.StyleManagerInterface import com.mapbox.maps.extension.style.StyleInterface +import com.mapbox.maps.logW import com.mapbox.maps.plugin.delegates.MapStyleStateDelegate -import io.mockk.every -import io.mockk.mockk -import io.mockk.verify +import io.mockk.* +import org.junit.After import org.junit.Assert.assertEquals import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class ModelLayerWrapperTest { private val style: StyleManagerInterface = mockk(relaxed = true) @@ -27,6 +24,8 @@ class ModelLayerWrapperTest { @Before fun setup() { + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logW(any(), any()) } just Runs every { style.styleLayerExists(any()) } returns true every { style.addPersistentStyleLayer(any(), any()) } returns expected every { style.setStyleLayerProperty(any(), any(), any()) } returns expected @@ -36,6 +35,11 @@ class ModelLayerWrapperTest { layer.bindTo(style) } + @After + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") + } + @Test fun testInitialProperties() { val value = layer.toValue() diff --git a/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/ModelSourceWrapperTest.kt b/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/ModelSourceWrapperTest.kt index 7164c8995e..325acb4864 100644 --- a/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/ModelSourceWrapperTest.kt +++ b/plugin-locationcomponent/src/test/java/com/mapbox/maps/plugin/locationcomponent/ModelSourceWrapperTest.kt @@ -3,21 +3,18 @@ package com.mapbox.maps.plugin.locationcomponent import com.mapbox.bindgen.Expected import com.mapbox.bindgen.None import com.mapbox.bindgen.Value -import com.mapbox.common.ShadowLogger import com.mapbox.maps.StyleManagerInterface import com.mapbox.maps.extension.style.StyleInterface -import io.mockk.every -import io.mockk.mockk -import io.mockk.verify +import com.mapbox.maps.logW +import io.mockk.* +import org.junit.After import org.junit.Assert.assertEquals import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class ModelSourceWrapperTest { private val style: StyleManagerInterface = mockk(relaxed = true) @@ -25,12 +22,19 @@ class ModelSourceWrapperTest { @Before fun setup() { + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logW(any(), any()) } just Runs every { style.styleSourceExists(any()) } returns true every { style.addStyleSource(any(), any()) } returns expected every { style.setStyleSourceProperty(any(), any(), any()) } returns expected every { expected.error } returns null } + @After + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") + } + @Test fun testValue() { val modelSource = ModelSourceWrapper(SOURCE_ID, "uri", listOf(1.0, 2.0)) diff --git a/plugin-logo/src/main/java/com/mapbox/maps/plugin/logo/LogoViewImpl.kt b/plugin-logo/src/main/java/com/mapbox/maps/plugin/logo/LogoViewImpl.kt index 97237ac5c9..0165d44419 100644 --- a/plugin-logo/src/main/java/com/mapbox/maps/plugin/logo/LogoViewImpl.kt +++ b/plugin-logo/src/main/java/com/mapbox/maps/plugin/logo/LogoViewImpl.kt @@ -8,7 +8,7 @@ import android.view.ViewGroup.LayoutParams.WRAP_CONTENT import android.widget.FrameLayout import androidx.appcompat.widget.AppCompatImageView import androidx.core.content.res.ResourcesCompat -import com.mapbox.common.Logger +import com.mapbox.maps.logW /** * Concrete implementation of LogoView. @@ -68,7 +68,7 @@ class LogoViewImpl : LogoView, AppCompatImageView { get() = visibility == View.VISIBLE set(value) { visibility = if (value) View.VISIBLE else { - Logger.w("MbxLogo", context.getString(R.string.mapbox_warning_logo_disabled)) + logW("MbxLogo", context.getString(R.string.mapbox_warning_logo_disabled)) View.GONE } } diff --git a/plugin-viewport/src/main/kotlin/com/mapbox/maps/plugin/viewport/state/FollowPuckViewportStateImpl.kt b/plugin-viewport/src/main/kotlin/com/mapbox/maps/plugin/viewport/state/FollowPuckViewportStateImpl.kt index e730f21892..5cb52d6887 100644 --- a/plugin-viewport/src/main/kotlin/com/mapbox/maps/plugin/viewport/state/FollowPuckViewportStateImpl.kt +++ b/plugin-viewport/src/main/kotlin/com/mapbox/maps/plugin/viewport/state/FollowPuckViewportStateImpl.kt @@ -4,9 +4,9 @@ import android.animation.Animator import android.animation.AnimatorSet import android.animation.ValueAnimator import androidx.annotation.VisibleForTesting -import com.mapbox.common.Logger import com.mapbox.geojson.Point import com.mapbox.maps.CameraOptions +import com.mapbox.maps.logW import com.mapbox.maps.plugin.animation.Cancelable import com.mapbox.maps.plugin.animation.camera import com.mapbox.maps.plugin.delegates.MapDelegateProvider @@ -132,7 +132,7 @@ internal class FollowPuckViewportStateImpl( private fun checkLocationComponentEnablement() { if (!locationComponent.enabled) { - Logger.w( + logW( TAG, "Location component is required to be enabled to use FollowPuckViewportState, otherwise there would be no FollowPuckViewportState updates or ViewportTransition updates towards the FollowPuckViewportState." ) diff --git a/sdk-base/api/metalava.txt b/sdk-base/api/metalava.txt index 33109bc53a..63d1ae5829 100644 --- a/sdk-base/api/metalava.txt +++ b/sdk-base/api/metalava.txt @@ -33,6 +33,13 @@ package com.mapbox.maps { ctor public MapboxLocationComponentException(String? exceptionText); } + public final class MapboxLogger { + method public static void logD(String tag, String message); + method public static void logE(String tag, String message); + method public static void logI(String tag, String message); + method public static void logW(String tag, String message); + } + public final class MapboxMapException extends java.lang.RuntimeException { ctor public MapboxMapException(String? exceptionText); } diff --git a/sdk-base/api/sdk-base.api b/sdk-base/api/sdk-base.api index ac276a55cf..42f0d96d7a 100644 --- a/sdk-base/api/sdk-base.api +++ b/sdk-base/api/sdk-base.api @@ -31,6 +31,13 @@ public final class com/mapbox/maps/MapboxLocationComponentException : java/lang/ public fun (Ljava/lang/String;)V } +public final class com/mapbox/maps/MapboxLogger { + public static final fun logD (Ljava/lang/String;Ljava/lang/String;)V + public static final fun logE (Ljava/lang/String;Ljava/lang/String;)V + public static final fun logI (Ljava/lang/String;Ljava/lang/String;)V + public static final fun logW (Ljava/lang/String;Ljava/lang/String;)V +} + public final class com/mapbox/maps/MapboxMapException : java/lang/RuntimeException { public fun (Ljava/lang/String;)V } diff --git a/sdk-base/src/main/java/com/mapbox/maps/MapboxLogger.kt b/sdk-base/src/main/java/com/mapbox/maps/MapboxLogger.kt new file mode 100644 index 0000000000..1dd795ef37 --- /dev/null +++ b/sdk-base/src/main/java/com/mapbox/maps/MapboxLogger.kt @@ -0,0 +1,27 @@ +@file:JvmName("MapboxLogger") + +package com.mapbox.maps + +import com.mapbox.common.Logger + +/** + * Log Android error entry in the following format: E/Mapbox: [[SDK_IDENTIFIER]\ [tag]] [message] + */ +fun logE(tag: String, message: String) = Logger.e("$SDK_IDENTIFIER\\$tag", message) + +/** + * Log Android warning entry in the following format: W/Mapbox: [[SDK_IDENTIFIER]\ [tag]] [message] + */ +fun logW(tag: String, message: String) = Logger.w("$SDK_IDENTIFIER\\$tag", message) + +/** + * Log Android info entry in the following format: I/Mapbox: [[SDK_IDENTIFIER]\ [tag]] [message] + */ +fun logI(tag: String, message: String) = Logger.i("$SDK_IDENTIFIER\\$tag", message) + +/** + * Log Android debug entry in the following format: D/Mapbox: [[SDK_IDENTIFIER]\ [tag]] [message] + */ +fun logD(tag: String, message: String) = Logger.d("$SDK_IDENTIFIER\\$tag", message) + +private const val SDK_IDENTIFIER = "maps-android" \ No newline at end of file diff --git a/sdk/src/androidTest/java/com/mapbox/maps/CameraAnimationsPluginTest.kt b/sdk/src/androidTest/java/com/mapbox/maps/CameraAnimationsPluginTest.kt index 99df5fc97d..cd8ac4726b 100644 --- a/sdk/src/androidTest/java/com/mapbox/maps/CameraAnimationsPluginTest.kt +++ b/sdk/src/androidTest/java/com/mapbox/maps/CameraAnimationsPluginTest.kt @@ -10,7 +10,6 @@ import android.os.Looper import androidx.core.os.postDelayed import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.LargeTest -import com.mapbox.common.Logger import com.mapbox.geojson.Point import com.mapbox.maps.dsl.cameraOptions import com.mapbox.maps.plugin.animation.* @@ -307,7 +306,7 @@ class CameraAnimationsPluginTest : BaseAnimationMapTest() { val cameraAnimationPlugin = mapView.camera cameraAnimationPlugin.addCameraBearingChangeListener { - Logger.i(TAG, "onChanged $it") + logI(TAG, "onChanged $it") actualUpdates += 1 } @@ -382,7 +381,7 @@ class CameraAnimationsPluginTest : BaseAnimationMapTest() { val latch = CountDownLatch(1) val cameraAnimationPlugin = mapView.camera cameraAnimationPlugin.addCameraBearingChangeListener { - Logger.i(TAG, "onChanged $it") + logI(TAG, "onChanged $it") updatedValues.add(it) latch.countDown() } @@ -418,7 +417,7 @@ class CameraAnimationsPluginTest : BaseAnimationMapTest() { val latch = CountDownLatch(2) val cameraAnimationPlugin = mapView.camera cameraAnimationPlugin.addCameraBearingChangeListener { - Logger.i(TAG, "onChanged $it") + logI(TAG, "onChanged $it") updatedValues.add(it) latch.countDown() } @@ -447,7 +446,7 @@ class CameraAnimationsPluginTest : BaseAnimationMapTest() { val latch = CountDownLatch(3) val cameraAnimationPlugin = mapView.camera cameraAnimationPlugin.addCameraBearingChangeListener { - Logger.i(TAG, "onChanged $it") + logI(TAG, "onChanged $it") updatedValues.add(it) latch.countDown() } @@ -479,7 +478,7 @@ class CameraAnimationsPluginTest : BaseAnimationMapTest() { val cameraAnimationPlugin = mapView.camera val latch = CountDownLatch(1) cameraAnimationPlugin.addCameraBearingChangeListener { - Logger.i(TAG, "onChanged $it") + logI(TAG, "onChanged $it") updatedValues.add(it) } @@ -539,7 +538,7 @@ class CameraAnimationsPluginTest : BaseAnimationMapTest() { val cameraAnimationPlugin = mapView.camera val latch = CountDownLatch(1) cameraAnimationPlugin.addCameraBearingChangeListener { - Logger.i(TAG, "onChanged $it") + logI(TAG, "onChanged $it") updatedValues.add(it) } @@ -579,7 +578,7 @@ class CameraAnimationsPluginTest : BaseAnimationMapTest() { val latch = CountDownLatch(4) val cameraAnimationPlugin = mapView.camera cameraAnimationPlugin.addCameraBearingChangeListener { - Logger.i(TAG, "onChanged $it") + logI(TAG, "onChanged $it") updatedValues.add(it) latch.countDown() } @@ -611,7 +610,7 @@ class CameraAnimationsPluginTest : BaseAnimationMapTest() { val latch = CountDownLatch(2) val cameraAnimationPlugin = mapView.camera cameraAnimationPlugin.addCameraBearingChangeListener { - Logger.i(TAG, "onChanged $it") + logI(TAG, "onChanged $it") updatedValues.add(it) latch.countDown() } @@ -674,7 +673,7 @@ class CameraAnimationsPluginTest : BaseAnimationMapTest() { var currentPitch = 0.0 val cameraAnimationPlugin = mapView.camera cameraAnimationPlugin.addCameraPitchChangeListener { - Logger.i(TAG, "onChanged $it") + logI(TAG, "onChanged $it") currentPitch = it } mainHandler.post { diff --git a/sdk/src/androidTest/java/com/mapbox/maps/OfflineTest.kt b/sdk/src/androidTest/java/com/mapbox/maps/OfflineTest.kt index fe3b6b5877..b4a1186658 100644 --- a/sdk/src/androidTest/java/com/mapbox/maps/OfflineTest.kt +++ b/sdk/src/androidTest/java/com/mapbox/maps/OfflineTest.kt @@ -86,7 +86,7 @@ class OfflineTest { } } if (it.isError) { - Logger.e(TAG, "Error: ${it.error}") + logE(TAG, "Error: ${it.error}") it.error?.let { error -> downloadedStyleError = error } @@ -140,7 +140,7 @@ class OfflineTest { } } if (it.isError) { - Logger.e(TAG, "Error: ${it.error}") + logE(TAG, "Error: ${it.error}") it.error?.let { error -> downloadedStyleError = error } @@ -194,7 +194,7 @@ class OfflineTest { } } if (it.isError) { - Logger.e(TAG, "Error: ${it.error}") + logE(TAG, "Error: ${it.error}") it.error?.let { error -> tileRegionError = error } @@ -260,7 +260,7 @@ class OfflineTest { } } if (it.isError) { - Logger.e(TAG, "Error: ${it.error}") + logE(TAG, "Error: ${it.error}") it.error?.let { error -> tileRegionError = error } @@ -290,7 +290,7 @@ class OfflineTest { var resourceRequests = 0 var mapLoadingErrorCount = 0 val observer = Observer { event -> - Logger.e(TAG, "type ${event.type}, data ${event.data.toJson()}") + logE(TAG, "type ${event.type}, data ${event.data.toJson()}") when (event.type) { MapEvents.RESOURCE_REQUEST -> { val data = event.getResourceEventData() @@ -337,7 +337,7 @@ class OfflineTest { var resourceRequests = 0 var mapLoadingErrorCount = 0 val observer = Observer { event -> - Logger.e(TAG, "type ${event.type}, data ${event.data.toJson()}") + logE(TAG, "type ${event.type}, data ${event.data.toJson()}") when (event.type) { MapEvents.RESOURCE_REQUEST -> { val data = event.getResourceEventData() @@ -416,7 +416,7 @@ class OfflineTest { var idleEventCount = 0 var mapLoadingErrorCount = 0 val observer = Observer { event -> - Logger.e(TAG, "type ${event.type}, data ${event.data.toJson()}") + logE(TAG, "type ${event.type}, data ${event.data.toJson()}") if (event.type == MapEvents.MAP_IDLE) { idleEventCount++ } @@ -449,7 +449,7 @@ class OfflineTest { var idleEventCount = 0 var mapLoadingErrorCount = 0 val observer = Observer { event -> - Logger.e(TAG, "type ${event.type}, data ${event.data.toJson()}") + logE(TAG, "type ${event.type}, data ${event.data.toJson()}") if (event.type == MapEvents.MAP_IDLE) { idleEventCount++ } @@ -546,13 +546,13 @@ class OfflineTest { .networkRestriction(NetworkRestriction.NONE) .build(), { progress -> - Logger.i(TAG, "completedResourceCount: ${progress.completedResourceCount}, requiredResourceCount: ${progress.requiredResourceCount}") + logI(TAG, "completedResourceCount: ${progress.completedResourceCount}, requiredResourceCount: ${progress.requiredResourceCount}") } ) { if (it.isValue) { it.value?.let { latch.countDown() } } else { - Logger.e(TAG, "Error when loading tile: ${it.error?.toString()}") + logE(TAG, "Error when loading tile: ${it.error?.toString()}") } } } diff --git a/sdk/src/main/java/com/mapbox/maps/MapController.kt b/sdk/src/main/java/com/mapbox/maps/MapController.kt index 1d1c209dc9..004599b9d9 100644 --- a/sdk/src/main/java/com/mapbox/maps/MapController.kt +++ b/sdk/src/main/java/com/mapbox/maps/MapController.kt @@ -4,7 +4,6 @@ import android.content.Context import android.view.MotionEvent import androidx.annotation.VisibleForTesting import com.mapbox.annotation.module.MapboxModuleType -import com.mapbox.common.Logger import com.mapbox.common.module.provider.MapboxModuleProvider import com.mapbox.common.module.provider.ModuleProviderArgument import com.mapbox.maps.assets.AssetManagerProvider @@ -316,9 +315,9 @@ internal class MapController : MapPluginProviderDelegate, MapControllable { mapboxMap.setGesturesAnimationPlugin(pluginObject) } } catch (ex: NoClassDefFoundError) { - Logger.d(TAG, PLUGIN_MISSING_TEMPLATE.format(plugin.id)) + logI(TAG, PLUGIN_MISSING_TEMPLATE.format(plugin.id)) } catch (ex: InvalidViewPluginHostException) { - Logger.d(TAG, VIEW_HIERARCHY_MISSING_TEMPLATE.format(plugin)) + logI(TAG, VIEW_HIERARCHY_MISSING_TEMPLATE.format(plugin)) } } } diff --git a/sdk/src/main/java/com/mapbox/maps/MapboxMap.kt b/sdk/src/main/java/com/mapbox/maps/MapboxMap.kt index 4be4f9b8cf..ebbd5a1cbf 100644 --- a/sdk/src/main/java/com/mapbox/maps/MapboxMap.kt +++ b/sdk/src/main/java/com/mapbox/maps/MapboxMap.kt @@ -8,7 +8,6 @@ import com.mapbox.bindgen.Expected import com.mapbox.bindgen.None import com.mapbox.bindgen.Value import com.mapbox.common.Cancelable -import com.mapbox.common.Logger import com.mapbox.geojson.Feature import com.mapbox.geojson.Geometry import com.mapbox.geojson.Point @@ -1725,7 +1724,7 @@ class MapboxMap : private fun checkNativeMap(methodName: String) { if (!isMapValid) { - Logger.e(TAG, "Mapbox SDK memory leak detected! MapboxMap object (accessing $methodName) should not be stored and used after MapView is destroyed.") + logE(TAG, "Mapbox SDK memory leak detected! MapboxMap object (accessing $methodName) should not be stored and used after MapView is destroyed.") } } diff --git a/sdk/src/main/java/com/mapbox/maps/Snapshotter.kt b/sdk/src/main/java/com/mapbox/maps/Snapshotter.kt index 95a95683af..99d48c8a81 100644 --- a/sdk/src/main/java/com/mapbox/maps/Snapshotter.kt +++ b/sdk/src/main/java/com/mapbox/maps/Snapshotter.kt @@ -10,7 +10,6 @@ import android.widget.TextView import androidx.annotation.VisibleForTesting import androidx.core.content.res.ResourcesCompat import com.mapbox.annotation.module.MapboxModuleType -import com.mapbox.common.Logger import com.mapbox.common.module.provider.MapboxModuleProvider import com.mapbox.common.module.provider.ModuleProviderArgument import com.mapbox.geojson.Point @@ -143,11 +142,11 @@ open class Snapshotter { result.value?.let { snapshotCreatedCallback?.onSnapshotResult(addOverlay(Snapshot(it)) as MapSnapshotInterface) } ?: run { - Logger.e(TAG, result.error ?: "Snapshot is empty.") + logE(TAG, result.error ?: "Snapshot is empty.") snapshotCreatedCallback?.onSnapshotResult(null) } } else { - Logger.e(TAG, result.error ?: "Undefined error happened.") + logE(TAG, result.error ?: "Undefined error happened.") snapshotCreatedCallback?.onSnapshotResult(null) } } @@ -352,7 +351,7 @@ open class Snapshotter { drawAttribution(canvas, measure, anchorPoint) } else { val snapshot: Bitmap = mapSnapshot.bitmap - Logger.e( + logE( TAG, "Could not generate attribution for snapshot size: ${snapshot.width}x${snapshot.height}." + " You are required to provide your own attribution for the used sources: ${mapSnapshot.attributions()}" diff --git a/sdk/src/main/java/com/mapbox/maps/Style.kt b/sdk/src/main/java/com/mapbox/maps/Style.kt index ea7728e5ed..e32f4d9c05 100644 --- a/sdk/src/main/java/com/mapbox/maps/Style.kt +++ b/sdk/src/main/java/com/mapbox/maps/Style.kt @@ -4,7 +4,6 @@ import android.graphics.Bitmap import com.mapbox.bindgen.Expected import com.mapbox.bindgen.None import com.mapbox.bindgen.Value -import com.mapbox.common.Logger import com.mapbox.geojson.Feature import com.mapbox.maps.extension.style.StyleInterface import java.nio.ByteBuffer @@ -888,7 +887,7 @@ class Style internal constructor( private fun checkNativeStyle(methodName: String) { if (!isStyleValid) { - Logger.e(TAG, "Mapbox SDK memory leak detected! Style object (accessing $methodName) should not be stored and used after MapView is destroyed or new style has been loaded.") + logE(TAG, "Mapbox SDK memory leak detected! Style object (accessing $methodName) should not be stored and used after MapView is destroyed or new style has been loaded.") } } diff --git a/sdk/src/main/java/com/mapbox/maps/StyleObserver.kt b/sdk/src/main/java/com/mapbox/maps/StyleObserver.kt index e3425bacbf..01fd53846e 100644 --- a/sdk/src/main/java/com/mapbox/maps/StyleObserver.kt +++ b/sdk/src/main/java/com/mapbox/maps/StyleObserver.kt @@ -1,6 +1,5 @@ package com.mapbox.maps -import com.mapbox.common.Logger import com.mapbox.maps.extension.observable.eventdata.MapLoadingErrorEventData import com.mapbox.maps.extension.observable.eventdata.StyleDataLoadedEventData import com.mapbox.maps.extension.observable.eventdata.StyleLoadedEventData @@ -76,7 +75,7 @@ internal class StyleObserver( } override fun onMapLoadError(eventData: MapLoadingErrorEventData) { - Logger.e( + logE( TAG, "OnMapLoadError: ${eventData.type}, message: ${eventData.message}, sourceID: ${eventData.sourceId}, tileID: ${eventData.tileId}" ) diff --git a/sdk/src/main/java/com/mapbox/maps/renderer/MapboxRenderThread.kt b/sdk/src/main/java/com/mapbox/maps/renderer/MapboxRenderThread.kt index f02a552b55..1cc5bdc17c 100644 --- a/sdk/src/main/java/com/mapbox/maps/renderer/MapboxRenderThread.kt +++ b/sdk/src/main/java/com/mapbox/maps/renderer/MapboxRenderThread.kt @@ -7,7 +7,8 @@ import androidx.annotation.AnyThread import androidx.annotation.UiThread import androidx.annotation.VisibleForTesting import androidx.annotation.WorkerThread -import com.mapbox.common.Logger +import com.mapbox.maps.logE +import com.mapbox.maps.logW import com.mapbox.maps.renderer.egl.EGLCore import com.mapbox.maps.renderer.gl.TextureRenderer import com.mapbox.maps.renderer.widget.Widget @@ -171,7 +172,7 @@ internal class MapboxRenderThread : Choreographer.FrameCallback { if (eglOk) { eglPrepared = true } else { - Logger.e(TAG, "EGL was not configured, please check logs above.") + logE(TAG, "EGL was not configured, please check logs above.") renderNotSupported = true return false } @@ -183,7 +184,7 @@ internal class MapboxRenderThread : Choreographer.FrameCallback { return if (surface?.isValid == true) { true } else { - Logger.w(TAG, "EGL was configured but Android surface is null or not valid, waiting for a new one...") + logW(TAG, "EGL was configured but Android surface is null or not valid, waiting for a new one...") // give system a bit of time and try rendering again hoping surface will be valid now postPrepareRenderFrame(delayMillis = RETRY_DELAY_MS) false @@ -205,7 +206,7 @@ internal class MapboxRenderThread : Choreographer.FrameCallback { private fun checkEglContextCurrent(): Boolean { val eglContextAttached = eglCore.makeCurrent(eglSurface) if (!eglContextAttached) { - Logger.w(TAG, "EGL was configured but context could not be made current. Trying again in a moment...") + logW(TAG, "EGL was configured but context could not be made current. Trying again in a moment...") postPrepareRenderFrame(delayMillis = RETRY_DELAY_MS) return false } @@ -260,11 +261,11 @@ internal class MapboxRenderThread : Choreographer.FrameCallback { when (val swapStatus = eglCore.swapBuffers(eglSurface)) { EGL10.EGL_SUCCESS -> {} EGL11.EGL_CONTEXT_LOST -> { - Logger.w(TAG, "Context lost. Waiting for re-acquire") + logW(TAG, "Context lost. Waiting for re-acquire") releaseEgl() } else -> { - Logger.w(TAG, "eglSwapBuffer error: $swapStatus. Waiting for new surface") + logW(TAG, "eglSwapBuffer error: $swapStatus. Waiting for new surface") releaseEglSurface() } } @@ -462,7 +463,7 @@ internal class MapboxRenderThread : Choreographer.FrameCallback { if (renderThreadPrepared || renderEvent.eventType == EventType.DESTROY_RENDERER) { renderEvent.runnable?.run() } else { - Logger.w(TAG, "Non-render event could not be run, retrying in $RETRY_DELAY_MS ms...") + logW(TAG, "Non-render event could not be run, retrying in $RETRY_DELAY_MS ms...") postNonRenderEvent(renderEvent, delayMillis = RETRY_DELAY_MS) } }, diff --git a/sdk/src/main/java/com/mapbox/maps/renderer/MapboxRenderer.kt b/sdk/src/main/java/com/mapbox/maps/renderer/MapboxRenderer.kt index a1ad1f7d55..6ec00964c3 100644 --- a/sdk/src/main/java/com/mapbox/maps/renderer/MapboxRenderer.kt +++ b/sdk/src/main/java/com/mapbox/maps/renderer/MapboxRenderer.kt @@ -4,7 +4,6 @@ import android.graphics.Bitmap import android.graphics.Matrix import android.opengl.GLES20 import androidx.annotation.* -import com.mapbox.common.Logger import com.mapbox.maps.* import com.mapbox.maps.MapView.OnSnapshotReady import com.mapbox.maps.Size @@ -141,7 +140,7 @@ internal abstract class MapboxRenderer : MapClient { @WorkerThread fun snapshot(): Bitmap? { if (!readyForSnapshot.get()) { - Logger.e(TAG, "Could not take map snapshot because map is not ready yet.") + logE(TAG, "Could not take map snapshot because map is not ready yet.") return null } val lock = ReentrantLock() @@ -168,7 +167,7 @@ internal abstract class MapboxRenderer : MapClient { @AnyThread fun snapshot(listener: OnSnapshotReady) { if (!readyForSnapshot.get()) { - Logger.e(TAG, "Could not take map snapshot because map is not ready yet.") + logE(TAG, "Could not take map snapshot because map is not ready yet.") listener.onSnapshotReady(null) } renderThread.queueRenderEvent( @@ -194,7 +193,7 @@ internal abstract class MapboxRenderer : MapClient { @WorkerThread private fun performSnapshot(): Bitmap? { if (width == 0 && height == 0) { - Logger.e(TAG, "Could not take map snapshot because map is not ready yet.") + logE(TAG, "Could not take map snapshot because map is not ready yet.") return null } diff --git a/sdk/src/main/java/com/mapbox/maps/renderer/MapboxWidgetRenderer.kt b/sdk/src/main/java/com/mapbox/maps/renderer/MapboxWidgetRenderer.kt index 237f986d23..534a540e15 100644 --- a/sdk/src/main/java/com/mapbox/maps/renderer/MapboxWidgetRenderer.kt +++ b/sdk/src/main/java/com/mapbox/maps/renderer/MapboxWidgetRenderer.kt @@ -1,7 +1,7 @@ package com.mapbox.maps.renderer import android.opengl.GLES20 -import com.mapbox.common.Logger +import com.mapbox.maps.logE import com.mapbox.maps.renderer.egl.EGLCore import com.mapbox.maps.renderer.widget.Widget import javax.microedition.khronos.egl.EGLContext @@ -165,7 +165,7 @@ internal class MapboxWidgetRenderer( val eglCore = this.eglCore if (eglCore == null) { - Logger.e(TAG, "Cannot prepare egl, eglCore has not been initialized yet.") + logE(TAG, "Cannot prepare egl, eglCore has not been initialized yet.") return } if (eglSurface != null && eglSurface != eglCore.eglNoSurface) { @@ -175,7 +175,7 @@ internal class MapboxWidgetRenderer( if (!eglPrepared) { eglPrepared = eglCore.prepareEgl() if (!eglPrepared) { - Logger.e(TAG, "Widget EGL was not configured, please check logs above.") + logE(TAG, "Widget EGL was not configured, please check logs above.") return } } @@ -183,7 +183,7 @@ internal class MapboxWidgetRenderer( if (eglSurface == null || eglSurface == eglCore.eglNoSurface) { this.eglSurface = eglCore.createOffscreenSurface(width = width, height = height) if (eglSurface == eglCore.eglNoSurface) { - Logger.e(TAG, "Widget offscreen surface was not configured, please check logs above.") + logE(TAG, "Widget offscreen surface was not configured, please check logs above.") return } } diff --git a/sdk/src/main/java/com/mapbox/maps/renderer/RenderHandlerThread.kt b/sdk/src/main/java/com/mapbox/maps/renderer/RenderHandlerThread.kt index 78e8207ce1..3f2077ab44 100644 --- a/sdk/src/main/java/com/mapbox/maps/renderer/RenderHandlerThread.kt +++ b/sdk/src/main/java/com/mapbox/maps/renderer/RenderHandlerThread.kt @@ -5,7 +5,7 @@ import android.os.HandlerThread import android.os.Message import android.os.Process.THREAD_PRIORITY_DISPLAY import androidx.annotation.VisibleForTesting -import com.mapbox.common.Logger +import com.mapbox.maps.logW internal class RenderHandlerThread { @@ -26,7 +26,7 @@ internal class RenderHandlerThread { val message = Message.obtain(it, task) message.obj = eventType it.sendMessageDelayed(message, delayMillis) - } ?: Logger.w(TAG, "Thread $HANDLE_THREAD_NAME was not started, ignoring event") + } ?: logW(TAG, "Thread $HANDLE_THREAD_NAME was not started, ignoring event") } fun start() { diff --git a/sdk/src/main/java/com/mapbox/maps/renderer/egl/EGLConfigChooser.kt b/sdk/src/main/java/com/mapbox/maps/renderer/egl/EGLConfigChooser.kt index dc0d6a9294..6f5b74dcb5 100644 --- a/sdk/src/main/java/com/mapbox/maps/renderer/egl/EGLConfigChooser.kt +++ b/sdk/src/main/java/com/mapbox/maps/renderer/egl/EGLConfigChooser.kt @@ -1,9 +1,11 @@ package com.mapbox.maps.renderer.egl import android.os.Build -import com.mapbox.common.Logger import com.mapbox.maps.MAPBOX_LOCALE import com.mapbox.maps.MapView.Companion.DEFAULT_ANTIALIASING_SAMPLE_COUNT +import com.mapbox.maps.logE +import com.mapbox.maps.logI +import com.mapbox.maps.logW import java.lang.Boolean.compare import java.lang.Integer.compare import java.util.* @@ -22,7 +24,7 @@ internal class EGLConfigChooser constructor( private val configAttributes: IntArray get() { val emulator = inEmulator() || inGenymotion() - Logger.i(TAG, "In emulator: $emulator") + logI(TAG, "In emulator: $emulator") return intArrayOf( EGL_CONFIG_CAVEAT, EGL_NONE, EGL_SURFACE_TYPE, EGL_WINDOW_BIT, @@ -63,7 +65,7 @@ internal class EGLConfigChooser constructor( return null } if (numConfigs[0] < 1) { - Logger.e(TAG, "eglChooseConfig() returned no configs at all.") + logE(TAG, "eglChooseConfig() returned no configs at all.") return null } // Get all possible configurations @@ -78,7 +80,7 @@ internal class EGLConfigChooser constructor( // Choose best match val config = chooseBestMatchConfig(egl, display, possibleConfigurations) if (config == null) { - Logger.e(TAG, "No config chosen, see log above for concrete error.") + logE(TAG, "No config chosen, see log above for concrete error.") return null } return config @@ -94,7 +96,7 @@ internal class EGLConfigChooser constructor( while (!suitableConfigsFound) { val success = egl.eglChooseConfig(display, configAttributes, null, 0, numConfigs) if (!success || numConfigs[0] < 1) { - Logger.e( + logE( TAG, String.format( MAPBOX_LOCALE, @@ -103,11 +105,11 @@ internal class EGLConfigChooser constructor( ) ) if (antialiasingSampleCount > 1) { - Logger.w(TAG, "Reducing sample count in 2 times for MSAA as EGL_SAMPLES=$antialiasingSampleCount is not supported") + logW(TAG, "Reducing sample count in 2 times for MSAA as EGL_SAMPLES=$antialiasingSampleCount is not supported") antialiasingSampleCount /= 2 } else { // we did all we could, return error - Logger.e(TAG, "No suitable EGL configs were found.") + logE(TAG, "No suitable EGL configs were found.") numConfigs[0] = 0 eglChooserSuccess = false return numConfigs @@ -118,9 +120,9 @@ internal class EGLConfigChooser constructor( } if (initialSampleCount != antialiasingSampleCount) { if (antialiasingSampleCount == 1) { - Logger.w(TAG, "Found EGL configs only with MSAA disabled.") + logW(TAG, "Found EGL configs only with MSAA disabled.") } else { - Logger.w(TAG, "Found EGL configs with MSAA enabled, EGL_SAMPLES=$antialiasingSampleCount.") + logW(TAG, "Found EGL configs with MSAA enabled, EGL_SAMPLES=$antialiasingSampleCount.") } } eglChooserSuccess = true @@ -134,7 +136,7 @@ internal class EGLConfigChooser constructor( ): Array { val configs = arrayOfNulls(numConfigs[0]) if (!egl.eglChooseConfig(display, configAttributes, configs, numConfigs[0], numConfigs)) { - Logger.e( + logE( TAG, String.format( MAPBOX_LOCALE, @@ -285,7 +287,7 @@ internal class EGLConfigChooser constructor( } if (matches.size == 0) { - Logger.e(TAG, "No matching configurations after filtering") + logE(TAG, "No matching configurations after filtering") return null } @@ -293,13 +295,13 @@ internal class EGLConfigChooser constructor( matches.sort() val bestMatch = matches[0] if (bestMatch.isCaveat) { - Logger.w(TAG, "Chosen config has a caveat.") + logW(TAG, "Chosen config has a caveat.") } if (bestMatch.isNotConformant) { - Logger.w(TAG, "Chosen config is not conformant.") + logW(TAG, "Chosen config is not conformant.") } if (antialiasingEnabled && bestMatch.samples != antialiasingSampleCount) { - Logger.w( + logW( TAG, "Antialiasing was specified with sample count = $antialiasingSampleCount" + " but MSAA x${bestMatch.samples} was applied as closest one supported." @@ -316,7 +318,7 @@ internal class EGLConfigChooser constructor( ): Int { val attributeValue = IntArray(1) if (!egl.eglGetConfigAttrib(display, config, attributeName, attributeValue)) { - Logger.e( + logE( TAG, String.format( MAPBOX_LOCALE, diff --git a/sdk/src/main/java/com/mapbox/maps/renderer/egl/EGLCore.kt b/sdk/src/main/java/com/mapbox/maps/renderer/egl/EGLCore.kt index d1601d7667..d84ffea4c6 100644 --- a/sdk/src/main/java/com/mapbox/maps/renderer/egl/EGLCore.kt +++ b/sdk/src/main/java/com/mapbox/maps/renderer/egl/EGLCore.kt @@ -1,7 +1,8 @@ package com.mapbox.maps.renderer.egl import android.view.Surface -import com.mapbox.common.Logger +import com.mapbox.maps.logE +import com.mapbox.maps.logI import javax.microedition.khronos.egl.* /** @@ -27,13 +28,13 @@ internal class EGLCore( egl = EGLContext.getEGL() as EGL10 eglDisplay = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY) if (eglDisplay == EGL10.EGL_NO_DISPLAY) { - Logger.e(TAG, "Unable to get EGL14 display") + logE(TAG, "Unable to get EGL14 display") return false } val versions = IntArray(2) if (!egl.eglInitialize(eglDisplay, versions)) { - Logger.e(TAG, "eglInitialize failed") + logE(TAG, "eglInitialize failed") return false } @@ -62,7 +63,7 @@ internal class EGLCore( EGL_CONTEXT_CLIENT_VERSION, values ) - Logger.i(TAG, "EGLContext created, client version ${values[0]}") + logI(TAG, "EGLContext created, client version ${values[0]}") return true } @@ -108,7 +109,7 @@ internal class EGLCore( ) val eglWindowCreated = checkEglErrorNoException("eglCreateWindowSurface") if (!eglWindowCreated || eglSurface == null) { - Logger.e(TAG, "Surface was null") + logE(TAG, "Surface was null") return eglNoSurface } return eglSurface @@ -127,7 +128,7 @@ internal class EGLCore( ) checkEglErrorNoException("eglCreatePbufferSurface") if (eglSurface == null) { - Logger.e(TAG, "Offscreen surface was null") + logE(TAG, "Offscreen surface was null") return eglNoSurface } return eglSurface @@ -155,10 +156,10 @@ internal class EGLCore( return true } if (eglDisplay == EGL10.EGL_NO_DISPLAY) { - Logger.i(TAG, "NOTE: makeCurrent w/o display") + logI(TAG, "NOTE: makeCurrent w/o display") } if (!egl.eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext)) { - Logger.e(TAG, "eglMakeCurrent failed") + logE(TAG, "eglMakeCurrent failed") return false } return true @@ -181,7 +182,7 @@ internal class EGLCore( private fun checkEglErrorNoException(msg: String): Boolean { val error = egl.eglGetError() if (error != EGL10.EGL_SUCCESS) { - Logger.e(TAG, msg + ": EGL error: 0x${Integer.toHexString(error)}") + logE(TAG, msg + ": EGL error: 0x${Integer.toHexString(error)}") return false } return true diff --git a/sdk/src/test/java/com/mapbox/common/ShadowLogger.java b/sdk/src/test/java/com/mapbox/common/ShadowLogger.java deleted file mode 100644 index 65e1acc120..0000000000 --- a/sdk/src/test/java/com/mapbox/common/ShadowLogger.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.mapbox.common; - -import android.util.Log; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import org.robolectric.annotation.Implementation; -import org.robolectric.annotation.Implements; - -@Implements(Logger.class) -public class ShadowLogger { - - @Implementation - public static void e(@Nullable String tag, @NonNull String message) { - Log.e(message, tag); - } - - @Implementation - public static void d(@Nullable String tag, @NonNull String message) { - Log.d(message, tag); - } - - @Implementation - public static void w(@Nullable String tag, @NonNull String message) { - Log.w(message, tag); - } - - @Implementation - public static void i(@Nullable String tag, @NonNull String message) { - Log.i(message, tag); - } -} \ No newline at end of file diff --git a/sdk/src/test/java/com/mapbox/maps/FontUtilsTest.kt b/sdk/src/test/java/com/mapbox/maps/FontUtilsTest.kt index a6a7d92fa0..3206328329 100644 --- a/sdk/src/test/java/com/mapbox/maps/FontUtilsTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/FontUtilsTest.kt @@ -1,15 +1,27 @@ package com.mapbox.maps -import com.mapbox.common.ShadowLogger +import io.mockk.* +import org.junit.After import org.junit.Assert.assertEquals +import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class FontUtilsTest { + + @Before + fun setUp() { + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logI(any(), any()) } just Runs + } + + @After + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") + } + @Test fun testExtractedFontShouldMatchDefault() { val actual = FontUtils.extractValidFont("foo") diff --git a/sdk/src/test/java/com/mapbox/maps/MapAttributeParserTest.kt b/sdk/src/test/java/com/mapbox/maps/MapAttributeParserTest.kt index 27983927f7..141d862491 100644 --- a/sdk/src/test/java/com/mapbox/maps/MapAttributeParserTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/MapAttributeParserTest.kt @@ -1,28 +1,25 @@ package com.mapbox.maps import android.content.res.TypedArray -import com.mapbox.common.ShadowLogger -import io.mockk.clearAllMocks -import io.mockk.every -import io.mockk.mockk +import io.mockk.* +import org.junit.After import org.junit.Assert.assertEquals import org.junit.Assert.assertNull import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class MapAttributeParserTest { private lateinit var typedArray: TypedArray @Before fun setUp() { - clearAllMocks() typedArray = mockk(relaxed = true) + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logI(any(), any()) } just Runs every { typedArray.getString(any()) } returns null every { typedArray.getBoolean(any(), any()) } returns true every { typedArray.getFloat(any(), any()) } returns 99.0f @@ -35,6 +32,11 @@ class MapAttributeParserTest { } returns 1 } + @After + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") + } + @Test fun default() { val mapOptions = MapAttributeParser.parseMapOptions(typedArray, 99.0f) diff --git a/sdk/src/test/java/com/mapbox/maps/MapControllerTest.kt b/sdk/src/test/java/com/mapbox/maps/MapControllerTest.kt index 885e98d63f..6af4a47578 100644 --- a/sdk/src/test/java/com/mapbox/maps/MapControllerTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/MapControllerTest.kt @@ -3,7 +3,6 @@ package com.mapbox.maps import android.content.Context import android.graphics.Bitmap import android.view.MotionEvent -import com.mapbox.common.ShadowLogger import com.mapbox.maps.plugin.MapPlugin import com.mapbox.maps.plugin.MapPluginRegistry import com.mapbox.maps.plugin.Plugin @@ -19,10 +18,8 @@ import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class MapControllerTest { private val mockRenderer: MapboxRenderer = mockk() @@ -52,11 +49,14 @@ class MapControllerTest { mockPluginRegistry, mockOnStyleDataLoadedListener ) + + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logI(any(), any()) } just Runs } @After - fun shutDown() { - clearAllMocks() + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") } @Test diff --git a/sdk/src/test/java/com/mapbox/maps/MapInitOptionsTest.kt b/sdk/src/test/java/com/mapbox/maps/MapInitOptionsTest.kt index 969f0215a8..1df11a3059 100644 --- a/sdk/src/test/java/com/mapbox/maps/MapInitOptionsTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/MapInitOptionsTest.kt @@ -2,22 +2,18 @@ package com.mapbox.maps import android.content.Context import android.util.DisplayMetrics -import com.mapbox.common.ShadowLogger import com.mapbox.maps.MapView.Companion.DEFAULT_ANTIALIASING_SAMPLE_COUNT import com.mapbox.maps.plugin.* -import io.mockk.every -import io.mockk.mockk +import io.mockk.* import org.junit.After import org.junit.Assert.* import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config import java.io.File @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class MapInitOptionsTest { private val context: Context = mockk(relaxUnitFun = true) @@ -36,12 +32,15 @@ class MapInitOptionsTest { every { context.packageName } returns "com.mapbox.maps" every { context.filesDir } returns File("foobar") every { context.resources.displayMetrics } returns displayMetrics + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logI(any(), any()) } just Runs displayMetrics.density = 1f } @After fun cleanUp() { ResourceOptionsManager.destroyDefault() + unmockkStatic("com.mapbox.maps.MapboxLogger") } @Test diff --git a/sdk/src/test/java/com/mapbox/maps/MapViewTest.kt b/sdk/src/test/java/com/mapbox/maps/MapViewTest.kt index 4227e660b1..80b49da703 100644 --- a/sdk/src/test/java/com/mapbox/maps/MapViewTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/MapViewTest.kt @@ -1,7 +1,6 @@ package com.mapbox.maps import android.view.MotionEvent -import com.mapbox.common.ShadowLogger import com.mapbox.maps.plugin.MapPlugin import com.mapbox.maps.plugin.Plugin import com.mapbox.maps.renderer.OnFpsChangedListener @@ -13,10 +12,8 @@ import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class MapViewTest { private lateinit var mapController: MapController @@ -33,11 +30,13 @@ class MapViewTest { mockk(relaxed = true), mapController ) + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logI(any(), any()) } just Runs } @After - fun shutDown() { - unmockkAll() + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") } @Test diff --git a/sdk/src/test/java/com/mapbox/maps/MapboxMapTest.kt b/sdk/src/test/java/com/mapbox/maps/MapboxMapTest.kt index 48d4276f43..ee1a540d40 100644 --- a/sdk/src/test/java/com/mapbox/maps/MapboxMapTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/MapboxMapTest.kt @@ -2,7 +2,6 @@ package com.mapbox.maps import android.os.Looper import com.mapbox.bindgen.Value -import com.mapbox.common.ShadowLogger import com.mapbox.geojson.Feature import com.mapbox.geojson.Point import com.mapbox.maps.extension.observable.eventdata.MapLoadingErrorEventData @@ -28,7 +27,7 @@ import java.lang.ref.WeakReference @RunWith(RobolectricTestRunner::class) @LooperMode(LooperMode.Mode.PAUSED) -@Config(shadows = [ShadowLogger::class, ShadowMap::class]) +@Config(shadows = [ShadowMap::class]) class MapboxMapTest { private val nativeMap: MapInterface = mockk(relaxed = true) @@ -41,6 +40,8 @@ class MapboxMapTest { @Before fun setUp() { mockkStatic(Map::class) + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logI(any(), any()) } just Runs every { Map.clearData(any(), any()) } just runs every { nativeMap.resourceOptions } returns resourceOptions styleObserver = mockk(relaxUnitFun = true) @@ -1030,7 +1031,7 @@ class MapboxMapTest { @RunWith(ParameterizedRobolectricTestRunner::class) @LooperMode(LooperMode.Mode.PAUSED) -@Config(shadows = [ShadowLogger::class, ShadowMap::class]) +@Config(shadows = [ShadowMap::class]) class PixelForCoordinatesTest( private val inputX: Double, private val inputY: Double, @@ -1047,6 +1048,8 @@ class PixelForCoordinatesTest( @Before fun setUp() { mockkStatic(kotlin.collections.Map::class) + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logI(any(), any()) } just Runs every { nativeMap.resourceOptions } returns resourceOptions styleObserver = mockk(relaxUnitFun = true) mapboxMap = MapboxMap(nativeMap, nativeObserver, styleObserver) @@ -1068,7 +1071,8 @@ class PixelForCoordinatesTest( @After fun cleanUp() { - unmockkAll() + unmockkStatic(Map::class) + unmockkStatic("com.mapbox.maps.MapboxLogger") } companion object { diff --git a/sdk/src/test/java/com/mapbox/maps/SnapshotterTest.kt b/sdk/src/test/java/com/mapbox/maps/SnapshotterTest.kt index ed893d3ed4..c843c69285 100644 --- a/sdk/src/test/java/com/mapbox/maps/SnapshotterTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/SnapshotterTest.kt @@ -1,7 +1,7 @@ package com.mapbox.maps -import com.mapbox.common.ShadowLogger import io.mockk.* +import org.junit.After import org.junit.Assert import org.junit.Before import org.junit.Test @@ -11,7 +11,7 @@ import org.robolectric.annotation.Config import java.lang.IllegalStateException @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class, ShadowMap::class]) +@Config(shadows = [ShadowMap::class]) class SnapshotterTest { private lateinit var snapshotter: Snapshotter @@ -22,6 +22,8 @@ class SnapshotterTest { @Before fun setUp() { mockkStatic(Map::class) + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logI(any(), any()) } just Runs every { Map.clearData(any(), any()) } just runs coreSnapshotter = mockk(relaxed = true) every { mapSnapshotOptions.resourceOptions } returns resourceOptions @@ -34,6 +36,12 @@ class SnapshotterTest { ) } + @After + fun cleanUp() { + unmockkStatic(Map::class) + unmockkStatic("com.mapbox.maps.MapboxLogger") + } + @Test fun subscribe() { val observer = mockk() diff --git a/sdk/src/test/java/com/mapbox/maps/StyleObserverTest.kt b/sdk/src/test/java/com/mapbox/maps/StyleObserverTest.kt index fc6e511bf9..1038e12def 100644 --- a/sdk/src/test/java/com/mapbox/maps/StyleObserverTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/StyleObserverTest.kt @@ -1,21 +1,29 @@ package com.mapbox.maps -import com.mapbox.common.ShadowLogger import com.mapbox.maps.extension.observable.eventdata.StyleDataLoadedEventData import com.mapbox.maps.extension.observable.model.StyleDataType import com.mapbox.maps.plugin.delegates.listeners.OnMapLoadErrorListener -import io.mockk.every -import io.mockk.mockk -import io.mockk.verify +import io.mockk.* +import org.junit.After +import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class StyleObserverTest { + @Before + fun setUp() { + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logE(any(), any()) } just Runs + } + + @After + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") + } + /** * Verifies if the correct listeners are attached to NativeMapObserver when StyleObserver is created */ diff --git a/sdk/src/test/java/com/mapbox/maps/plugin/MapDelegateProviderTest.kt b/sdk/src/test/java/com/mapbox/maps/plugin/MapDelegateProviderTest.kt index 203bfe2308..b89d911088 100644 --- a/sdk/src/test/java/com/mapbox/maps/plugin/MapDelegateProviderTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/plugin/MapDelegateProviderTest.kt @@ -1,21 +1,16 @@ package com.mapbox.maps.plugin -import com.mapbox.common.ShadowLogger -import com.mapbox.maps.MapController -import com.mapbox.maps.MapView -import com.mapbox.maps.MapboxMap -import com.mapbox.maps.Style +import com.mapbox.maps.* import io.mockk.* import junit.framework.Assert.assertEquals import junit.framework.Assert.assertNotNull +import org.junit.After import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class MapDelegateProviderTest { private lateinit var mapView: MapView @@ -25,6 +20,13 @@ class MapDelegateProviderTest { fun setUp() { mapView = mockk(relaxed = true) every { mapView.getMapboxMap() } returns mapboxMap + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logI(any(), any()) } just Runs + } + + @After + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") } @Test diff --git a/sdk/src/test/java/com/mapbox/maps/plugin/MapPluginRegistryTest.kt b/sdk/src/test/java/com/mapbox/maps/plugin/MapPluginRegistryTest.kt index ca0cf26d13..bc7d23cef4 100644 --- a/sdk/src/test/java/com/mapbox/maps/plugin/MapPluginRegistryTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/plugin/MapPluginRegistryTest.kt @@ -4,13 +4,13 @@ import android.content.Context import android.util.DisplayMetrics import android.view.MotionEvent import android.view.View -import com.mapbox.common.ShadowLogger import com.mapbox.geojson.Point import com.mapbox.maps.* import com.mapbox.maps.extension.style.StyleInterface import com.mapbox.maps.plugin.delegates.MapDelegateProvider import com.mapbox.maps.plugin.gestures.GesturesPlugin import io.mockk.* +import org.junit.After import org.junit.Assert import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue @@ -18,10 +18,8 @@ import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) class MapPluginRegistryTest { private val delegateProvider = mockk() @@ -36,6 +34,13 @@ class MapPluginRegistryTest { every { mapInitOptions.mapOptions } returns mapOptions every { mapInitOptions.resourceOptions } returns resourceOptions every { mapInitOptions.attrs } returns null + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logI(any(), any()) } just Runs + } + + @After + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") } @Test diff --git a/sdk/src/test/java/com/mapbox/maps/renderer/MapboxRenderThreadTest.kt b/sdk/src/test/java/com/mapbox/maps/renderer/MapboxRenderThreadTest.kt index 24d4ea1b9a..0e4b275c5c 100644 --- a/sdk/src/test/java/com/mapbox/maps/renderer/MapboxRenderThreadTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/renderer/MapboxRenderThreadTest.kt @@ -1,8 +1,9 @@ package com.mapbox.maps.renderer import android.view.Surface -import com.mapbox.common.ShadowLogger import com.mapbox.countDownEvery +import com.mapbox.maps.logE +import com.mapbox.maps.logW import com.mapbox.maps.renderer.MapboxRenderThread.Companion.RETRY_DELAY_MS import com.mapbox.maps.renderer.egl.EGLCore import com.mapbox.maps.renderer.gl.TextureRenderer @@ -17,7 +18,6 @@ import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner import org.robolectric.Shadows -import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import java.util.concurrent.CountDownLatch import java.util.concurrent.TimeUnit @@ -25,7 +25,6 @@ import javax.microedition.khronos.egl.EGL10 import javax.microedition.khronos.egl.EGLContext @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) @LooperMode(LooperMode.Mode.PAUSED) class MapboxRenderThreadTest { @@ -51,6 +50,9 @@ class MapboxRenderThreadTest { textureRenderer, ) renderHandlerThread.start() + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logE(any(), any()) } just Runs + every { logW(any(), any()) } just Runs } private fun mockSurface() { @@ -95,7 +97,7 @@ class MapboxRenderThreadTest { @After fun cleanup() { renderHandlerThread.stop() - clearAllMocks() + unmockkStatic("com.mapbox.maps.MapboxLogger") } @Test diff --git a/sdk/src/test/java/com/mapbox/maps/renderer/MapboxRendererTest.kt b/sdk/src/test/java/com/mapbox/maps/renderer/MapboxRendererTest.kt index 1103b0b27c..d68af9b159 100644 --- a/sdk/src/test/java/com/mapbox/maps/renderer/MapboxRendererTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/renderer/MapboxRendererTest.kt @@ -3,26 +3,21 @@ package com.mapbox.maps.renderer import android.os.Handler import android.os.HandlerThread import android.os.Looper -import com.mapbox.common.ShadowLogger -import com.mapbox.maps.MapInterface -import com.mapbox.maps.MapView -import com.mapbox.maps.Size -import com.mapbox.maps.Task +import com.mapbox.maps.* import com.mapbox.maps.renderer.gl.PixelReader import io.mockk.* +import org.junit.After import org.junit.Assert import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner import org.robolectric.Shadows -import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import java.nio.ByteBuffer import java.util.concurrent.atomic.AtomicBoolean @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) @LooperMode(LooperMode.Mode.PAUSED) internal abstract class MapboxRendererTest { @@ -32,6 +27,13 @@ internal abstract class MapboxRendererTest { @Before open fun setUp() { renderThread = mockk(relaxUnitFun = true) + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logE(any(), any()) } just Runs + } + + @After + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") } @Test diff --git a/sdk/src/test/java/com/mapbox/maps/renderer/RenderHandlerThreadTest.kt b/sdk/src/test/java/com/mapbox/maps/renderer/RenderHandlerThreadTest.kt index b64b9e0d46..8f4d0e25b4 100644 --- a/sdk/src/test/java/com/mapbox/maps/renderer/RenderHandlerThreadTest.kt +++ b/sdk/src/test/java/com/mapbox/maps/renderer/RenderHandlerThreadTest.kt @@ -2,20 +2,18 @@ package com.mapbox.maps.renderer import android.os.Handler import android.os.Looper -import com.mapbox.common.ShadowLogger -import io.mockk.mockk -import io.mockk.verify +import com.mapbox.maps.logW +import io.mockk.* +import org.junit.After import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner import org.robolectric.Shadows -import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import java.time.Duration @RunWith(RobolectricTestRunner::class) -@Config(shadows = [ShadowLogger::class]) @LooperMode(LooperMode.Mode.PAUSED) class RenderHandlerThreadTest { @@ -24,6 +22,13 @@ class RenderHandlerThreadTest { @Before fun setUp() { renderHandlerThread = RenderHandlerThread() + mockkStatic("com.mapbox.maps.MapboxLogger") + every { logW(any(), any()) } just Runs + } + + @After + fun cleanUp() { + unmockkStatic("com.mapbox.maps.MapboxLogger") } @Test