126 lines
No EOL
5.2 KiB
Kotlin
126 lines
No EOL
5.2 KiB
Kotlin
package com.pixelized.desktop.lwa
|
|
|
|
import com.pixelized.desktop.lwa.network.LwaClient
|
|
import com.pixelized.desktop.lwa.network.LwaClientImpl
|
|
import com.pixelized.desktop.lwa.repository.alteration.AlterationRepository
|
|
import com.pixelized.desktop.lwa.repository.alteration.AlterationStore
|
|
import com.pixelized.desktop.lwa.repository.campaign.CampaignRepository
|
|
import com.pixelized.desktop.lwa.repository.campaign.CampaignStore
|
|
import com.pixelized.desktop.lwa.repository.characterSheet.CharacterSheetRepository
|
|
import com.pixelized.desktop.lwa.repository.characterSheet.CharacterSheetStore
|
|
import com.pixelized.desktop.lwa.repository.network.NetworkRepository
|
|
import com.pixelized.desktop.lwa.repository.roll_history.RollHistoryRepository
|
|
import com.pixelized.desktop.lwa.repository.settings.SettingsFactory
|
|
import com.pixelized.desktop.lwa.repository.settings.SettingsRepository
|
|
import com.pixelized.desktop.lwa.repository.settings.SettingsStore
|
|
import com.pixelized.desktop.lwa.ui.composable.character.characteristic.CharacterDetailCharacteristicDialogViewModel
|
|
import com.pixelized.desktop.lwa.ui.composable.character.characteristic.CharacterSheetCharacteristicDialogFactory
|
|
import com.pixelized.desktop.lwa.ui.screen.campaign.CampaignViewModel
|
|
import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.CharacterDetailFactory
|
|
import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.CharacterDetailViewModel
|
|
import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.CharacterDiminishedViewModel
|
|
import com.pixelized.desktop.lwa.ui.screen.campaign.player.ribbon.PlayerRibbonFactory
|
|
import com.pixelized.desktop.lwa.ui.screen.campaign.player.ribbon.PlayerRibbonViewModel
|
|
import com.pixelized.desktop.lwa.ui.screen.characterSheet.detail.CharacterSheetFactory
|
|
import com.pixelized.desktop.lwa.ui.screen.characterSheet.detail.CharacterSheetViewModel
|
|
import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.CharacterSheetEditFactory
|
|
import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.CharacterSheetEditViewModel
|
|
import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.common.SkillFieldFactory
|
|
import com.pixelized.desktop.lwa.ui.screen.main.MainPageViewModel
|
|
import com.pixelized.desktop.lwa.ui.screen.network.NetworkFactory
|
|
import com.pixelized.desktop.lwa.ui.screen.network.NetworkViewModel
|
|
import com.pixelized.desktop.lwa.ui.screen.roll.RollViewModel
|
|
import com.pixelized.desktop.lwa.ui.screen.rollhistory.RollHistoryViewModel
|
|
import com.pixelized.desktop.lwa.usecase.SettingsUseCase
|
|
import com.pixelized.shared.lwa.model.campaign.factory.CampaignJsonFactory
|
|
import io.ktor.client.HttpClient
|
|
import io.ktor.client.engine.HttpClientEngine
|
|
import io.ktor.client.engine.okhttp.OkHttp
|
|
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
|
|
import io.ktor.client.plugins.websocket.WebSockets
|
|
import io.ktor.serialization.kotlinx.json.json
|
|
import org.koin.core.module.dsl.factoryOf
|
|
import org.koin.core.module.dsl.singleOf
|
|
import org.koin.core.module.dsl.viewModelOf
|
|
import org.koin.dsl.module
|
|
|
|
val appModuleDependencies
|
|
get() = listOf(
|
|
factoryDependencies,
|
|
useCaseDependencies,
|
|
storeDependencies,
|
|
repositoryDependencies,
|
|
viewModelDependencies,
|
|
toolsDependencies,
|
|
)
|
|
|
|
val toolsDependencies
|
|
get() = module {
|
|
single<HttpClientEngine> {
|
|
OkHttp.create()
|
|
}
|
|
single {
|
|
HttpClient(
|
|
engine = get()
|
|
) {
|
|
install(WebSockets) {
|
|
pingIntervalMillis = 20_000
|
|
}
|
|
install(ContentNegotiation) {
|
|
json(get())
|
|
}
|
|
}
|
|
}
|
|
single<LwaClient> { LwaClientImpl(get(), get()) }
|
|
}
|
|
|
|
val storeDependencies
|
|
get() = module {
|
|
singleOf(::CharacterSheetStore)
|
|
singleOf(::SettingsStore)
|
|
singleOf(::AlterationStore)
|
|
singleOf(::CampaignStore)
|
|
}
|
|
|
|
val repositoryDependencies
|
|
get() = module {
|
|
singleOf(::NetworkRepository)
|
|
singleOf(::CharacterSheetRepository)
|
|
singleOf(::RollHistoryRepository)
|
|
singleOf(::SettingsRepository)
|
|
singleOf(::AlterationRepository)
|
|
singleOf(::CampaignRepository)
|
|
}
|
|
|
|
val factoryDependencies
|
|
get() = module {
|
|
factoryOf(::CharacterSheetFactory)
|
|
factoryOf(::CharacterSheetEditFactory)
|
|
factoryOf(::NetworkFactory)
|
|
factoryOf(::SkillFieldFactory)
|
|
factoryOf(::SettingsFactory)
|
|
factoryOf(::CampaignJsonFactory)
|
|
factoryOf(::PlayerRibbonFactory)
|
|
factoryOf(::CharacterDetailFactory)
|
|
factoryOf(::CharacterSheetCharacteristicDialogFactory)
|
|
}
|
|
|
|
val viewModelDependencies
|
|
get() = module {
|
|
viewModelOf(::CampaignViewModel)
|
|
viewModelOf(::MainPageViewModel)
|
|
viewModelOf(::CharacterSheetViewModel)
|
|
viewModelOf(::CharacterSheetEditViewModel)
|
|
viewModelOf(::RollViewModel)
|
|
viewModelOf(::RollHistoryViewModel)
|
|
viewModelOf(::NetworkViewModel)
|
|
viewModelOf(::PlayerRibbonViewModel)
|
|
viewModelOf(::CharacterDetailViewModel)
|
|
viewModelOf(::CharacterDiminishedViewModel)
|
|
viewModelOf(::CharacterDetailCharacteristicDialogViewModel)
|
|
}
|
|
|
|
val useCaseDependencies
|
|
get() = module {
|
|
factoryOf(::SettingsUseCase)
|
|
} |