refactor(di): use constructor DSL for VMs

Instead of doing it manually with viewModel { }
This commit is contained in:
Ax333l 2023-05-26 15:25:08 +02:00
parent e4cfab4026
commit 91863d82a9
No known key found for this signature in database
GPG Key ID: D2B4D85271127D23
3 changed files with 12 additions and 21 deletions

View File

@ -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)
}

View File

@ -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<List<StepGroup>>(
PatcherProgressManager.generateGroupsList(
app,

View File

@ -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<BundleRepository>().bundles.map { bundles ->
bundles.mapValues { (_, bundle) -> bundle.patches }.map { (name, patches) ->
val supported = mutableListOf<PatchInfo>()
val unsupported = mutableListOf<PatchInfo>()