diff --git a/build-logic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt index 88d8ff2cf2..3c73f14b4b 100644 --- a/build-logic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt @@ -1,7 +1,7 @@ import com.android.build.api.dsl.ApplicationExtension import common.BuildTypes import common.SdkVersions -import common.configureKotlinAndroid +import common.configureAndroidApplication import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.apply @@ -23,7 +23,6 @@ class AndroidApplicationConventionPlugin : Plugin { with(pluginManager) { apply("com.android.application") - apply("org.jetbrains.kotlin.android") apply("simprints.library.hilt") apply("com.google.firebase.firebase-perf") @@ -34,7 +33,7 @@ class AndroidApplicationConventionPlugin : Plugin { } extensions.configure { - configureKotlinAndroid(this) + configureAndroidApplication(this) defaultConfig { targetSdk = SdkVersions.TARGET diff --git a/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt index a14ac0f9e8..4211c11a6e 100644 --- a/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt @@ -1,7 +1,7 @@ import com.android.build.api.dsl.LibraryExtension import common.BuildTypes +import common.configureAndroidLibrary import common.configureDebugModeBuildTypes -import common.configureKotlinAndroid import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure @@ -13,13 +13,12 @@ class AndroidLibraryConventionPlugin : Plugin { with(target) { with(pluginManager) { apply("com.android.library") - apply("org.jetbrains.kotlin.android") apply("simprints.ci.jacoco") } extensions.configure { - configureKotlinAndroid(this) + configureAndroidLibrary(this) packaging { // remove mockk duplicated files diff --git a/build-logic/convention/src/main/kotlin/common/KotlinAndroid.kt b/build-logic/convention/src/main/kotlin/common/KotlinAndroid.kt index 32ed085fdc..4cae4e6d37 100644 --- a/build-logic/convention/src/main/kotlin/common/KotlinAndroid.kt +++ b/build-logic/convention/src/main/kotlin/common/KotlinAndroid.kt @@ -1,15 +1,26 @@ package common -import com.android.build.api.dsl.CommonExtension -import com.android.build.api.variant.AndroidComponentsExtension +import com.android.build.api.dsl.ApplicationExtension +import com.android.build.api.dsl.LibraryExtension import org.gradle.api.Project -import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -/** - * Configure base Kotlin with Android options - */ -internal fun Project.configureKotlinAndroid(commonExtension: CommonExtension<*, *, *, *, *, *>) { - commonExtension.apply { +internal fun Project.configureKotlinCompiler() { + tasks.withType(KotlinCompile::class.java).configureEach { + compilerOptions { + freeCompilerArgs.addAll( + "-Xnew-inference", + "-opt-in=kotlin.RequiresOptIn", + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", + "-opt-in=kotlinx.coroutines.FlowPreview", + "-opt-in=kotlin.Experimental", + ) + } + } +} + +internal fun Project.configureAndroidApplication(extension: ApplicationExtension) { + extension.apply { compileSdk = SdkVersions.TARGET defaultConfig { @@ -20,23 +31,24 @@ internal fun Project.configureKotlinAndroid(commonExtension: CommonExtension<*, sourceCompatibility = SdkVersions.JAVA_TARGET targetCompatibility = SdkVersions.JAVA_TARGET } + } + + configureKotlinCompiler() +} + +internal fun Project.configureAndroidLibrary(extension: LibraryExtension) { + extension.apply { + compileSdk = SdkVersions.TARGET - extensions.getByType(AndroidComponentsExtension::class.java).onVariants { variant -> - afterEvaluate { - val variantName = variant.name.replaceFirstChar { it.uppercaseChar() } - val compileTaskName = "compile${variantName}Kotlin" - - tasks.named(compileTaskName, KotlinJvmCompile::class.java) { - compilerOptions.freeCompilerArgs.addAll( - "-Xnew-inference", - "-opt-in=kotlin.RequiresOptIn", - // Enable experimental coroutines APIs, including Flow - "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", - "-opt-in=kotlinx.coroutines.FlowPreview", - "-opt-in=kotlin.Experimental", - ) - } - } + defaultConfig { + minSdk = SdkVersions.MIN + } + + compileOptions { + sourceCompatibility = SdkVersions.JAVA_TARGET + targetCompatibility = SdkVersions.JAVA_TARGET } } + + configureKotlinCompiler() } diff --git a/build.gradle.kts b/build.gradle.kts index f4b7c81e2e..9b30094afd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,7 +3,6 @@ plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.android.library) apply false alias(libs.plugins.android.test) apply false - alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.kotlin.serialization) apply false alias(libs.plugins.ksp) apply false diff --git a/face/infra/bio-sdk-resolver/build.gradle.kts b/face/infra/bio-sdk-resolver/build.gradle.kts index 55f0b9b37f..191296e22c 100644 --- a/face/infra/bio-sdk-resolver/build.gradle.kts +++ b/face/infra/bio-sdk-resolver/build.gradle.kts @@ -11,4 +11,5 @@ dependencies { implementation(project(":face:infra:roc-v1")) api(project(":face:infra:roc-v3")) implementation(project(":face:infra:simface")) + implementation(libs.simface) } diff --git a/face/infra/simface/build.gradle.kts b/face/infra/simface/build.gradle.kts index 0f351d9c64..24211c45ec 100644 --- a/face/infra/simface/build.gradle.kts +++ b/face/infra/simface/build.gradle.kts @@ -8,5 +8,5 @@ android { dependencies { implementation(project(":face:infra:base-bio-sdk")) - api(libs.simface) + implementation(libs.simface) } diff --git a/feature/client-api/src/test/java/com/simprints/feature/clientapi/mappers/request/extractors/ActionRequestExtractorTest.kt b/feature/client-api/src/test/java/com/simprints/feature/clientapi/mappers/request/extractors/ActionRequestExtractorTest.kt index 4b00f3f1b4..304c5c29c6 100644 --- a/feature/client-api/src/test/java/com/simprints/feature/clientapi/mappers/request/extractors/ActionRequestExtractorTest.kt +++ b/feature/client-api/src/test/java/com/simprints/feature/clientapi/mappers/request/extractors/ActionRequestExtractorTest.kt @@ -3,7 +3,7 @@ package com.simprints.feature.clientapi.mappers.request.extractors import com.google.common.truth.Truth.assertThat import com.simprints.libsimprints.Constants.SIMPRINTS_METADATA import com.simprints.libsimprints.Constants.SIMPRINTS_SUBJECT_AGE -import kotlin.test.Test +import org.junit.Test internal class ActionRequestExtractorTest { // Concrete subclass for testing diff --git a/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/ExportLogsUseCaseTest.kt b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/ExportLogsUseCaseTest.kt index dd69b2b964..13b02c6f48 100644 --- a/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/ExportLogsUseCaseTest.kt +++ b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/ExportLogsUseCaseTest.kt @@ -14,9 +14,9 @@ import kotlinx.coroutines.flow.toList import kotlinx.coroutines.test.runTest import org.junit.After import org.junit.Before +import org.junit.Test import java.io.File import java.text.SimpleDateFormat -import kotlin.test.Test class ExportLogsUseCaseTest { @MockK diff --git a/gradle.properties b/gradle.properties index f43e1cce8d..79bbc2572b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,3 +17,7 @@ org.gradle.daemon=true android.useAndroidX=true android.nonTransitiveRClass=true org.gradle.configuration-cache=true +# After agp 9 upgrade, the uniquePackageNames property is enabled by default, which causes the build to fail if there are duplicate package names in the project. Setting it to false allows the build to proceed even if there are duplicate package names. +# this should be removed after the duplicate tensor flow support package names are resolved. +# See this issue for more details:https://github.com/tensorflow/tensorflow/issues/109508 +android.uniquePackageNames=false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f61c7da928..43518d9e93 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,10 +1,10 @@ [versions] -kotlin_version = "2.2.21" +kotlin_version = "2.3.21" kotlin_coroutine_version = "1.11.0" ksp_version = "2.3.5" kotlin_serialization_version = "1.11.0" -android_gradlePlugin_version = "8.13.2" +android_gradlePlugin_version = "9.2.1" androidx_version = "1.7.0" androidx_core_version = "1.18.0" androidx_app_compat_version = "1.7.1" @@ -25,40 +25,39 @@ androidx_viewpager_version = "1.1.0" androidx_security_version = "1.1.0" androidx_annotation_version = "1.10.0" androidx_arch_core_version = "2.2.0" -material_version = "1.13.0" +material_version = "1.14.0" -hilt_version = "2.57.2" +hilt_version = "2.59.2" hilt_androidx_version = "1.3.0" play_base_services_version = "18.10.0" play_location_services_version = "21.3.0" play_integrity_version = "1.6.0" gsm_plugin_version = "4.4.4" -play_publisher_version = "3.13.0" +play_publisher_version = "4.0.0" play_barcode_version = "18.3.1" ml_entity_extraction_version = "16.0.1" -firebase_auth_version = "24.0.1" -firebase_storage_version = "22.0.1" +firebase_auth_version = "24.1.0" firebase_crashlytics_version = "20.0.6" firebase_analytics_version = "23.2.0" -firebase_perf_version = "22.0.4" -firebase_crashlyticsPlugin_version = "3.0.6" +firebase_perf_version = "22.0.5" +firebase_crashlyticsPlugin_version = "3.0.7" firebase_perfPlugin_version = "2.0.2" retrofit_version = "3.0.0" okttp_version = "5.3.2" chuck_version = "4.3.1" -sqlCipher_version = "4.13.0" +sqlCipher_version = "4.16.0" fuzzywuzzy_version = "1.4.0" rootbeer_version = "0.1.2" -commons_io_version = "2.21.0" +commons_io_version = "2.22.0" kronos_version = "0.0.1-alpha11" -protobuf_version = "4.34.1" +protobuf_version = "4.35.0" circleImageView_version = "3.1.0" -kermit_version = "2.0.8" +kermit_version = "2.1.0" zip4j_version = "2.11.6" libsimprints_version = "2026.1.0" @@ -72,7 +71,7 @@ junit_version = "4.13.2" junit_ext_version = "1.3.0" truth_version = "1.4.5" livedata_testing_version = "1.3.0" -mockk_version = "1.14.9" +mockk_version = "1.14.11" robolectric_version = "4.16.1" espresso_version = "3.7.0" espresso_accessibility_version = "4.1.1" @@ -80,8 +79,8 @@ barista_version = "4.3.0" uiAutomator_version = "2.3.0" jacoco_version = "0.8.14" -sonar_plugin_version = "7.2.3.7755" -realm_version = "4.0.1" +sonar_plugin_version = "7.3.0.8198" +realm_version = "4.0.3" protobuf_plugin_version = "0.10.0" deps_graph_version = "0.8.0" tink_version = "1.21.0" @@ -198,7 +197,7 @@ simmatcher = { module = "com.simprints:libsimmatcher", version.ref = "simmatcher # roc v1 sdk hosted in https://github.com/Simprints/lib-roc-wrapper roc-v1 = { module = "com.simprints:rocwrapper", version.ref = "roc_wrapper_version" } # roc v3 sdk hosted in https://github.com/Simprints/lib-roc-wrapper-v3 -roc-v3 = { module = "com.simprints:rocwrapper-v3", version.ref = "roc_wrapper-v3_version" } +roc-v3 = { module = "com.simprints:roc-v3", version.ref = "roc_wrapper-v3_version" } # secugen sdk hosted in https://github.com/Simprints/secugen-wrapper secugen = { module = "com.simprints:secugenwrapper", version.ref = "secugen_version" } simface = { module = "com.simprints.biometrics:simface", version.ref = "simface" } @@ -269,7 +268,6 @@ plugin-room = { group = "androidx.room", name = "room-gradle-plugin", version.re android-application = { id = "com.android.application", version.ref = "android_gradlePlugin_version" } android-library = { id = "com.android.library", version.ref = "android_gradlePlugin_version" } android-test = { id = "com.android.test", version.ref = "android_gradlePlugin_version" } -kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin_version" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin_version" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp_version" } gms = { id = "com.google.gms.google-services", version.ref = "gsm_plugin_version" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 78dfb562f5..e816efb2ac 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,8 @@ +#Sun May 31 16:43:21 BST 2026 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip +distributionSha256Sum=2ab2958f2a1e51120c326cad6f385153bb11ee93b3c216c5fccebfdfbb7ec6cb +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/id/src/main/java/com/simprints/id/Application.kt b/id/src/main/java/com/simprints/id/Application.kt index 691fa6ffe8..8c37db5fe3 100644 --- a/id/src/main/java/com/simprints/id/Application.kt +++ b/id/src/main/java/com/simprints/id/Application.kt @@ -72,11 +72,10 @@ open class Application : appScope.cancel() } - override val workManagerConfiguration: Configuration - get() = Configuration - .Builder() - .setWorkerFactory(workerFactory) - .build() + override fun getWorkManagerConfiguration(): Configuration = Configuration + .Builder() + .setWorkerFactory(workerFactory) + .build() open fun initApplication() { SimberBuilder.initialize(this) diff --git a/infra/backend-api/src/test/java/com/simprints/infra/backendapi/BackendApiClientTest.kt b/infra/backend-api/src/test/java/com/simprints/infra/backendapi/BackendApiClientTest.kt index 117cb8dea7..9f0ab3a45b 100644 --- a/infra/backend-api/src/test/java/com/simprints/infra/backendapi/BackendApiClientTest.kt +++ b/infra/backend-api/src/test/java/com/simprints/infra/backendapi/BackendApiClientTest.kt @@ -9,6 +9,7 @@ import io.mockk.impl.annotations.MockK import kotlinx.coroutines.CancellationException import kotlinx.coroutines.test.runTest import okhttp3.ResponseBody +import okhttp3.ResponseBody.Companion.toResponseBody import org.junit.Before import org.junit.Test import retrofit2.Response @@ -62,7 +63,7 @@ internal class BackendApiClientTest { @Test fun `executeCall returns Success when api client returns successful response`() = runTest { coEvery { apiClient.executeCall(any Response>()) } returns - Response.success(ResponseBody.EMPTY) + Response.success("".toResponseBody()) val result = subject.executeCall(TestRemoteInterface::class) { "ignored" } @@ -75,7 +76,7 @@ internal class BackendApiClientTest { @Test fun `executeCall returns Failure when api client returns failed response`() = runTest { coEvery { apiClient.executeCall(any Response>()) } returns - Response.error(426, ResponseBody.EMPTY) + Response.error(426, "".toResponseBody()) val result = subject.executeCall(TestRemoteInterface::class) { "ignored" } diff --git a/infra/core/src/test/java/com/simprints/core/tools/utils/MapUtilKtTest.kt b/infra/core/src/test/java/com/simprints/core/tools/utils/MapUtilKtTest.kt index 90539d004d..1f27035cb6 100644 --- a/infra/core/src/test/java/com/simprints/core/tools/utils/MapUtilKtTest.kt +++ b/infra/core/src/test/java/com/simprints/core/tools/utils/MapUtilKtTest.kt @@ -7,7 +7,7 @@ import kotlinx.serialization.json.add import kotlinx.serialization.json.buildJsonArray import kotlinx.serialization.json.buildJsonObject import kotlinx.serialization.json.put -import kotlin.test.Test +import org.junit.Test import kotlin.test.assertEquals class MapUtilKtTest { diff --git a/infra/enrolment-records/realm-store/src/test/java/com/simprints/infra/enrolment/records/realm/store/RealmWrapperImplTest.kt b/infra/enrolment-records/realm-store/src/test/java/com/simprints/infra/enrolment/records/realm/store/RealmWrapperImplTest.kt index 45662685ca..7e9d507004 100644 --- a/infra/enrolment-records/realm-store/src/test/java/com/simprints/infra/enrolment/records/realm/store/RealmWrapperImplTest.kt +++ b/infra/enrolment-records/realm-store/src/test/java/com/simprints/infra/enrolment/records/realm/store/RealmWrapperImplTest.kt @@ -113,7 +113,7 @@ class RealmWrapperImplTest { verify { Realm.deleteRealm(configuration) secureLocalDbKeyProviderMock.recreateLocalDatabaseKey(PROJECT_ID) - context.startService(any()) // Start ResetDownSyncService service + context.startForegroundService(any()) // Start ResetDownSyncService service } verify(exactly = 2) { Realm.open(configuration) } } diff --git a/infra/enrolment-records/repository/build.gradle.kts b/infra/enrolment-records/repository/build.gradle.kts index a74d847f55..77e4f3a566 100644 --- a/infra/enrolment-records/repository/build.gradle.kts +++ b/infra/enrolment-records/repository/build.gradle.kts @@ -22,4 +22,5 @@ dependencies { implementation(libs.libsimprints) implementation(libs.testing.androidX.room) + implementation(libs.workManager.work) } diff --git a/infra/enrolment-records/repository/src/androidTest/kotlin/com/simprints/infra/enrolment/records/repository/local/RealmEnrolmentRecordLocalDataSourceIntegrationTest.kt b/infra/enrolment-records/repository/src/androidTest/kotlin/com/simprints/infra/enrolment/records/repository/local/RealmEnrolmentRecordLocalDataSourceIntegrationTest.kt index f88b7489ab..6b9a7bd4ad 100644 --- a/infra/enrolment-records/repository/src/androidTest/kotlin/com/simprints/infra/enrolment/records/repository/local/RealmEnrolmentRecordLocalDataSourceIntegrationTest.kt +++ b/infra/enrolment-records/repository/src/androidTest/kotlin/com/simprints/infra/enrolment/records/repository/local/RealmEnrolmentRecordLocalDataSourceIntegrationTest.kt @@ -3,11 +3,11 @@ package com.simprints.infra.enrolment.records.repository.local import androidx.test.core.app.* import com.google.common.truth.Truth.* import com.simprints.core.domain.common.Modality +import com.simprints.core.domain.common.TemplateIdentifier import com.simprints.core.domain.externalcredential.ExternalCredential import com.simprints.core.domain.externalcredential.ExternalCredentialType import com.simprints.core.domain.reference.BiometricReference import com.simprints.core.domain.reference.BiometricTemplate -import com.simprints.core.domain.common.TemplateIdentifier import com.simprints.core.domain.tokenization.asTokenizableEncrypted import com.simprints.core.domain.tokenization.asTokenizableRaw import com.simprints.core.tools.time.TimeHelper @@ -36,8 +36,8 @@ import kotlinx.coroutines.test.runTest import org.junit.After import org.junit.Before import org.junit.Rule +import org.junit.Test import java.util.UUID -import kotlin.test.Test @HiltAndroidTest class RealmEnrolmentRecordLocalDataSourceIntegrationTest { diff --git a/infra/enrolment-records/room-store/src/test/java/com/simprints/infra/enrolment/records/room/store/migration/Migration1to2Test.kt b/infra/enrolment-records/room-store/src/test/java/com/simprints/infra/enrolment/records/room/store/migration/Migration1to2Test.kt index f59ef08f03..1a828c3b53 100644 --- a/infra/enrolment-records/room-store/src/test/java/com/simprints/infra/enrolment/records/room/store/migration/Migration1to2Test.kt +++ b/infra/enrolment-records/room-store/src/test/java/com/simprints/infra/enrolment/records/room/store/migration/Migration1to2Test.kt @@ -6,8 +6,8 @@ import androidx.test.platform.app.* import com.google.common.truth.Truth.* import com.simprints.infra.enrolment.records.room.store.SubjectsDatabase import org.junit.Rule +import org.junit.Test import org.junit.runner.RunWith -import kotlin.test.Test @RunWith(AndroidJUnit4::class) class Migration1to2Test { diff --git a/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/samples/ApiEventSampleUpSyncRequestPayloadTest.kt b/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/samples/ApiEventSampleUpSyncRequestPayloadTest.kt index 2ecba61b00..97145968ab 100644 --- a/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/samples/ApiEventSampleUpSyncRequestPayloadTest.kt +++ b/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/samples/ApiEventSampleUpSyncRequestPayloadTest.kt @@ -4,7 +4,7 @@ import com.google.common.truth.Truth.* import com.simprints.infra.config.store.models.TokenKeyType import com.simprints.infra.eventsync.event.remote.models.ApiEventSampleUpSyncRequestPayload import io.mockk.* -import kotlin.test.Test +import org.junit.Test class ApiEventSampleUpSyncRequestPayloadTest { @Test diff --git a/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/usecases/TokenizeEventPayloadFieldsUseCaseTest.kt b/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/usecases/TokenizeEventPayloadFieldsUseCaseTest.kt index 0b575405b0..8681e88490 100644 --- a/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/usecases/TokenizeEventPayloadFieldsUseCaseTest.kt +++ b/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/usecases/TokenizeEventPayloadFieldsUseCaseTest.kt @@ -8,7 +8,7 @@ import com.simprints.infra.events.event.domain.models.Event import io.mockk.* import io.mockk.impl.annotations.MockK import org.junit.Before -import kotlin.test.Test +import org.junit.Test internal class TokenizeEventPayloadFieldsUseCaseTest { @MockK diff --git a/infra/images/src/test/java/com/simprints/infra/images/remote/signedurl/SignedUrlSampleUploaderTest.kt b/infra/images/src/test/java/com/simprints/infra/images/remote/signedurl/SignedUrlSampleUploaderTest.kt index 6292be777b..41115bb060 100644 --- a/infra/images/src/test/java/com/simprints/infra/images/remote/signedurl/SignedUrlSampleUploaderTest.kt +++ b/infra/images/src/test/java/com/simprints/infra/images/remote/signedurl/SignedUrlSampleUploaderTest.kt @@ -17,7 +17,7 @@ import io.mockk.impl.annotations.MockK import kotlinx.coroutines.test.runTest import okio.IOException import org.junit.Before -import kotlin.test.Test +import org.junit.Test internal class SignedUrlSampleUploaderTest { @MockK diff --git a/infra/logging/build.gradle.kts b/infra/logging/build.gradle.kts index d51c4157e1..7de615662a 100644 --- a/infra/logging/build.gradle.kts +++ b/infra/logging/build.gradle.kts @@ -47,6 +47,7 @@ dependencies { exclude(group = "com.google.firebase", module = "protolite-well-known-types") } implementation(libs.kermit) + implementation(libs.androidX.core) implementation(libs.kermit.io) testImplementation(libs.testing.junit) diff --git a/infra/logging/src/test/java/com/simprints/infra/logging/LogDirectoryProviderTest.kt b/infra/logging/src/test/java/com/simprints/infra/logging/LogDirectoryProviderTest.kt index c1f759023d..e9c8ed53f9 100644 --- a/infra/logging/src/test/java/com/simprints/infra/logging/LogDirectoryProviderTest.kt +++ b/infra/logging/src/test/java/com/simprints/infra/logging/LogDirectoryProviderTest.kt @@ -3,8 +3,8 @@ package com.simprints.infra.logging import android.content.Context import io.mockk.every import io.mockk.mockk +import org.junit.Test import java.io.File -import kotlin.test.Test import kotlin.test.assertEquals class LogDirectoryProviderTest { diff --git a/testing/data-generator/build.gradle.kts b/testing/data-generator/build.gradle.kts index cfc32b8092..accafbb9fd 100644 --- a/testing/data-generator/build.gradle.kts +++ b/testing/data-generator/build.gradle.kts @@ -1,7 +1,6 @@ plugins { id("simprints.feature") id("kotlin-parcelize") - alias(libs.plugins.kotlin.android) } android {