From 36c537466c09ea6816a953d2755e8c0e7922877f Mon Sep 17 00:00:00 2001 From: lihenggui Date: Fri, 28 Jun 2024 11:05:03 -0700 Subject: [PATCH] Use correct implementation in providing multiplatform components --- ...roid.kt => AndroidPlatformDependentDataModule.kt} | 12 +++++++----- .../apps/nowinandroid/core/data/di/DataModule.kt | 2 +- .../core/data/di/PlatformDependentDataModule.kt | 11 ++++++++--- .../core/data/di/UserNewsResourceRepositoryModule.kt | 2 +- ...dule.jvm.kt => JvmPlatformDependentDataModule.kt} | 6 +++--- ...ative.kt => NativePlatformDependentDataModule.kt} | 6 +++--- 6 files changed, 23 insertions(+), 16 deletions(-) rename core/data/src/androidMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/{PlatformDependentDataModule.android.kt => AndroidPlatformDependentDataModule.kt} (67%) rename core/data/src/jvmMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/{PlatformDependentDataModule.jvm.kt => JvmPlatformDependentDataModule.kt} (88%) rename core/data/src/nativeMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/{PlatformDependentDataModule.native.kt => NativePlatformDependentDataModule.kt} (87%) diff --git a/core/data/src/androidMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/PlatformDependentDataModule.android.kt b/core/data/src/androidMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/AndroidPlatformDependentDataModule.kt similarity index 67% rename from core/data/src/androidMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/PlatformDependentDataModule.android.kt rename to core/data/src/androidMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/AndroidPlatformDependentDataModule.kt index 87f01db64..f1f19d3c7 100644 --- a/core/data/src/androidMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/PlatformDependentDataModule.android.kt +++ b/core/data/src/androidMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/AndroidPlatformDependentDataModule.kt @@ -16,20 +16,22 @@ package com.google.samples.apps.nowinandroid.core.data.di +import com.google.samples.apps.nowinandroid.core.data.util.ConnectivityManagerNetworkMonitor import com.google.samples.apps.nowinandroid.core.data.util.NetworkMonitor +import com.google.samples.apps.nowinandroid.core.data.util.TimeZoneBroadcastMonitor import com.google.samples.apps.nowinandroid.core.data.util.TimeZoneMonitor import me.tatarka.inject.annotations.Component import me.tatarka.inject.annotations.Provides @Component -internal actual abstract class PlatformDependentDataModule { +abstract class AndroidPlatformDependentDataModule: PlatformDependentDataModule() { @Provides - internal actual fun bindsNetworkMonitor(): NetworkMonitor { - TODO() + override fun bindsNetworkMonitor(): NetworkMonitor { + return ConnectivityManagerNetworkMonitor() } @Provides - internal actual fun bindsTimeZoneMonitor(): TimeZoneMonitor { - TODO() + override fun bindsTimeZoneMonitor(): TimeZoneMonitor { + return TimeZoneBroadcastMonitor() } } diff --git a/core/data/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/DataModule.kt b/core/data/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/DataModule.kt index bb29ee7a0..bad20ac1d 100644 --- a/core/data/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/DataModule.kt +++ b/core/data/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/DataModule.kt @@ -43,7 +43,7 @@ abstract class DataModule { ): NewsRepository = newsRepository @Provides - fun userDataRepository( + fun bindsUserDataRepository( userDataRepository: OfflineFirstUserDataRepository, ): UserDataRepository = userDataRepository diff --git a/core/data/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/PlatformDependentDataModule.kt b/core/data/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/PlatformDependentDataModule.kt index d4c6409b7..9bdf3da6e 100644 --- a/core/data/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/PlatformDependentDataModule.kt +++ b/core/data/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/PlatformDependentDataModule.kt @@ -18,12 +18,17 @@ package com.google.samples.apps.nowinandroid.core.data.di import com.google.samples.apps.nowinandroid.core.data.util.NetworkMonitor import com.google.samples.apps.nowinandroid.core.data.util.TimeZoneMonitor +import com.google.samples.apps.nowinandroid.core.di.ApplicationScope import me.tatarka.inject.annotations.Provides -internal expect abstract class PlatformDependentDataModule { +@ApplicationScope +abstract class PlatformDependentDataModule { + + @ApplicationScope @Provides - internal fun bindsNetworkMonitor(): NetworkMonitor + abstract fun bindsNetworkMonitor(): NetworkMonitor + @ApplicationScope @Provides - internal fun bindsTimeZoneMonitor(): TimeZoneMonitor + abstract fun bindsTimeZoneMonitor(): TimeZoneMonitor } diff --git a/core/data/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/UserNewsResourceRepositoryModule.kt b/core/data/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/UserNewsResourceRepositoryModule.kt index 59293fa9d..979fd60ec 100644 --- a/core/data/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/UserNewsResourceRepositoryModule.kt +++ b/core/data/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/UserNewsResourceRepositoryModule.kt @@ -22,7 +22,7 @@ import me.tatarka.inject.annotations.Component import me.tatarka.inject.annotations.Provides @Component -internal abstract class UserNewsResourceRepositoryModule { +abstract class UserNewsResourceRepositoryModule { @Provides fun bindsUserNewsResourceRepository( userDataRepository: CompositeUserNewsResourceRepository, diff --git a/core/data/src/jvmMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/PlatformDependentDataModule.jvm.kt b/core/data/src/jvmMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/JvmPlatformDependentDataModule.kt similarity index 88% rename from core/data/src/jvmMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/PlatformDependentDataModule.jvm.kt rename to core/data/src/jvmMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/JvmPlatformDependentDataModule.kt index df3acd1a3..e7bce4e73 100644 --- a/core/data/src/jvmMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/PlatformDependentDataModule.jvm.kt +++ b/core/data/src/jvmMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/JvmPlatformDependentDataModule.kt @@ -29,9 +29,9 @@ import me.tatarka.inject.annotations.Provides * Leave empty for now */ @Component -internal actual abstract class PlatformDependentDataModule { +abstract class JvmPlatformDependentDataModule : PlatformDependentDataModule() { @Provides - internal actual fun bindsNetworkMonitor(): NetworkMonitor { + override fun bindsNetworkMonitor(): NetworkMonitor { return object : NetworkMonitor { override val isOnline: Flow get() = flowOf(true) @@ -39,7 +39,7 @@ internal actual abstract class PlatformDependentDataModule { } @Provides - internal actual fun bindsTimeZoneMonitor(): TimeZoneMonitor { + override fun bindsTimeZoneMonitor(): TimeZoneMonitor { return object : TimeZoneMonitor { override val currentTimeZone: Flow get() = flowOf(TimeZone.UTC) diff --git a/core/data/src/nativeMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/PlatformDependentDataModule.native.kt b/core/data/src/nativeMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/NativePlatformDependentDataModule.kt similarity index 87% rename from core/data/src/nativeMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/PlatformDependentDataModule.native.kt rename to core/data/src/nativeMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/NativePlatformDependentDataModule.kt index 1600ad86b..95cc466b3 100644 --- a/core/data/src/nativeMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/PlatformDependentDataModule.native.kt +++ b/core/data/src/nativeMain/kotlin/com/google/samples/apps/nowinandroid/core/data/di/NativePlatformDependentDataModule.kt @@ -29,9 +29,9 @@ import me.tatarka.inject.annotations.Provides * Leave empty for now */ @Component -internal actual abstract class PlatformDependentDataModule { +abstract class NativePlatformDependentDataModule : PlatformDependentDataModule() { @Provides - internal actual fun bindsNetworkMonitor(): NetworkMonitor { + override fun bindsNetworkMonitor(): NetworkMonitor { return object : NetworkMonitor { override val isOnline: Flow get() = flowOf(true) @@ -39,7 +39,7 @@ internal actual abstract class PlatformDependentDataModule { } @Provides - internal actual fun bindsTimeZoneMonitor(): TimeZoneMonitor { + override fun bindsTimeZoneMonitor(): TimeZoneMonitor { return object : TimeZoneMonitor { override val currentTimeZone: Flow get() = flowOf(TimeZone.UTC)