refactor: simplify Koin module definitions with DSL
This commit is contained in:
+4
-2
@@ -5,9 +5,11 @@ import fr.ajaury.gwenedeg.player.data.AndroidAudioSessionManager
|
|||||||
import fr.ajaury.gwenedeg.player.domain.AudioPlayer
|
import fr.ajaury.gwenedeg.player.domain.AudioPlayer
|
||||||
import fr.ajaury.gwenedeg.player.domain.AudioSessionManager
|
import fr.ajaury.gwenedeg.player.domain.AudioSessionManager
|
||||||
import org.koin.core.module.Module
|
import org.koin.core.module.Module
|
||||||
|
import org.koin.core.module.dsl.bind
|
||||||
|
import org.koin.core.module.dsl.singleOf
|
||||||
import org.koin.dsl.module
|
import org.koin.dsl.module
|
||||||
|
|
||||||
actual val audioPlayerModule: Module = module {
|
actual val audioPlayerModule: Module = module {
|
||||||
single<AudioPlayer> { AndroidAudioPlayer(context = get()) }
|
singleOf(::AndroidAudioPlayer) { bind<AudioPlayer>() }
|
||||||
single<AudioSessionManager> { AndroidAudioSessionManager() }
|
singleOf(::AndroidAudioSessionManager) { bind<AudioSessionManager>() }
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-2
@@ -1,13 +1,17 @@
|
|||||||
package fr.ajaury.gwenedeg.player.di
|
package fr.ajaury.gwenedeg.player.di
|
||||||
|
|
||||||
|
import fr.ajaury.gwenedeg.core.logging.di.loggingModule
|
||||||
import fr.ajaury.gwenedeg.player.data.IosAudioPlayer
|
import fr.ajaury.gwenedeg.player.data.IosAudioPlayer
|
||||||
import fr.ajaury.gwenedeg.player.data.IosAudioSessionManager
|
import fr.ajaury.gwenedeg.player.data.IosAudioSessionManager
|
||||||
import fr.ajaury.gwenedeg.player.domain.AudioPlayer
|
import fr.ajaury.gwenedeg.player.domain.AudioPlayer
|
||||||
import fr.ajaury.gwenedeg.player.domain.AudioSessionManager
|
import fr.ajaury.gwenedeg.player.domain.AudioSessionManager
|
||||||
import org.koin.core.module.Module
|
import org.koin.core.module.Module
|
||||||
|
import org.koin.core.module.dsl.bind
|
||||||
|
import org.koin.core.module.dsl.singleOf
|
||||||
import org.koin.dsl.module
|
import org.koin.dsl.module
|
||||||
|
|
||||||
actual val audioPlayerModule: Module = module {
|
actual val audioPlayerModule: Module = module {
|
||||||
single<AudioPlayer> { IosAudioPlayer() }
|
includes(loggingModule)
|
||||||
single<AudioSessionManager> { IosAudioSessionManager() }
|
singleOf(::IosAudioPlayer) { bind<AudioPlayer>() }
|
||||||
|
singleOf(::IosAudioSessionManager) { bind<AudioSessionManager>() }
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-2
@@ -5,9 +5,11 @@ import fr.ajaury.gwenedeg.player.data.JvmAudioSessionManager
|
|||||||
import fr.ajaury.gwenedeg.player.domain.AudioPlayer
|
import fr.ajaury.gwenedeg.player.domain.AudioPlayer
|
||||||
import fr.ajaury.gwenedeg.player.domain.AudioSessionManager
|
import fr.ajaury.gwenedeg.player.domain.AudioSessionManager
|
||||||
import org.koin.core.module.Module
|
import org.koin.core.module.Module
|
||||||
|
import org.koin.core.module.dsl.bind
|
||||||
|
import org.koin.core.module.dsl.singleOf
|
||||||
import org.koin.dsl.module
|
import org.koin.dsl.module
|
||||||
|
|
||||||
actual val audioPlayerModule: Module = module {
|
actual val audioPlayerModule: Module = module {
|
||||||
single<AudioPlayer> { JvmAudioPlayer() }
|
singleOf(::JvmAudioPlayer) { bind<AudioPlayer>() }
|
||||||
single<AudioSessionManager> { JvmAudioSessionManager() }
|
singleOf(::JvmAudioSessionManager) { bind<AudioSessionManager>() }
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-2
@@ -5,9 +5,11 @@ import fr.ajaury.gwenedeg.player.data.WebAudioSessionManager
|
|||||||
import fr.ajaury.gwenedeg.player.domain.AudioPlayer
|
import fr.ajaury.gwenedeg.player.domain.AudioPlayer
|
||||||
import fr.ajaury.gwenedeg.player.domain.AudioSessionManager
|
import fr.ajaury.gwenedeg.player.domain.AudioSessionManager
|
||||||
import org.koin.core.module.Module
|
import org.koin.core.module.Module
|
||||||
|
import org.koin.core.module.dsl.bind
|
||||||
|
import org.koin.core.module.dsl.singleOf
|
||||||
import org.koin.dsl.module
|
import org.koin.dsl.module
|
||||||
|
|
||||||
actual val audioPlayerModule: Module = module {
|
actual val audioPlayerModule: Module = module {
|
||||||
single<AudioPlayer> { WebAudioPlayer() }
|
singleOf(::WebAudioPlayer) { bind<AudioPlayer>() }
|
||||||
single<AudioSessionManager> { WebAudioSessionManager() }
|
singleOf(::WebAudioSessionManager) { bind<AudioSessionManager>() }
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -3,8 +3,10 @@ package fr.ajaury.gwenedeg.core.coroutines.di
|
|||||||
import fr.ajaury.gwenedeg.core.coroutines.data.DefaultDispatcherProvider
|
import fr.ajaury.gwenedeg.core.coroutines.data.DefaultDispatcherProvider
|
||||||
import fr.ajaury.gwenedeg.core.coroutines.domain.DispatcherProvider
|
import fr.ajaury.gwenedeg.core.coroutines.domain.DispatcherProvider
|
||||||
import org.koin.core.module.Module
|
import org.koin.core.module.Module
|
||||||
|
import org.koin.core.module.dsl.bind
|
||||||
|
import org.koin.core.module.dsl.singleOf
|
||||||
import org.koin.dsl.module
|
import org.koin.dsl.module
|
||||||
|
|
||||||
val coroutinesModule: Module = module {
|
val coroutinesModule: Module = module {
|
||||||
single<DispatcherProvider> { DefaultDispatcherProvider() }
|
singleOf(::DefaultDispatcherProvider) { bind<DispatcherProvider>() }
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -2,9 +2,9 @@ package fr.ajaury.gwenedeg.core.logging.data
|
|||||||
|
|
||||||
import fr.ajaury.gwenedeg.core.logging.domain.Logger
|
import fr.ajaury.gwenedeg.core.logging.domain.Logger
|
||||||
|
|
||||||
internal class KermitLogger(
|
internal class KermitLogger : Logger {
|
||||||
private val tag: String = "Gwenedeg",
|
private val tag: String = "Gwenedeg"
|
||||||
) : Logger {
|
|
||||||
override fun debug(
|
override fun debug(
|
||||||
message: String,
|
message: String,
|
||||||
throwable: Throwable?,
|
throwable: Throwable?,
|
||||||
|
|||||||
+3
-1
@@ -3,8 +3,10 @@ package fr.ajaury.gwenedeg.core.logging.di
|
|||||||
import fr.ajaury.gwenedeg.core.logging.data.KermitLogger
|
import fr.ajaury.gwenedeg.core.logging.data.KermitLogger
|
||||||
import fr.ajaury.gwenedeg.core.logging.domain.Logger
|
import fr.ajaury.gwenedeg.core.logging.domain.Logger
|
||||||
import org.koin.core.module.Module
|
import org.koin.core.module.Module
|
||||||
|
import org.koin.core.module.dsl.bind
|
||||||
|
import org.koin.core.module.dsl.singleOf
|
||||||
import org.koin.dsl.module
|
import org.koin.dsl.module
|
||||||
|
|
||||||
val loggingModule: Module = module {
|
val loggingModule: Module = module {
|
||||||
single<Logger> { KermitLogger() }
|
singleOf(::KermitLogger) { bind<Logger>() }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package fr.ajaury.gwenedeg.di
|
package fr.ajaury.gwenedeg.di
|
||||||
|
|
||||||
|
import fr.ajaury.gwenedeg.core.logging.di.loggingModule
|
||||||
import fr.ajaury.gwenedeg.player.ui.viewmodel.PlayerViewModel
|
import fr.ajaury.gwenedeg.player.ui.viewmodel.PlayerViewModel
|
||||||
import fr.ajaury.gwenedeg.records.data.InMemoryRecordRepository
|
import fr.ajaury.gwenedeg.records.data.InMemoryRecordRepository
|
||||||
import fr.ajaury.gwenedeg.records.domain.RecordRepository
|
import fr.ajaury.gwenedeg.records.domain.RecordRepository
|
||||||
@@ -12,6 +13,7 @@ import org.koin.core.module.dsl.viewModelOf
|
|||||||
import org.koin.dsl.module
|
import org.koin.dsl.module
|
||||||
|
|
||||||
val sharedModule = module {
|
val sharedModule = module {
|
||||||
|
includes(loggingModule)
|
||||||
factoryOf(::InMemoryRecordRepository) { bind<RecordRepository>() }
|
factoryOf(::InMemoryRecordRepository) { bind<RecordRepository>() }
|
||||||
viewModelOf(::RecordsViewModel)
|
viewModelOf(::RecordsViewModel)
|
||||||
viewModelOf(::PlayerViewModel)
|
viewModelOf(::PlayerViewModel)
|
||||||
|
|||||||
Reference in New Issue
Block a user