From 91863d82a95f9785de27846dccf8ae4c8507b6b4 Mon Sep 17 00:00:00 2001 From: Ax333l Date: Fri, 26 May 2023 15:25:08 +0200 Subject: [PATCH] refactor(di): use constructor DSL for VMs Instead of doing it manually with viewModel { } --- .../manager/compose/di/ViewModelModule.kt | 17 ++--------------- .../ui/viewmodel/InstallerScreenViewModel.kt | 10 ++++++---- .../ui/viewmodel/PatchesSelectorViewModel.kt | 6 ++++-- 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/app/revanced/manager/compose/di/ViewModelModule.kt b/app/src/main/java/app/revanced/manager/compose/di/ViewModelModule.kt index 9ea8df7..42e0945 100644 --- a/app/src/main/java/app/revanced/manager/compose/di/ViewModelModule.kt +++ b/app/src/main/java/app/revanced/manager/compose/di/ViewModelModule.kt @@ -1,27 +1,14 @@ package app.revanced.manager.compose.di import app.revanced.manager.compose.ui.viewmodel.* -import org.koin.androidx.viewmodel.dsl.viewModel import org.koin.androidx.viewmodel.dsl.viewModelOf import org.koin.dsl.module val viewModelModule = module { - viewModel { - PatchesSelectorViewModel( - packageInfo = it.get(), - bundleRepository = get() - ) - } + viewModelOf(::PatchesSelectorViewModel) viewModelOf(::SettingsViewModel) viewModelOf(::AppSelectorViewModel) viewModelOf(::SourcesScreenViewModel) - viewModel { - InstallerScreenViewModel( - input = it.get(), - selectedPatches = it.get(), - app = get(), - signerService = get(), - ) - } + viewModelOf(::InstallerScreenViewModel) viewModelOf(::UpdateSettingsViewModel) } diff --git a/app/src/main/java/app/revanced/manager/compose/ui/viewmodel/InstallerScreenViewModel.kt b/app/src/main/java/app/revanced/manager/compose/ui/viewmodel/InstallerScreenViewModel.kt index 6976293..5927c5c 100644 --- a/app/src/main/java/app/revanced/manager/compose/ui/viewmodel/InstallerScreenViewModel.kt +++ b/app/src/main/java/app/revanced/manager/compose/ui/viewmodel/InstallerScreenViewModel.kt @@ -27,15 +27,17 @@ import app.revanced.manager.compose.util.PatchesSelection import app.revanced.manager.compose.util.toast import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json +import org.koin.core.component.KoinComponent +import org.koin.core.component.inject import java.io.File import java.nio.file.Files class InstallerScreenViewModel( input: PackageInfo, - selectedPatches: PatchesSelection, - private val app: Application, - private val signerService: SignerService -) : ViewModel() { + selectedPatches: PatchesSelection +) : ViewModel(), KoinComponent { + private val signerService: SignerService by inject() + private val app: Application by inject() var stepGroups by mutableStateOf>( PatcherProgressManager.generateGroupsList( app, diff --git a/app/src/main/java/app/revanced/manager/compose/ui/viewmodel/PatchesSelectorViewModel.kt b/app/src/main/java/app/revanced/manager/compose/ui/viewmodel/PatchesSelectorViewModel.kt index 4026664..7590feb 100644 --- a/app/src/main/java/app/revanced/manager/compose/ui/viewmodel/PatchesSelectorViewModel.kt +++ b/app/src/main/java/app/revanced/manager/compose/ui/viewmodel/PatchesSelectorViewModel.kt @@ -7,9 +7,11 @@ import app.revanced.manager.compose.patcher.patch.PatchInfo import app.revanced.manager.compose.util.PackageInfo import app.revanced.manager.compose.util.PatchesSelection import kotlinx.coroutines.flow.map +import org.koin.core.component.KoinComponent +import org.koin.core.component.get -class PatchesSelectorViewModel(packageInfo: PackageInfo, bundleRepository: BundleRepository) : ViewModel() { - val bundlesFlow = bundleRepository.bundles.map { bundles -> +class PatchesSelectorViewModel(packageInfo: PackageInfo) : ViewModel(), KoinComponent { + val bundlesFlow = get().bundles.map { bundles -> bundles.mapValues { (_, bundle) -> bundle.patches }.map { (name, patches) -> val supported = mutableListOf() val unsupported = mutableListOf()