From de740cc99bfa2738bb197cb7c29503b521da8efe Mon Sep 17 00:00:00 2001 From: stylianosgakis Date: Thu, 18 Jun 2026 11:33:24 +0200 Subject: [PATCH 1/3] Add log prio to ExternalDeepLinkHandler --- .../hedvig/android/app/urihandler/ExternalDeepLinkHandler.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/app/src/main/kotlin/com/hedvig/android/app/urihandler/ExternalDeepLinkHandler.kt b/app/app/src/main/kotlin/com/hedvig/android/app/urihandler/ExternalDeepLinkHandler.kt index 652ebbbf53..d570b72d33 100644 --- a/app/app/src/main/kotlin/com/hedvig/android/app/urihandler/ExternalDeepLinkHandler.kt +++ b/app/app/src/main/kotlin/com/hedvig/android/app/urihandler/ExternalDeepLinkHandler.kt @@ -2,6 +2,7 @@ package com.hedvig.android.app.urihandler import com.hedvig.android.app.navigation.BackstackController import com.hedvig.android.feature.home.home.navigation.HomeKey +import com.hedvig.android.logger.LogPriority import com.hedvig.android.logger.logcat import com.hedvig.android.navigation.compose.HedvigDeepLinkMatcher import java.net.URI @@ -44,11 +45,11 @@ internal class ExternalDeepLinkHandler( return } if (targetsOwnDeepLink(uri)) { - logcat { "ExternalDeepLinkHandler no specific match for own-host uri:$uri — falling back to Home" } + logcat(LogPriority.WARN) { "ExternalDeepLinkHandler no specific match for own-host uri:$uri — falling back to Home" } backstackController.navigateToExternalDeepLink(HomeKey) return } - logcat { "ExternalDeepLinkHandler ignoring unmatched foreign-host external deep link uri:$uri" } + logcat(LogPriority.ERROR) { "ExternalDeepLinkHandler ignoring unmatched foreign-host external deep link uri:$uri" } } /** From 6fa37d2c30d021b857573fa23e6e442976fdcc09 Mon Sep 17 00:00:00 2001 From: stylianosgakis Date: Thu, 18 Jun 2026 11:49:05 +0200 Subject: [PATCH 2/3] Cleanup old nav2 dependencies --- app/app/build.gradle.kts | 2 -- app/feature/feature-addon-purchase/build.gradle.kts | 3 --- app/feature/feature-chat/build.gradle.kts | 3 +-- app/feature/feature-chip-id/build.gradle.kts | 3 --- app/feature/feature-choose-tier/build.gradle.kts | 3 --- app/feature/feature-claim-chat/build.gradle.kts | 2 +- app/feature/feature-claim-details/build.gradle.kts | 3 +-- app/feature/feature-claim-history/build.gradle.kts | 1 - .../feature-connect-payment-trustly/build.gradle.kts | 3 --- app/feature/feature-delete-account/build.gradle.kts | 3 --- app/feature/feature-edit-coinsured/build.gradle.kts | 3 --- app/feature/feature-forever/build.gradle.kts | 2 -- app/feature/feature-help-center/build.gradle.kts | 2 -- app/feature/feature-home/build.gradle.kts | 3 --- app/feature/feature-image-viewer/build.gradle.kts | 1 - app/feature/feature-insurance-certificate/build.gradle.kts | 1 - app/feature/feature-insurances/build.gradle.kts | 1 - app/feature/feature-login/build.gradle.kts | 1 - app/feature/feature-movingflow/build.gradle.kts | 3 --- app/feature/feature-payments/build.gradle.kts | 1 - app/feature/feature-payout-account/build.gradle.kts | 1 - app/feature/feature-profile/build.gradle.kts | 1 - app/feature/feature-remove-addons/build.gradle.kts | 3 --- app/feature/feature-terminate-insurance/build.gradle.kts | 2 -- app/feature/feature-travel-certificate/build.gradle.kts | 3 --- app/navigation/navigation-compose/build.gradle.kts | 1 - app/navigation/navigation-core/build.gradle.kts | 1 - app/shared/partners-deflect/build.gradle.kts | 1 - gradle/libs.versions.toml | 7 ------- 29 files changed, 3 insertions(+), 61 deletions(-) diff --git a/app/app/build.gradle.kts b/app/app/build.gradle.kts index 54f7ed4066..cf7cb57fa2 100644 --- a/app/app/build.gradle.kts +++ b/app/app/build.gradle.kts @@ -113,8 +113,6 @@ dependencies { implementation(libs.androidx.compose.runtime.retain) implementation(libs.androidx.compose.uiToolingPreview) implementation(libs.androidx.lifecycle.process) - implementation(libs.androidx.navigation.common) - implementation(libs.androidx.navigation.compose) implementation(libs.androidx.navigation3.runtime) implementation(libs.androidx.navigation3.ui) implementation(libs.androidx.lifecycle.viewmodel.navigation3) diff --git a/app/feature/feature-addon-purchase/build.gradle.kts b/app/feature/feature-addon-purchase/build.gradle.kts index 7add18a995..39befbf091 100644 --- a/app/feature/feature-addon-purchase/build.gradle.kts +++ b/app/feature/feature-addon-purchase/build.gradle.kts @@ -16,9 +16,6 @@ android { } dependencies { - api(libs.androidx.navigation.common) - - implementation(libs.androidx.navigation.compose) implementation(libs.apollo.normalizedCache) implementation(libs.apollo.testingSupport) implementation(libs.arrow.core) diff --git a/app/feature/feature-chat/build.gradle.kts b/app/feature/feature-chat/build.gradle.kts index cbdd02d45a..0d9a9f08bd 100644 --- a/app/feature/feature-chat/build.gradle.kts +++ b/app/feature/feature-chat/build.gradle.kts @@ -14,11 +14,10 @@ hedvig { } dependencies { - api(libs.androidx.navigation.common) api(libs.coil.coil) + implementation(libs.androidx.activity.compose) implementation(libs.androidx.datastore.core) - implementation(libs.androidx.navigation.compose) implementation(libs.apollo.normalizedCache) implementation(libs.arrow.core) implementation(libs.arrow.fx) diff --git a/app/feature/feature-chip-id/build.gradle.kts b/app/feature/feature-chip-id/build.gradle.kts index c8f96b28bf..c31b960eb2 100644 --- a/app/feature/feature-chip-id/build.gradle.kts +++ b/app/feature/feature-chip-id/build.gradle.kts @@ -12,9 +12,6 @@ hedvig { } dependencies { - api(libs.androidx.navigation.common) - - implementation(libs.androidx.navigation.compose) implementation(libs.apollo.normalizedCache) implementation(libs.apollo.runtime) implementation(libs.arrow.core) diff --git a/app/feature/feature-choose-tier/build.gradle.kts b/app/feature/feature-choose-tier/build.gradle.kts index 1ac7f80690..59a48814de 100644 --- a/app/feature/feature-choose-tier/build.gradle.kts +++ b/app/feature/feature-choose-tier/build.gradle.kts @@ -16,9 +16,6 @@ android { } dependencies { - api(libs.androidx.navigation.common) - - implementation(libs.androidx.navigation.compose) implementation(libs.apollo.runtime) implementation(libs.arrow.core) implementation(libs.coroutines.core) diff --git a/app/feature/feature-claim-chat/build.gradle.kts b/app/feature/feature-claim-chat/build.gradle.kts index dde7d55a2a..41413e0056 100644 --- a/app/feature/feature-claim-chat/build.gradle.kts +++ b/app/feature/feature-claim-chat/build.gradle.kts @@ -56,7 +56,7 @@ kotlin { } androidMain.dependencies { implementation(libs.accompanist.permissions) - implementation(libs.androidx.navigation.compose) + implementation(libs.androidx.activity.compose) implementation(libs.bundles.kmpPreviewBugWorkaround) implementation(libs.rive.android) implementation(projects.composeUi) diff --git a/app/feature/feature-claim-details/build.gradle.kts b/app/feature/feature-claim-details/build.gradle.kts index 531a52c381..eb1e8b7fbb 100644 --- a/app/feature/feature-claim-details/build.gradle.kts +++ b/app/feature/feature-claim-details/build.gradle.kts @@ -16,11 +16,10 @@ android { } dependencies { - api(libs.androidx.navigation.common) api(libs.coil.coil) + implementation(libs.androidx.activity.compose) implementation(libs.androidx.compose.foundation) - implementation(libs.androidx.navigation.compose) implementation(libs.apollo.normalizedCache) implementation(libs.apollo.runtime) implementation(libs.arrow.core) diff --git a/app/feature/feature-claim-history/build.gradle.kts b/app/feature/feature-claim-history/build.gradle.kts index 08fa751edc..03aae944d9 100644 --- a/app/feature/feature-claim-history/build.gradle.kts +++ b/app/feature/feature-claim-history/build.gradle.kts @@ -26,7 +26,6 @@ kotlin { } androidMain.dependencies { implementation(libs.bundles.kmpPreviewBugWorkaround) - implementation(libs.androidx.navigation.compose) implementation(libs.metro.viewmodel.compose) implementation(projects.coreResources) implementation(projects.designSystemHedvig) diff --git a/app/feature/feature-connect-payment-trustly/build.gradle.kts b/app/feature/feature-connect-payment-trustly/build.gradle.kts index 9ca512ab51..af544d5635 100644 --- a/app/feature/feature-connect-payment-trustly/build.gradle.kts +++ b/app/feature/feature-connect-payment-trustly/build.gradle.kts @@ -12,12 +12,9 @@ hedvig { } dependencies { - api(libs.androidx.navigation.common) - implementation(libs.androidx.compose.animation) implementation(libs.androidx.compose.foundation) implementation(libs.androidx.compose.foundationLayout) - implementation(libs.androidx.navigation.compose) implementation(libs.androidx.other.browser) implementation(libs.apollo.api) implementation(libs.apollo.runtime) diff --git a/app/feature/feature-delete-account/build.gradle.kts b/app/feature/feature-delete-account/build.gradle.kts index 1eccd85e2f..47df47ae88 100644 --- a/app/feature/feature-delete-account/build.gradle.kts +++ b/app/feature/feature-delete-account/build.gradle.kts @@ -12,11 +12,8 @@ hedvig { } dependencies { - api(libs.androidx.navigation.common) - implementation(libs.androidx.datastore.core) implementation(libs.androidx.datastore.preferencesCore) - implementation(libs.androidx.navigation.compose) implementation(libs.apollo.normalizedCache) implementation(libs.arrow.core) implementation(libs.coroutines.core) diff --git a/app/feature/feature-edit-coinsured/build.gradle.kts b/app/feature/feature-edit-coinsured/build.gradle.kts index 43d6715c75..f24b8ab8bf 100644 --- a/app/feature/feature-edit-coinsured/build.gradle.kts +++ b/app/feature/feature-edit-coinsured/build.gradle.kts @@ -16,10 +16,7 @@ android { } dependencies { - api(libs.androidx.navigation.common) - implementation(libs.androidx.compose.foundation) - implementation(libs.androidx.navigation.compose) implementation(libs.arrow.core) implementation(libs.arrow.fx) implementation(libs.coroutines.core) diff --git a/app/feature/feature-forever/build.gradle.kts b/app/feature/feature-forever/build.gradle.kts index dc5141ce86..e99b8e6a6c 100644 --- a/app/feature/feature-forever/build.gradle.kts +++ b/app/feature/feature-forever/build.gradle.kts @@ -10,8 +10,6 @@ hedvig { } dependencies { - api(libs.androidx.navigation.common) - implementation(libs.androidx.navigation.compose) implementation(libs.kotlinx.serialization.core) implementation(projects.coreBuildConstants) implementation(projects.coreCommonPublic) diff --git a/app/feature/feature-help-center/build.gradle.kts b/app/feature/feature-help-center/build.gradle.kts index 96c164be66..29f0b6a783 100644 --- a/app/feature/feature-help-center/build.gradle.kts +++ b/app/feature/feature-help-center/build.gradle.kts @@ -34,8 +34,6 @@ kotlin { implementation(libs.coroutines.core) implementation(libs.jetbrains.compose.ui.tooling.preview) implementation(libs.jetbrains.lifecycle.runtime.compose) - implementation(libs.jetbrains.navigation.common) - implementation(libs.jetbrains.navigation.compose) implementation(libs.jetbrains.navigationevent.compose) implementation(libs.metro.viewmodel) implementation(libs.metro.viewmodel.compose) diff --git a/app/feature/feature-home/build.gradle.kts b/app/feature/feature-home/build.gradle.kts index 348018063c..e739b6f13a 100644 --- a/app/feature/feature-home/build.gradle.kts +++ b/app/feature/feature-home/build.gradle.kts @@ -16,11 +16,8 @@ android { } dependencies { - api(libs.androidx.navigation.common) - implementation(libs.accompanist.permissions) implementation(libs.androidx.compose.foundation) - implementation(libs.androidx.navigation.compose) implementation(libs.apollo.normalizedCache) implementation(libs.apollo.runtime) implementation(libs.arrow.core) diff --git a/app/feature/feature-image-viewer/build.gradle.kts b/app/feature/feature-image-viewer/build.gradle.kts index cdd9ed32ab..c9e778f731 100644 --- a/app/feature/feature-image-viewer/build.gradle.kts +++ b/app/feature/feature-image-viewer/build.gradle.kts @@ -11,7 +11,6 @@ hedvig { dependencies { implementation(libs.androidx.compose.foundation) - implementation(libs.androidx.navigation.compose) implementation(libs.coil.coil) implementation(libs.coil.compose) implementation(libs.kotlinx.serialization.core) diff --git a/app/feature/feature-insurance-certificate/build.gradle.kts b/app/feature/feature-insurance-certificate/build.gradle.kts index d9fa6e9fac..7196af60e0 100644 --- a/app/feature/feature-insurance-certificate/build.gradle.kts +++ b/app/feature/feature-insurance-certificate/build.gradle.kts @@ -19,7 +19,6 @@ android { dependencies { implementation(libs.arrow.core) implementation(libs.arrow.fx) - implementation(libs.jetbrains.navigation.compose) implementation(libs.kotlinx.serialization.core) implementation(projects.apolloCore) implementation(projects.apolloOctopusPublic) diff --git a/app/feature/feature-insurances/build.gradle.kts b/app/feature/feature-insurances/build.gradle.kts index 9ba5e00355..5883ce58e5 100644 --- a/app/feature/feature-insurances/build.gradle.kts +++ b/app/feature/feature-insurances/build.gradle.kts @@ -23,7 +23,6 @@ dependencies { implementation(libs.arrow.core) implementation(libs.arrow.fx) implementation(libs.jetbrains.lifecycle.runtime.compose) - implementation(libs.jetbrains.navigation.compose) implementation(libs.kotlinx.serialization.core) implementation(projects.apolloCore) implementation(projects.apolloOctopusPublic) diff --git a/app/feature/feature-login/build.gradle.kts b/app/feature/feature-login/build.gradle.kts index 4a37fe01c3..b781ac3f5a 100644 --- a/app/feature/feature-login/build.gradle.kts +++ b/app/feature/feature-login/build.gradle.kts @@ -17,7 +17,6 @@ android { dependencies { implementation(libs.androidx.compose.foundation) - implementation(libs.androidx.navigation.compose) implementation(libs.jetbrains.lifecycle.runtime) implementation(libs.jetbrains.lifecycle.runtime.compose) implementation(libs.jetbrains.lifecycle.viewmodel) diff --git a/app/feature/feature-movingflow/build.gradle.kts b/app/feature/feature-movingflow/build.gradle.kts index e17fe1c785..d8bb8da584 100644 --- a/app/feature/feature-movingflow/build.gradle.kts +++ b/app/feature/feature-movingflow/build.gradle.kts @@ -12,11 +12,8 @@ hedvig { } dependencies { - api(libs.androidx.navigation.common) - implementation(libs.androidx.datastore.core) implementation(libs.androidx.datastore.preferencesCore) - implementation(libs.androidx.navigation.compose) implementation(libs.apollo.normalizedCache) implementation(libs.arrow.core) implementation(libs.coroutines.core) diff --git a/app/feature/feature-payments/build.gradle.kts b/app/feature/feature-payments/build.gradle.kts index 66be3d3498..c7fd93af5d 100644 --- a/app/feature/feature-payments/build.gradle.kts +++ b/app/feature/feature-payments/build.gradle.kts @@ -20,7 +20,6 @@ dependencies { implementation(libs.jetbrains.compose.foundation) implementation(libs.jetbrains.compose.runtime) implementation(libs.jetbrains.lifecycle.runtime.compose) - implementation(libs.jetbrains.navigation.compose) implementation(libs.kotlinx.serialization.core) implementation(projects.apolloCore) implementation(projects.apolloNetworkCacheManager) diff --git a/app/feature/feature-payout-account/build.gradle.kts b/app/feature/feature-payout-account/build.gradle.kts index b5d4645fe6..92aba58031 100644 --- a/app/feature/feature-payout-account/build.gradle.kts +++ b/app/feature/feature-payout-account/build.gradle.kts @@ -21,7 +21,6 @@ dependencies { implementation(projects.coreBuildConstants) implementation(libs.jetbrains.compose.runtime) implementation(libs.jetbrains.lifecycle.runtime.compose) - implementation(libs.jetbrains.navigation.compose) implementation(projects.composeUi) implementation(projects.coreCommonPublic) implementation(projects.coreResources) diff --git a/app/feature/feature-profile/build.gradle.kts b/app/feature/feature-profile/build.gradle.kts index 13844555f3..93ef0abc6e 100644 --- a/app/feature/feature-profile/build.gradle.kts +++ b/app/feature/feature-profile/build.gradle.kts @@ -25,7 +25,6 @@ dependencies { implementation(libs.arrow.fx) implementation(libs.jetbrains.compose.runtime) implementation(libs.jetbrains.lifecycle.runtime.compose) - implementation(libs.jetbrains.navigation.compose) implementation(libs.kotlinx.serialization.core) implementation(projects.apolloCore) implementation(projects.apolloNetworkCacheManager) diff --git a/app/feature/feature-remove-addons/build.gradle.kts b/app/feature/feature-remove-addons/build.gradle.kts index 4cfa4484bb..ab8940652c 100644 --- a/app/feature/feature-remove-addons/build.gradle.kts +++ b/app/feature/feature-remove-addons/build.gradle.kts @@ -23,7 +23,6 @@ kotlin { implementation(libs.jetbrains.compose.foundation) implementation(libs.jetbrains.compose.ui) implementation(libs.jetbrains.compose.ui.tooling.preview) - implementation(libs.jetbrains.navigationevent.compose) implementation(libs.metro.viewmodel) implementation(libs.metro.viewmodel.compose) implementation(libs.kotlinx.serialization.core) @@ -44,8 +43,6 @@ kotlin { implementation(projects.navigationCompose) } androidMain.dependencies { - api(libs.androidx.navigation.common) - implementation(libs.androidx.navigation.compose) implementation(libs.bundles.kmpPreviewBugWorkaround) implementation(projects.composeUi) implementation(projects.navigationCore) diff --git a/app/feature/feature-terminate-insurance/build.gradle.kts b/app/feature/feature-terminate-insurance/build.gradle.kts index eb660f84f0..f8008bd1fe 100644 --- a/app/feature/feature-terminate-insurance/build.gradle.kts +++ b/app/feature/feature-terminate-insurance/build.gradle.kts @@ -16,11 +16,9 @@ android { } dependencies { - api(libs.androidx.navigation.common) implementation(libs.apollo.normalizedCache) implementation(libs.androidx.compose.foundation) implementation(libs.androidx.compose.material3.windowSizeClass) - implementation(libs.androidx.navigation.compose) implementation(libs.arrow.core) implementation(libs.coroutines.core) implementation(libs.jetbrains.lifecycle.runtime.compose) diff --git a/app/feature/feature-travel-certificate/build.gradle.kts b/app/feature/feature-travel-certificate/build.gradle.kts index 98d6cf5ba8..334157b3db 100644 --- a/app/feature/feature-travel-certificate/build.gradle.kts +++ b/app/feature/feature-travel-certificate/build.gradle.kts @@ -12,9 +12,6 @@ hedvig { } dependencies { - api(libs.androidx.navigation.common) - - implementation(libs.androidx.navigation.compose) implementation(libs.apollo.normalizedCache) implementation(libs.apollo.runtime) implementation(libs.arrow.core) diff --git a/app/navigation/navigation-compose/build.gradle.kts b/app/navigation/navigation-compose/build.gradle.kts index bded886d71..f4c756963c 100644 --- a/app/navigation/navigation-compose/build.gradle.kts +++ b/app/navigation/navigation-compose/build.gradle.kts @@ -13,7 +13,6 @@ kotlin { sourceSets { commonMain.dependencies { api(libs.androidx.navigation3.runtime) - implementation(libs.jetbrains.navigation.compose) implementation(libs.jetbrains.compose.runtime) implementation(libs.kotlinx.serialization.core) implementation(libs.kotlinx.serialization.json) diff --git a/app/navigation/navigation-core/build.gradle.kts b/app/navigation/navigation-core/build.gradle.kts index 892a99bb8c..e6d93c8b14 100644 --- a/app/navigation/navigation-core/build.gradle.kts +++ b/app/navigation/navigation-core/build.gradle.kts @@ -10,7 +10,6 @@ hedvig { kotlin { sourceSets { commonMain.dependencies { - api(libs.jetbrains.navigation.common) implementation(projects.coreBuildConstants) implementation(projects.coreCommonPublic) implementation(projects.navigationCommon) diff --git a/app/shared/partners-deflect/build.gradle.kts b/app/shared/partners-deflect/build.gradle.kts index b311f0a7f1..bd055f254d 100644 --- a/app/shared/partners-deflect/build.gradle.kts +++ b/app/shared/partners-deflect/build.gradle.kts @@ -20,7 +20,6 @@ kotlin { implementation(libs.jetbrains.compose.foundation) implementation(libs.jetbrains.compose.ui) implementation(libs.jetbrains.compose.ui.tooling.preview) - implementation(libs.jetbrains.navigationevent.compose) implementation(projects.coreCommonPublic) implementation(projects.coreResources) implementation(projects.coreUiData) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b8d1af8421..e068606eb6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -43,7 +43,6 @@ androidx-compose-runtime-retain = "1.11.1" androidx-datastore = "1.2.0" androidx-junit = "1.3.0" androidx-lifecycle = "2.10.0" -androidx-navigation = "2.9.7" androidx-navigation3 = "1.2.0-alpha03" androidx-lifecycle-viewmodel-navigation3 = "2.10.0" androidx-other-appCompat = "1.7.1" @@ -64,7 +63,6 @@ jetbrains-graphics = "1.0.0-alpha09" jetbrains-lifecycle = "2.10.0" jetbrains-material = "1.11.0-rc01" jetbrains-material3 = "1.11.0-alpha07" -jetbrains-navigation = "2.9.2" jetbrainsMarkdown = "0.7.3" arrow = "2.2.1.1" assertK = "0.28.1" @@ -125,9 +123,6 @@ androidx-datastore-preferencesCore = { module = "androidx.datastore:datastore-pr androidx-graphicsShapes = { module = "androidx.graphics:graphics-shapes", version.ref = "androidxGraphicsShapes" } androidx-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-junit" } androidx-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version.ref = "androidx-lifecycle" } -androidx-navigation-common = { module = "androidx.navigation:navigation-common", version.ref = "androidx-navigation" } -androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "androidx-navigation" } -androidx-navigation-runtime = { module = "androidx.navigation:navigation-runtime", version.ref = "androidx-navigation" } androidx-navigation3-runtime = { module = "androidx.navigation3:navigation3-runtime", version.ref = "androidx-navigation3" } androidx-navigation3-ui = { module = "androidx.navigation3:navigation3-ui", version.ref = "androidx-navigation3" } androidx-lifecycle-viewmodel-navigation3 = { module = "androidx.lifecycle:lifecycle-viewmodel-navigation3", version.ref = "androidx-lifecycle-viewmodel-navigation3" } @@ -197,8 +192,6 @@ jetbrains-lifecycle-runtime = { module = "org.jetbrains.androidx.lifecycle:lifec jetbrains-lifecycle-runtime-compose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose", version.ref = "jetbrains-lifecycle" } jetbrains-lifecycle-viewmodel = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel", version.ref = "jetbrains-lifecycle" } jetbrains-lifecycle-viewmodel-compose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "jetbrains-lifecycle" } -jetbrains-navigation-common = { module = "org.jetbrains.androidx.navigation:navigation-common", version.ref = "jetbrains-navigation" } -jetbrains-navigation-compose = { module = "org.jetbrains.androidx.navigation:navigation-compose", version.ref = "jetbrains-navigation" } jetbrains-navigationevent-compose = { module = "org.jetbrains.androidx.navigationevent:navigationevent-compose", version.ref = "jetbrains-navigationevent" } junit = { module = "junit:junit", version.ref = "junit" } kctfork-ksp = { module = "dev.zacsweers.kctfork:ksp", version.ref = "kctfork" } From 3c88d527d794be9248d43a452a1e4d93536be0ac Mon Sep 17 00:00:00 2001 From: stylianosgakis Date: Thu, 18 Jun 2026 12:20:11 +0200 Subject: [PATCH 3/3] Cleanup some leftover DI influences by Koin into Metro idiomatic code --- .../android/auth/AuthTokenServiceImpl.kt | 11 ++++++++-- .../android/auth/di/AuthMetroProviders.kt | 19 ----------------- .../core/datastore/DeviceIdFetcher.android.kt | 7 +++++++ .../di/DataStoreMetroProviders.android.kt | 8 ------- .../core/datastore/DeviceIdDataStore.kt | 11 ++++++++-- .../datastore/di/DataStoreMetroProviders.kt | 21 ------------------- .../claim/chat/data/AudioRecordingManager.kt | 7 +++++++ .../chat/di/ClaimChatAndroidMetroProviders.kt | 16 -------------- .../di/FeatureFlagsAndroidMetroProviders.kt | 7 ------- .../flags/UnleashFeatureFlagProvider.kt | 7 +++++++ ...id.kt => NetworkMetroProviders.android.kt} | 0 ...workModule.kt => NetworkMetroProviders.kt} | 0 ...le.jvm.kt => NetworkMetroProviders.jvm.kt} | 0 ...ile.kt => NetworkMetroProviders.mobile.kt} | 0 ...ive.kt => NetworkMetroProviders.native.kt} | 0 15 files changed, 39 insertions(+), 75 deletions(-) delete mode 100644 app/core/core-datastore-public/src/commonMain/kotlin/com/hedvig/android/core/datastore/di/DataStoreMetroProviders.kt delete mode 100644 app/feature/feature-claim-chat/src/androidMain/kotlin/com/hedvig/feature/claim/chat/di/ClaimChatAndroidMetroProviders.kt rename app/network/network-clients/src/androidMain/kotlin/com/hedvig/android/network/clients/di/{NetworkModule.android.kt => NetworkMetroProviders.android.kt} (100%) rename app/network/network-clients/src/commonMain/kotlin/com/hedvig/android/network/clients/di/{NetworkModule.kt => NetworkMetroProviders.kt} (100%) rename app/network/network-clients/src/jvmMain/kotlin/com/hedvig/android/network/clients/di/{NetworkModule.jvm.kt => NetworkMetroProviders.jvm.kt} (100%) rename app/network/network-clients/src/mobileMain/kotlin/com/hedvig/android/network/clients/di/{NetworkModule.mobile.kt => NetworkMetroProviders.mobile.kt} (100%) rename app/network/network-clients/src/nativeMain/kotlin/com/hedvig/android/network/clients/di/{NetworkModule.native.kt => NetworkMetroProviders.native.kt} (100%) diff --git a/app/auth/auth-core-public/src/main/kotlin/com/hedvig/android/auth/AuthTokenServiceImpl.kt b/app/auth/auth-core-public/src/main/kotlin/com/hedvig/android/auth/AuthTokenServiceImpl.kt index 689315da83..de496f46c9 100644 --- a/app/auth/auth-core-public/src/main/kotlin/com/hedvig/android/auth/AuthTokenServiceImpl.kt +++ b/app/auth/auth-core-public/src/main/kotlin/com/hedvig/android/auth/AuthTokenServiceImpl.kt @@ -4,6 +4,8 @@ import com.hedvig.android.auth.event.AuthEventStorage import com.hedvig.android.auth.storage.AuthTokenStorage import com.hedvig.android.auth.token.AuthTokens import com.hedvig.android.auth.token.LocalRefreshToken +import com.hedvig.android.core.common.ApplicationScope +import com.hedvig.android.core.common.di.AppScope import com.hedvig.android.logger.LogPriority import com.hedvig.android.logger.logcat import com.hedvig.authlib.AccessToken @@ -11,18 +13,23 @@ import com.hedvig.authlib.AuthRepository import com.hedvig.authlib.AuthTokenResult import com.hedvig.authlib.RefreshToken import com.hedvig.authlib.RefreshTokenGrant -import kotlinx.coroutines.CoroutineScope +import dev.zacsweers.metro.ContributesBinding +import dev.zacsweers.metro.Inject +import dev.zacsweers.metro.SingleIn import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.mapLatest import kotlinx.coroutines.flow.stateIn +@Inject +@SingleIn(AppScope::class) +@ContributesBinding(AppScope::class) internal class AuthTokenServiceImpl( private val authTokenStorage: AuthTokenStorage, private val authRepository: AuthRepository, private val authEventStorage: AuthEventStorage, - coroutineScope: CoroutineScope, + coroutineScope: ApplicationScope, ) : AuthTokenService { override val authStatus: StateFlow = authTokenStorage.getTokens() .mapLatest { authTokens -> diff --git a/app/auth/auth-core-public/src/main/kotlin/com/hedvig/android/auth/di/AuthMetroProviders.kt b/app/auth/auth-core-public/src/main/kotlin/com/hedvig/android/auth/di/AuthMetroProviders.kt index 26e6e2be69..5351f20068 100644 --- a/app/auth/auth-core-public/src/main/kotlin/com/hedvig/android/auth/di/AuthMetroProviders.kt +++ b/app/auth/auth-core-public/src/main/kotlin/com/hedvig/android/auth/di/AuthMetroProviders.kt @@ -1,11 +1,6 @@ package com.hedvig.android.auth.di -import com.hedvig.android.auth.AuthTokenService -import com.hedvig.android.auth.AuthTokenServiceImpl -import com.hedvig.android.auth.event.AuthEventStorage -import com.hedvig.android.auth.storage.AuthTokenStorage import com.hedvig.android.core.buildconstants.HedvigBuildConstants -import com.hedvig.android.core.common.ApplicationScope import com.hedvig.android.core.common.di.AppScope import com.hedvig.authlib.AuthEnvironment import com.hedvig.authlib.AuthRepository @@ -16,20 +11,6 @@ import dev.zacsweers.metro.SingleIn @ContributesTo(AppScope::class) interface AuthMetroProviders { - @Provides - @SingleIn(AppScope::class) - fun provideAuthTokenService( - authTokenStorage: AuthTokenStorage, - authRepository: AuthRepository, - authEventStorage: AuthEventStorage, - applicationScope: ApplicationScope, - ): AuthTokenService = AuthTokenServiceImpl( - authTokenStorage, - authRepository, - authEventStorage, - applicationScope, - ) - @Provides @SingleIn(AppScope::class) fun provideAuthRepository(hedvigBuildConstants: HedvigBuildConstants): AuthRepository = NetworkAuthRepository( diff --git a/app/core/core-datastore-public/src/androidMain/kotlin/com/hedvig/android/core/datastore/DeviceIdFetcher.android.kt b/app/core/core-datastore-public/src/androidMain/kotlin/com/hedvig/android/core/datastore/DeviceIdFetcher.android.kt index 2644e06708..120846691f 100644 --- a/app/core/core-datastore-public/src/androidMain/kotlin/com/hedvig/android/core/datastore/DeviceIdFetcher.android.kt +++ b/app/core/core-datastore-public/src/androidMain/kotlin/com/hedvig/android/core/datastore/DeviceIdFetcher.android.kt @@ -1,7 +1,14 @@ package com.hedvig.android.core.datastore +import com.hedvig.android.core.common.di.AppScope +import dev.zacsweers.metro.ContributesBinding +import dev.zacsweers.metro.Inject +import dev.zacsweers.metro.SingleIn import kotlinx.coroutines.flow.firstOrNull +@Inject +@SingleIn(AppScope::class) +@ContributesBinding(AppScope::class) internal class AndroidDeviceIdFetcher( private val deviceIdDataStore: DeviceIdDataStore, ) : DeviceIdFetcher { diff --git a/app/core/core-datastore-public/src/androidMain/kotlin/com/hedvig/android/core/datastore/di/DataStoreMetroProviders.android.kt b/app/core/core-datastore-public/src/androidMain/kotlin/com/hedvig/android/core/datastore/di/DataStoreMetroProviders.android.kt index b1b695d7d4..f828b28607 100644 --- a/app/core/core-datastore-public/src/androidMain/kotlin/com/hedvig/android/core/datastore/di/DataStoreMetroProviders.android.kt +++ b/app/core/core-datastore-public/src/androidMain/kotlin/com/hedvig/android/core/datastore/di/DataStoreMetroProviders.android.kt @@ -4,9 +4,6 @@ import android.content.Context import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences import com.hedvig.android.core.common.di.AppScope -import com.hedvig.android.core.datastore.AndroidDeviceIdFetcher -import com.hedvig.android.core.datastore.DeviceIdDataStore -import com.hedvig.android.core.datastore.DeviceIdFetcher import dev.zacsweers.metro.ContributesTo import dev.zacsweers.metro.Provides import dev.zacsweers.metro.SingleIn @@ -18,9 +15,4 @@ interface AndroidDataStoreMetroProviders { fun provideDataStore(applicationContext: Context): DataStore = createDataStore { applicationContext.applicationContext.filesDir.resolve(dataStoreFileName).absolutePath } - - @Provides - @SingleIn(AppScope::class) - fun provideDeviceIdFetcher(deviceIdDataStore: DeviceIdDataStore): DeviceIdFetcher = - AndroidDeviceIdFetcher(deviceIdDataStore) } diff --git a/app/core/core-datastore-public/src/commonMain/kotlin/com/hedvig/android/core/datastore/DeviceIdDataStore.kt b/app/core/core-datastore-public/src/commonMain/kotlin/com/hedvig/android/core/datastore/DeviceIdDataStore.kt index 05f3beae7c..6bf692e80c 100644 --- a/app/core/core-datastore-public/src/commonMain/kotlin/com/hedvig/android/core/datastore/DeviceIdDataStore.kt +++ b/app/core/core-datastore-public/src/commonMain/kotlin/com/hedvig/android/core/datastore/DeviceIdDataStore.kt @@ -5,7 +5,11 @@ import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.core.stringPreferencesKey import com.benasher44.uuid.uuid4 -import kotlinx.coroutines.CoroutineScope +import com.hedvig.android.core.common.ApplicationScope +import com.hedvig.android.core.common.di.AppScope +import dev.zacsweers.metro.ContributesBinding +import dev.zacsweers.metro.Inject +import dev.zacsweers.metro.SingleIn import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.IO import kotlinx.coroutines.flow.Flow @@ -18,9 +22,12 @@ interface DeviceIdDataStore { fun observeDeviceId(): Flow } +@Inject +@SingleIn(AppScope::class) +@ContributesBinding(AppScope::class) internal class DeviceIdDataStoreImpl( private val dataStore: DataStore, - coroutineScope: CoroutineScope, + coroutineScope: ApplicationScope, ) : DeviceIdDataStore { init { coroutineScope.launch(Dispatchers.IO) { diff --git a/app/core/core-datastore-public/src/commonMain/kotlin/com/hedvig/android/core/datastore/di/DataStoreMetroProviders.kt b/app/core/core-datastore-public/src/commonMain/kotlin/com/hedvig/android/core/datastore/di/DataStoreMetroProviders.kt deleted file mode 100644 index a7c9d44cf8..0000000000 --- a/app/core/core-datastore-public/src/commonMain/kotlin/com/hedvig/android/core/datastore/di/DataStoreMetroProviders.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.hedvig.android.core.datastore.di - -import androidx.datastore.core.DataStore -import androidx.datastore.preferences.core.Preferences -import com.hedvig.android.core.common.ApplicationScope -import com.hedvig.android.core.common.di.AppScope -import com.hedvig.android.core.datastore.DeviceIdDataStore -import com.hedvig.android.core.datastore.DeviceIdDataStoreImpl -import dev.zacsweers.metro.ContributesTo -import dev.zacsweers.metro.Provides -import dev.zacsweers.metro.SingleIn - -@ContributesTo(AppScope::class) -interface DataStoreMetroProviders { - @Provides - @SingleIn(AppScope::class) - fun provideDeviceIdDataStore( - dataStore: DataStore, - applicationScope: ApplicationScope, - ): DeviceIdDataStore = DeviceIdDataStoreImpl(dataStore, applicationScope) -} diff --git a/app/feature/feature-claim-chat/src/androidMain/kotlin/com/hedvig/feature/claim/chat/data/AudioRecordingManager.kt b/app/feature/feature-claim-chat/src/androidMain/kotlin/com/hedvig/feature/claim/chat/data/AudioRecordingManager.kt index b6c153bd33..f1e086ab48 100644 --- a/app/feature/feature-claim-chat/src/androidMain/kotlin/com/hedvig/feature/claim/chat/data/AudioRecordingManager.kt +++ b/app/feature/feature-claim-chat/src/androidMain/kotlin/com/hedvig/feature/claim/chat/data/AudioRecordingManager.kt @@ -3,14 +3,21 @@ package com.hedvig.feature.claim.chat.data import android.content.Context import android.media.MediaPlayer import android.media.MediaRecorder +import com.hedvig.android.core.common.di.AppScope import com.hedvig.android.core.fileupload.AndroidFile import com.hedvig.android.core.fileupload.CommonFile +import dev.zacsweers.metro.ContributesBinding +import dev.zacsweers.metro.Inject +import dev.zacsweers.metro.SingleIn import java.io.File import java.util.Timer import java.util.TimerTask import java.util.UUID import kotlin.time.Clock +@Inject +@SingleIn(AppScope::class) +@ContributesBinding(AppScope::class) internal class AndroidAudioRecordingManager( private val clock: Clock, ) : AudioRecordingManager { diff --git a/app/feature/feature-claim-chat/src/androidMain/kotlin/com/hedvig/feature/claim/chat/di/ClaimChatAndroidMetroProviders.kt b/app/feature/feature-claim-chat/src/androidMain/kotlin/com/hedvig/feature/claim/chat/di/ClaimChatAndroidMetroProviders.kt deleted file mode 100644 index 288fea06cd..0000000000 --- a/app/feature/feature-claim-chat/src/androidMain/kotlin/com/hedvig/feature/claim/chat/di/ClaimChatAndroidMetroProviders.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.hedvig.feature.claim.chat.di - -import com.hedvig.android.core.common.di.AppScope -import com.hedvig.feature.claim.chat.data.AndroidAudioRecordingManager -import com.hedvig.feature.claim.chat.data.AudioRecordingManager -import dev.zacsweers.metro.ContributesTo -import dev.zacsweers.metro.Provides -import dev.zacsweers.metro.SingleIn -import kotlin.time.Clock - -@ContributesTo(AppScope::class) -interface ClaimChatAndroidMetroProviders { - @Provides - @SingleIn(AppScope::class) - fun provideAudioRecordingManager(clock: Clock): AudioRecordingManager = AndroidAudioRecordingManager(clock) -} diff --git a/app/featureflags/feature-flags/src/androidMain/kotlin/com/hedvig/android/featureflags/di/FeatureFlagsAndroidMetroProviders.kt b/app/featureflags/feature-flags/src/androidMain/kotlin/com/hedvig/android/featureflags/di/FeatureFlagsAndroidMetroProviders.kt index d7cf8597e2..7564e2d361 100644 --- a/app/featureflags/feature-flags/src/androidMain/kotlin/com/hedvig/android/featureflags/di/FeatureFlagsAndroidMetroProviders.kt +++ b/app/featureflags/feature-flags/src/androidMain/kotlin/com/hedvig/android/featureflags/di/FeatureFlagsAndroidMetroProviders.kt @@ -5,9 +5,7 @@ import com.hedvig.android.auth.MemberIdService import com.hedvig.android.core.buildconstants.HedvigBuildConstants import com.hedvig.android.core.common.ApplicationScope import com.hedvig.android.core.common.di.AppScope -import com.hedvig.android.featureflags.FeatureManager import com.hedvig.android.featureflags.HedvigUnleashClient -import com.hedvig.android.featureflags.flags.UnleashFeatureFlagProvider import dev.zacsweers.metro.ContributesTo import dev.zacsweers.metro.Provides import dev.zacsweers.metro.SingleIn @@ -28,9 +26,4 @@ interface FeatureFlagsAndroidMetroProviders { coroutineScope = applicationScope, memberIdService = memberIdService, ) - - @Provides - @SingleIn(AppScope::class) - fun provideFeatureManager(hedvigUnleashClient: HedvigUnleashClient): FeatureManager = - UnleashFeatureFlagProvider(hedvigUnleashClient) } diff --git a/app/featureflags/feature-flags/src/androidMain/kotlin/com/hedvig/android/featureflags/flags/UnleashFeatureFlagProvider.kt b/app/featureflags/feature-flags/src/androidMain/kotlin/com/hedvig/android/featureflags/flags/UnleashFeatureFlagProvider.kt index 0c75387ba2..8be02ff787 100644 --- a/app/featureflags/feature-flags/src/androidMain/kotlin/com/hedvig/android/featureflags/flags/UnleashFeatureFlagProvider.kt +++ b/app/featureflags/feature-flags/src/androidMain/kotlin/com/hedvig/android/featureflags/flags/UnleashFeatureFlagProvider.kt @@ -1,11 +1,18 @@ package com.hedvig.android.featureflags.flags +import com.hedvig.android.core.common.di.AppScope import com.hedvig.android.featureflags.FeatureManager import com.hedvig.android.featureflags.HedvigUnleashClient +import dev.zacsweers.metro.ContributesBinding +import dev.zacsweers.metro.Inject +import dev.zacsweers.metro.SingleIn import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.map +@Inject +@SingleIn(AppScope::class) +@ContributesBinding(AppScope::class) internal class UnleashFeatureFlagProvider( private val hedvigUnleashClient: HedvigUnleashClient, ) : FeatureManager { diff --git a/app/network/network-clients/src/androidMain/kotlin/com/hedvig/android/network/clients/di/NetworkModule.android.kt b/app/network/network-clients/src/androidMain/kotlin/com/hedvig/android/network/clients/di/NetworkMetroProviders.android.kt similarity index 100% rename from app/network/network-clients/src/androidMain/kotlin/com/hedvig/android/network/clients/di/NetworkModule.android.kt rename to app/network/network-clients/src/androidMain/kotlin/com/hedvig/android/network/clients/di/NetworkMetroProviders.android.kt diff --git a/app/network/network-clients/src/commonMain/kotlin/com/hedvig/android/network/clients/di/NetworkModule.kt b/app/network/network-clients/src/commonMain/kotlin/com/hedvig/android/network/clients/di/NetworkMetroProviders.kt similarity index 100% rename from app/network/network-clients/src/commonMain/kotlin/com/hedvig/android/network/clients/di/NetworkModule.kt rename to app/network/network-clients/src/commonMain/kotlin/com/hedvig/android/network/clients/di/NetworkMetroProviders.kt diff --git a/app/network/network-clients/src/jvmMain/kotlin/com/hedvig/android/network/clients/di/NetworkModule.jvm.kt b/app/network/network-clients/src/jvmMain/kotlin/com/hedvig/android/network/clients/di/NetworkMetroProviders.jvm.kt similarity index 100% rename from app/network/network-clients/src/jvmMain/kotlin/com/hedvig/android/network/clients/di/NetworkModule.jvm.kt rename to app/network/network-clients/src/jvmMain/kotlin/com/hedvig/android/network/clients/di/NetworkMetroProviders.jvm.kt diff --git a/app/network/network-clients/src/mobileMain/kotlin/com/hedvig/android/network/clients/di/NetworkModule.mobile.kt b/app/network/network-clients/src/mobileMain/kotlin/com/hedvig/android/network/clients/di/NetworkMetroProviders.mobile.kt similarity index 100% rename from app/network/network-clients/src/mobileMain/kotlin/com/hedvig/android/network/clients/di/NetworkModule.mobile.kt rename to app/network/network-clients/src/mobileMain/kotlin/com/hedvig/android/network/clients/di/NetworkMetroProviders.mobile.kt diff --git a/app/network/network-clients/src/nativeMain/kotlin/com/hedvig/android/network/clients/di/NetworkModule.native.kt b/app/network/network-clients/src/nativeMain/kotlin/com/hedvig/android/network/clients/di/NetworkMetroProviders.native.kt similarity index 100% rename from app/network/network-clients/src/nativeMain/kotlin/com/hedvig/android/network/clients/di/NetworkModule.native.kt rename to app/network/network-clients/src/nativeMain/kotlin/com/hedvig/android/network/clients/di/NetworkMetroProviders.native.kt