Coverage Summary for Class: ScreenViewModelFactory (com.vsevolodganin.clicktrack)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| ScreenViewModelFactory |
100%
(2/2)
|
100%
(16/16)
|
100%
(29/29)
|
100%
(161/161)
|
| ScreenViewModelFactory$MetroFactory |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/67)
|
| ScreenViewModelFactory$MetroFactory$Companion |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/28)
|
| Total |
50%
(2/4)
|
100%
(16/16)
|
93.5%
(29/31)
|
62.9%
(161/256)
|
package com.vsevolodganin.clicktrack
import com.arkivanov.decompose.ComponentContext
import com.vsevolodganin.clicktrack.about.AboutViewModelImpl
import com.vsevolodganin.clicktrack.edit.EditClickTrackViewModelImpl
import com.vsevolodganin.clicktrack.list.ClickTrackListViewModelImpl
import com.vsevolodganin.clicktrack.metronome.MetronomeViewModelImpl
import com.vsevolodganin.clicktrack.play.PlayClickTrackViewModelImpl
import com.vsevolodganin.clicktrack.polyrhythm.PolyrhythmsViewModelImpl
import com.vsevolodganin.clicktrack.settings.SettingsViewModelImpl
import com.vsevolodganin.clicktrack.soundlibrary.SoundLibraryViewModelImpl
import com.vsevolodganin.clicktrack.training.TrainingViewModelImpl
import dev.zacsweers.metro.Inject
@Inject
class ScreenViewModelFactory(
private val clickTrackListViewModelFactory: ClickTrackListViewModelImpl.Factory,
private val playClickTrackViewModelFactory: PlayClickTrackViewModelImpl.Factory,
private val editClickTrackViewModelFactory: EditClickTrackViewModelImpl.Factory,
private val metronomeViewModelFactory: MetronomeViewModelImpl.Factory,
private val settingsViewModelFactory: SettingsViewModelImpl.Factory,
private val soundLibraryViewModelFactory: SoundLibraryViewModelImpl.Factory,
private val trainingViewModelFactory: TrainingViewModelImpl.Factory,
private val aboutViewModelFactory: AboutViewModelImpl.Factory,
private val polyrhythmsViewModelFactory: PolyrhythmsViewModelImpl.Factory,
) {
fun create(screenConfiguration: ScreenConfiguration, componentContext: ComponentContext): ScreenViewModel {
return when (screenConfiguration) {
ScreenConfiguration.ClickTrackList -> ScreenViewModel.ClickTrackList(
clickTrackListViewModelFactory.create(componentContext),
)
is ScreenConfiguration.PlayClickTrack -> ScreenViewModel.PlayClickTrack(
playClickTrackViewModelFactory.create(componentContext, screenConfiguration),
)
is ScreenConfiguration.EditClickTrack -> ScreenViewModel.EditClickTrack(
editClickTrackViewModelFactory.create(componentContext, screenConfiguration),
)
ScreenConfiguration.Metronome -> ScreenViewModel.Metronome(
metronomeViewModelFactory.create(componentContext),
)
ScreenConfiguration.Training -> ScreenViewModel.Training(
trainingViewModelFactory.create(componentContext),
)
ScreenConfiguration.Settings -> ScreenViewModel.Settings(
settingsViewModelFactory.create(componentContext),
)
ScreenConfiguration.SoundLibrary -> ScreenViewModel.SoundLibrary(
soundLibraryViewModelFactory.create(componentContext),
)
ScreenConfiguration.About -> ScreenViewModel.About(
aboutViewModelFactory.create(componentContext),
)
ScreenConfiguration.Polyrhythms -> ScreenViewModel.Polyrhythms(
polyrhythmsViewModelFactory.create(componentContext),
)
}
}
}