diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/TransformTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/TransformTest.kt index 9ee62db9d..6dc87b371 100644 --- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/TransformTest.kt +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/TransformTest.kt @@ -1,5 +1,6 @@ package com.mapbox.mapboxsdk.maps +import android.os.Looper.getMainLooper import com.mapbox.mapboxsdk.camera.CameraPosition import com.mapbox.mapboxsdk.camera.CameraUpdateFactory import com.mapbox.mapboxsdk.geometry.LatLng @@ -8,6 +9,8 @@ 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.shadows.ShadowLooper @RunWith(RobolectricTestRunner::class) class TransformTest { @@ -16,12 +19,14 @@ class TransformTest { private lateinit var nativeMapView: NativeMap private lateinit var transform: Transform private lateinit var cameraChangeDispatcher: CameraChangeDispatcher + private lateinit var mainLooper: ShadowLooper @Before fun setup() { cameraChangeDispatcher = spyk() mapView = mockk() nativeMapView = mockk() + mainLooper = shadowOf(getMainLooper()) transform = Transform(mapView, nativeMapView, cameraChangeDispatcher) every { nativeMapView.isDestroyed } returns false every { nativeMapView.cameraPosition } returns CameraPosition.DEFAULT @@ -51,6 +56,7 @@ class TransformTest { every { nativeMapView.cameraPosition } returns expected transform.moveCamera(mapboxMap, update, callback) + mainLooper.idle() verify { cameraChangeDispatcher.onCameraMove() } verify { nativeMapView.jumpTo(target, -1.0, -1.0, -1.0, null) } verify { callback.onFinish() } @@ -91,6 +97,7 @@ class TransformTest { transform.easeCamera(mapboxMap, update, 100, false, callback) + mainLooper.idle() verify { nativeMapView.easeTo(target, -1.0, -1.0, -1.0, null, 100, false) } verify { callback.onFinish() } } @@ -130,6 +137,7 @@ class TransformTest { transform.animateCamera(mapboxMap, update, 100, callback) + mainLooper.idle() verify { nativeMapView.flyTo(target, -1.0, -1.0, -1.0, null, 100) } verify { callback.onFinish() } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle index e7a9ba9d1..4da2486db 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle +++ b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle @@ -72,8 +72,7 @@ dependencies { implementation dependenciesList.okhttp3 - debugImplementation dependenciesList.leakCanaryDebug - releaseImplementation dependenciesList.leakCanaryRelease + implementation dependenciesList.leakCanary androidTestImplementation dependenciesList.supportAnnotations androidTestImplementation dependenciesList.testRunner diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapLibreApplication.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapLibreApplication.kt index 69dec225e..424c97f22 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapLibreApplication.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapLibreApplication.kt @@ -12,7 +12,6 @@ import com.mapbox.mapboxsdk.log.Logger import com.mapbox.mapboxsdk.testapp.utils.ApiKeyUtils import com.mapbox.mapboxsdk.testapp.utils.TileLoadingMeasurementUtils import com.mapbox.mapboxsdk.testapp.utils.TimberLogger -import com.squareup.leakcanary.LeakCanary import timber.log.Timber import timber.log.Timber.DebugTree @@ -26,24 +25,11 @@ import timber.log.Timber.DebugTree class MapLibreApplication : Application() { override fun onCreate() { super.onCreate() - if (!initializeLeakCanary()) { - return - } initializeLogger() initializeStrictMode() initializeMapbox() } - protected fun initializeLeakCanary(): Boolean { - if (LeakCanary.isInAnalyzerProcess(this)) { - // This process is dedicated to LeakCanary for heap analysis. - // You should not init your app in this process. - return false - } - LeakCanary.install(this) - return true - } - private fun initializeLogger() { Logger.setLoggerDefinition(TimberLogger()) if (BuildConfig.DEBUG) { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/render/RenderTestActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/render/RenderTestActivity.kt index 8af78f5b8..cec4af3f5 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/render/RenderTestActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/render/RenderTestActivity.kt @@ -14,11 +14,8 @@ import com.google.gson.Gson import com.google.gson.JsonObject import com.mapbox.mapboxsdk.snapshotter.MapSnapshot import com.mapbox.mapboxsdk.snapshotter.MapSnapshotter -import com.mapbox.mapboxsdk.testapp.activity.render.RenderTestActivity.LoadRenderDefinitionTask -import com.mapbox.mapboxsdk.testapp.activity.render.RenderTestActivity.LoadRenderIgnoreTask -import com.mapbox.mapboxsdk.testapp.activity.render.RenderTestActivity.OnRenderTestCompletionListener -import com.mapbox.mapboxsdk.testapp.activity.render.RenderTestActivity.SaveResultToDiskTask -import okio.Okio +import okio.buffer +import okio.source import timber.log.Timber import java.io.File import java.io.FileOutputStream @@ -343,7 +340,7 @@ class RenderTestActivity : AppCompatActivity() { val ignores: MutableList = ArrayList() try { assets.open(String.format("%s/ignores.json", TEST_BASE_PATH)).use { input -> - val source = Okio.buffer(Okio.source(input)) + val source = input.source().buffer() val styleJson = source.readByteString().string(Charset.forName("utf-8")) val `object` = Gson().fromJson(styleJson, JsonObject::class.java) for ((key) in `object`.entrySet()) { @@ -368,7 +365,7 @@ class RenderTestActivity : AppCompatActivity() { test ) ).use { input -> - val source = Okio.buffer(Okio.source(input)) + val source = input.source().buffer() styleJson = source.readByteString().string(Charset.forName("utf-8")) } } catch (exception: IOException) { diff --git a/platform/android/build.gradle b/platform/android/build.gradle index 5789c27d0..be67cbcdc 100644 --- a/platform/android/build.gradle +++ b/platform/android/build.gradle @@ -7,7 +7,6 @@ buildscript { maven { url "https://plugins.gradle.org/m2/" } mavenCentral() google() - jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.6.3' @@ -23,7 +22,6 @@ allprojects { repositories { mavenCentral() google() - jcenter() } apply from: "${rootDir}/gradle/ktlint.gradle" } diff --git a/platform/android/gradle.properties b/platform/android/gradle.properties index acc174969..2960c164e 100644 --- a/platform/android/gradle.properties +++ b/platform/android/gradle.properties @@ -1,5 +1,4 @@ -android.enableJetifier=true android.useAndroidX=true systemProp.org.gradle.internal.http.connectionTimeout=360000 systemProp.org.gradle.internal.http.socketTimeout=360000 -org.gradle.jvmargs=-Xmx4096M +org.gradle.jvmargs=-Xmx4096M \ No newline at end of file diff --git a/platform/android/gradle/dependencies.gradle b/platform/android/gradle/dependencies.gradle index 64c2426db..26637f672 100644 --- a/platform/android/gradle/dependencies.gradle +++ b/platform/android/gradle/dependencies.gradle @@ -19,17 +19,17 @@ ext { testRunner : '1.1.1', fragment : '1.0.0', annotation : '1.0.0', - leakCanary : '1.6.3', + leakCanary : '2.8.1', junit : '4.12', mockito : '3.0.0', mockk : '1.9.3', - robolectric : '4.3', + robolectric : '4.7.3', timber : '4.7.1', okhttp : '3.12.3', kotlin : '1.3.72', licenses : '0.8.80', lint : '26.4.2', - gms : '16.0.0', + gms : '17.0.0', // jacoco : '0.8.5', appcenter : '1.4', ktlint : '0.40.0', @@ -68,8 +68,7 @@ ext { gmsLocation : "com.google.android.gms:play-services-location:${versions.gms}", timber : "com.jakewharton.timber:timber:${versions.timber}", okhttp3 : "com.squareup.okhttp3:okhttp:${versions.okhttp}", - leakCanaryDebug : "com.squareup.leakcanary:leakcanary-android:${versions.leakCanary}", - leakCanaryRelease : "com.squareup.leakcanary:leakcanary-android-no-op:${versions.leakCanary}", + leakCanary : "com.squareup.leakcanary:leakcanary-android:${versions.leakCanary}", kotlinLib : "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${versions.kotlin}", kotlinPlugin : "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}",