diff --git a/changelog/unreleased/bugfixes/7614.md b/changelog/unreleased/bugfixes/7614.md new file mode 100644 index 00000000000..50a922cf23d --- /dev/null +++ b/changelog/unreleased/bugfixes/7614.md @@ -0,0 +1 @@ +- Supported ETC 2.0 payment method. \ No newline at end of file diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index bc9c757613b..64188b242ab 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -13,15 +13,15 @@ ext { // version which we should use in this build def mapboxNavigatorVersion = System.getenv("FORCE_MAPBOX_NAVIGATION_NATIVE_VERSION") if (mapboxNavigatorVersion == null || mapboxNavigatorVersion == '') { - mapboxNavigatorVersion = '161.0.1' + mapboxNavigatorVersion = '161.1.0' } println("Navigation Native version: " + mapboxNavigatorVersion) version = [ - mapboxMapSdk : '10.16.1', - mapboxSdkServices : '6.14.0', + mapboxMapSdk : '10.16.2', + mapboxSdkServices : '6.15.0', mapboxNavigator : "${mapboxNavigatorVersion}", - mapboxCommonNative : '23.8.3', + mapboxCommonNative : '23.8.4', mapboxCrashMonitor : '2.0.0', mapboxAnnotationPlugin : '0.8.0', mapboxBaseAndroid : '0.8.0', diff --git a/instrumentation-tests/src/androidTest/java/com/mapbox/navigation/instrumentation_tests/core/CoreRerouteTest.kt b/instrumentation-tests/src/androidTest/java/com/mapbox/navigation/instrumentation_tests/core/CoreRerouteTest.kt index cbcca80e0f3..853e282803b 100644 --- a/instrumentation-tests/src/androidTest/java/com/mapbox/navigation/instrumentation_tests/core/CoreRerouteTest.kt +++ b/instrumentation-tests/src/androidTest/java/com/mapbox/navigation/instrumentation_tests/core/CoreRerouteTest.kt @@ -877,8 +877,10 @@ class CoreRerouteTest : BaseTest(EmptyTestActivity::class.jav assertEquals(routes[1], rerouteResult.navigationRoutes.first()) } + // Restarting mock web server takes up to 30 seconds. + // Let it finish and skip the test if it did not succeed. @Test - fun reroute_with_retryable_error() = sdkTest { + fun reroute_with_retryable_error() = sdkTest(timeout = 50_000) { val mockRoute = RoutesProvider.dc_very_short(context) val originLocation = mockRoute.routeWaypoints.first() val initialLocation = mockLocationUpdatesRule.generateLocationUpdate { diff --git a/libtesting-ui/src/main/java/com/mapbox/navigation/testing/ui/http/MockWebServerRule.kt b/libtesting-ui/src/main/java/com/mapbox/navigation/testing/ui/http/MockWebServerRule.kt index a0c9536af44..5805a94b9aa 100644 --- a/libtesting-ui/src/main/java/com/mapbox/navigation/testing/ui/http/MockWebServerRule.kt +++ b/libtesting-ui/src/main/java/com/mapbox/navigation/testing/ui/http/MockWebServerRule.kt @@ -2,13 +2,18 @@ package com.mapbox.navigation.testing.ui.http import android.util.Log import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.TimeoutCancellationException +import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.delay +import kotlinx.coroutines.isActive import kotlinx.coroutines.withContext +import kotlinx.coroutines.withTimeout import kotlinx.coroutines.withTimeoutOrNull import okhttp3.mockwebserver.Dispatcher import okhttp3.mockwebserver.MockResponse import okhttp3.mockwebserver.MockWebServer import okhttp3.mockwebserver.RecordedRequest +import org.junit.Assume.assumeTrue import org.junit.rules.TestWatcher import org.junit.runner.Description import java.lang.StringBuilder @@ -85,24 +90,34 @@ class MockWebServerRule : TestWatcher() { block() } finally { withContext(Dispatchers.IO) { - retryStarting(previousPort) + val serverRestarted = retryStarting(previousPort) + assumeTrue("Mock web server could not be restarted", serverRestarted) initDispatcher() } } } - private suspend fun retryStarting(port: Int) { - withTimeoutOrNull(30_000) { - while (true) { - try { - webServer = MockWebServer() - webServer.start(port) - break - } catch (t: Throwable) { - Log.e("MockWebServerRule", "error starting mock web server", t) + private suspend fun retryStarting(port: Int): Boolean { + try { + withTimeout(30_000) { + while (true) { + if (!isActive) { + Log.e("MockWebServerRule", "can't start mock server on port $port") + return@withTimeout false + } + try { + webServer = MockWebServer() + webServer.start(port) + return@withTimeout true + } catch (t: Throwable) { + Log.e("MockWebServerRule", "error starting mock web server", t) + } + delay(500) } - delay(500) } - } ?: error("can't start mock server on port $port") + } catch (ex: TimeoutCancellationException) { + return false + } + return false } }