diff --git a/shared/di/src/androidMain/kotlin/fr/androidmakers/di/DomainModule.android.kt b/shared/di/src/androidMain/kotlin/fr/androidmakers/di/DomainModule.android.kt index 3d6f9f01..8b5aecd7 100644 --- a/shared/di/src/androidMain/kotlin/fr/androidmakers/di/DomainModule.android.kt +++ b/shared/di/src/androidMain/kotlin/fr/androidmakers/di/DomainModule.android.kt @@ -1,11 +1,12 @@ package fr.androidmakers.di +import fr.androidmakers.domain.interactor.AndroidOpenMapUseCase +import fr.androidmakers.domain.interactor.AndroidShareSessionUseCase import fr.androidmakers.domain.interactor.OpenMapUseCase import fr.androidmakers.domain.interactor.ShareSessionUseCase -import org.koin.core.module.dsl.factoryOf import org.koin.dsl.module actual val domainPlatformModule = module { - factoryOf(::OpenMapUseCase) - factoryOf(::ShareSessionUseCase) + factory { AndroidOpenMapUseCase() } + factory { AndroidShareSessionUseCase() } } diff --git a/shared/di/src/androidMain/kotlin/fr/androidmakers/di/Inject.android.kt b/shared/di/src/androidMain/kotlin/fr/androidmakers/di/Inject.android.kt index 91fd5df8..d47aec81 100644 --- a/shared/di/src/androidMain/kotlin/fr/androidmakers/di/Inject.android.kt +++ b/shared/di/src/androidMain/kotlin/fr/androidmakers/di/Inject.android.kt @@ -8,8 +8,8 @@ import org.koin.core.context.startKoin import org.koin.core.logger.Level import org.koin.core.module.Module -actual class DependenciesBuilder(private val context: Context) { - actual fun inject(platformModules: List) { +class DependenciesBuilder(private val context: Context) { + fun inject(platformModules: List) { startKoin { if (BuildConfig.DEBUG) { androidLogger(Level.DEBUG) diff --git a/shared/di/src/commonMain/kotlin/fr/androidmakers/di/Inject.kt b/shared/di/src/commonMain/kotlin/fr/androidmakers/di/Inject.kt index fbde31f3..92a73391 100644 --- a/shared/di/src/commonMain/kotlin/fr/androidmakers/di/Inject.kt +++ b/shared/di/src/commonMain/kotlin/fr/androidmakers/di/Inject.kt @@ -1,11 +1,5 @@ package fr.androidmakers.di -import org.koin.core.module.Module - -expect class DependenciesBuilder { - fun inject(platformModules: List) -} - val sharedModules = listOf( dataModule, domainModule, diff --git a/shared/di/src/iosMain/kotlin/fr/androidmakers/di/DomainModule.ios.kt b/shared/di/src/iosMain/kotlin/fr/androidmakers/di/DomainModule.ios.kt index 3d6f9f01..9be8af46 100644 --- a/shared/di/src/iosMain/kotlin/fr/androidmakers/di/DomainModule.ios.kt +++ b/shared/di/src/iosMain/kotlin/fr/androidmakers/di/DomainModule.ios.kt @@ -1,11 +1,12 @@ package fr.androidmakers.di +import fr.androidmakers.domain.interactor.IosOpenMapUseCase +import fr.androidmakers.domain.interactor.IosShareSessionUseCase import fr.androidmakers.domain.interactor.OpenMapUseCase import fr.androidmakers.domain.interactor.ShareSessionUseCase -import org.koin.core.module.dsl.factoryOf import org.koin.dsl.module actual val domainPlatformModule = module { - factoryOf(::OpenMapUseCase) - factoryOf(::ShareSessionUseCase) + factory { IosOpenMapUseCase() } + factory { IosShareSessionUseCase() } } diff --git a/shared/di/src/iosMain/kotlin/fr/androidmakers/di/Inject.ios.kt b/shared/di/src/iosMain/kotlin/fr/androidmakers/di/Inject.ios.kt index c07b54a6..d22652d1 100644 --- a/shared/di/src/iosMain/kotlin/fr/androidmakers/di/Inject.ios.kt +++ b/shared/di/src/iosMain/kotlin/fr/androidmakers/di/Inject.ios.kt @@ -3,8 +3,8 @@ package fr.androidmakers.di import org.koin.core.context.startKoin import org.koin.core.module.Module -actual class DependenciesBuilder { - actual fun inject(platformModules: List) { +class DependenciesBuilder { + fun inject(platformModules: List) { startKoin { modules( platformModules + diff --git a/shared/domain/src/androidMain/kotlin/fr/androidmakers/domain/interactor/OpenMapUseCase.android.kt b/shared/domain/src/androidMain/kotlin/fr/androidmakers/domain/interactor/OpenMapUseCase.android.kt index 472b435c..53c93014 100644 --- a/shared/domain/src/androidMain/kotlin/fr/androidmakers/domain/interactor/OpenMapUseCase.android.kt +++ b/shared/domain/src/androidMain/kotlin/fr/androidmakers/domain/interactor/OpenMapUseCase.android.kt @@ -6,8 +6,8 @@ import android.content.Intent import android.net.Uri import androidx.core.net.toUri -actual class OpenMapUseCase() { - actual operator fun invoke(context: Context, coordinates: String, name: String) { +class AndroidOpenMapUseCase : OpenMapUseCase { + override operator fun invoke(context: Context, coordinates: String, name: String) { val venueCoordinatesUri = Uri.Builder() .scheme("geo") .encodedAuthority(coordinates) diff --git a/shared/domain/src/androidMain/kotlin/fr/androidmakers/domain/interactor/ShareSessionUseCase.android.kt b/shared/domain/src/androidMain/kotlin/fr/androidmakers/domain/interactor/ShareSessionUseCase.android.kt index 70d76cb6..081e04d7 100644 --- a/shared/domain/src/androidMain/kotlin/fr/androidmakers/domain/interactor/ShareSessionUseCase.android.kt +++ b/shared/domain/src/androidMain/kotlin/fr/androidmakers/domain/interactor/ShareSessionUseCase.android.kt @@ -5,8 +5,8 @@ import androidx.core.app.ShareCompat import fr.androidmakers.domain.model.Session import fr.androidmakers.domain.model.Speaker -actual class ShareSessionUseCase { - actual operator fun invoke( +class AndroidShareSessionUseCase : ShareSessionUseCase { + override operator fun invoke( context: Context, session: Session, speakers: List, diff --git a/shared/domain/src/commonMain/kotlin/fr/androidmakers/domain/interactor/OpenMapUseCase.kt b/shared/domain/src/commonMain/kotlin/fr/androidmakers/domain/interactor/OpenMapUseCase.kt index 8b24285b..7ee8725e 100644 --- a/shared/domain/src/commonMain/kotlin/fr/androidmakers/domain/interactor/OpenMapUseCase.kt +++ b/shared/domain/src/commonMain/kotlin/fr/androidmakers/domain/interactor/OpenMapUseCase.kt @@ -2,6 +2,6 @@ package fr.androidmakers.domain.interactor import fr.androidmakers.domain.PlatformContext -expect class OpenMapUseCase { +interface OpenMapUseCase { operator fun invoke(context: PlatformContext, coordinates: String, name: String) } diff --git a/shared/domain/src/commonMain/kotlin/fr/androidmakers/domain/interactor/ShareSessionUseCase.kt b/shared/domain/src/commonMain/kotlin/fr/androidmakers/domain/interactor/ShareSessionUseCase.kt index 3cd2f722..2dc3e32a 100644 --- a/shared/domain/src/commonMain/kotlin/fr/androidmakers/domain/interactor/ShareSessionUseCase.kt +++ b/shared/domain/src/commonMain/kotlin/fr/androidmakers/domain/interactor/ShareSessionUseCase.kt @@ -5,7 +5,7 @@ import fr.androidmakers.domain.model.Session import fr.androidmakers.domain.model.Speaker // TODO to be improved -expect class ShareSessionUseCase { +interface ShareSessionUseCase { operator fun invoke( context: PlatformContext, session: Session, diff --git a/shared/domain/src/iosMain/kotlin/fr/androidmakers/domain/interactor/OpenMapUseCase.ios.kt b/shared/domain/src/iosMain/kotlin/fr/androidmakers/domain/interactor/OpenMapUseCase.ios.kt index 505af770..f9b6f987 100644 --- a/shared/domain/src/iosMain/kotlin/fr/androidmakers/domain/interactor/OpenMapUseCase.ios.kt +++ b/shared/domain/src/iosMain/kotlin/fr/androidmakers/domain/interactor/OpenMapUseCase.ios.kt @@ -6,9 +6,9 @@ import platform.CoreLocation.CLLocationCoordinate2DMake import platform.MapKit.MKMapItem import platform.MapKit.MKPlacemark -actual class OpenMapUseCase { +class IosOpenMapUseCase : OpenMapUseCase { @OptIn(ExperimentalForeignApi::class) - actual operator fun invoke(context: PlatformContext, coordinates: String, name: String) { + override operator fun invoke(context: PlatformContext, coordinates: String, name: String) { val coordinateArray = coordinates.split(",") if (coordinateArray.size == 2) { val latitude = coordinateArray[0].toDoubleOrNull() diff --git a/shared/domain/src/iosMain/kotlin/fr/androidmakers/domain/interactor/ShareSessionUseCase.ios.kt b/shared/domain/src/iosMain/kotlin/fr/androidmakers/domain/interactor/ShareSessionUseCase.ios.kt index b061d0d6..ef6517c5 100644 --- a/shared/domain/src/iosMain/kotlin/fr/androidmakers/domain/interactor/ShareSessionUseCase.ios.kt +++ b/shared/domain/src/iosMain/kotlin/fr/androidmakers/domain/interactor/ShareSessionUseCase.ios.kt @@ -8,8 +8,8 @@ import platform.Foundation.stringWithFormat import platform.UIKit.UIActivityViewController import platform.UIKit.UIApplication -actual class ShareSessionUseCase { - actual operator fun invoke( +class IosShareSessionUseCase : ShareSessionUseCase { + override operator fun invoke( context: PlatformContext, session: Session, speakers: List,