in `getViewModel` you can pass a KClass & the ...
# koin
a
in
getViewModel
you can pass a KClass & the name is considered as the key
d
From what I can tell this differs from v1 in a way that we have been using it. As using the
key
allowed for different instances of a ViewModel of the same name. In v2 this is no longer possible (from what I can tell). v1
Copy code
lifecycleOwner.getViewModelByClass(
key = componentId.toString(),
name = viewModelDetails.viewModelName,
clazz = viewModelDetails.clazz)
v2
Copy code
lifecycleOwner.getViewModel(clazz = viewModelDetails.clazz,
                qualifier = named(viewModelDetails.viewModelName))
v1 logs
Copy code
E/Koin: Trying to get ViewModelDetails(viewModelName=MINI_TV_VIEW_MODEL, clazz=class com.example.MiniTileTvViewModel) - id 14558
D/KOIN: [ViewModel] ~ 'class com.exmaple.MiniTileTvViewModel'(name:'MINI_TV_VIEW_MODEL' key:'14558') - HubFragment{82c856e (ac81ba23-878b-4585-abe2-2e3615a96675) id=0x7f090121}
I/KOIN: +-- 'com.example.MiniTileTvViewModel'
D/KOIN: |-- find definition in 0.037382 ms
I/KOIN: |	+-- 'com.example.PackagesRepo'
D/KOIN: |	|-- find definition in 0.030214 ms
D/KOIN: |	|-- get instance in 0.031721 ms
D/KOIN: |	!-- [com.example.PackagesRepo] resolved in 0.132888 ms
D/KOIN: |-- get instance in 0.617685 ms
I/KOIN: \-- (*) Created
D/KOIN: !-- [com.example.MiniTileTvViewModel] resolved in 1.176259 ms
E/Koin: Got viewModel com.example.MiniTileTvViewModel@2bcf2c0
E/Koin: Trying to get ViewModelDetails(viewModelName=MINI_TV_VIEW_MODEL, clazz=class com.example.MiniTileTvViewModel) - id 13948
D/KOIN: [ViewModel] ~ 'class com.example.MiniTileTvViewModel'(name:'MINI_TV_VIEW_MODEL' key:'13948') - HubFragment{82c856e (ac81ba23-878b-4585-abe2-2e3615a96675) id=0x7f090121}
I/KOIN: +-- 'com.example.MiniTileTvViewModel'
D/KOIN: |-- find definition in 0.139476 ms
I/KOIN: |	+-- 'com.example.PackagesRepo'
D/KOIN: |	|-- find definition in 0.024432 ms
D/KOIN: |	|-- get instance in 0.024497 ms
D/KOIN: |	!-- [com.example.PackagesRepo] resolved in 0.107163 ms
D/KOIN: |-- get instance in 0.239346 ms
I/KOIN: \-- (*) Created
D/KOIN: !-- [com.example.MiniTileTvViewModel] resolved in 0.472294 ms
E/Koin: Got viewModel com.example.MiniTileTvViewModel@bc4d97
v2 logs
Copy code
E/Koin: Trying to get ViewModelDetails(viewModelName=MINI_TV_VIEW_MODEL, clazz=class com.example.MiniTileTvViewModel) - id 14558
D/[Koin]: !- ViewModelProvider getting instance
D/[Koin]: +- get 'com.example.MiniTileTvViewModel'
D/[Koin]: | create instance for [type:Factory,name:'MINI_TV_VIEW_MODEL', primary_type:'com.example.MiniTileTvViewModel']
D/[Koin]: +- get 'com.example.PackagesRepo'
D/[Koin]: +- got 'com.example.PackagesRepo' in 0.009683 ms
D/[Koin]: +- got 'com.example.MiniTileTvViewModel' in 0.151841 ms
D/[Koin]: !- ViewModelProvider got instance in 0.233833
E/Koin: Got viewModel com.example.MiniTileTvViewModel@4ac4131
E/Koin: Trying to get ViewModelDetails(viewModelName=MINI_TV_VIEW_MODEL, clazz=class com.example.MiniTileTvViewModel) - id 13948
D/[Koin]: !- ViewModelProvider getting instance
D/[Koin]: !- ViewModelProvider got instance in 0.006366
E/Koin: Got viewModel com.example.MiniTileTvViewModel@4ac4131
E/Koin: Trying to get ViewModelDetails(viewModelName=MINI_TV_VIEW_MODEL, clazz=class com.example.MiniTileTvViewModel) - id 14558
D/[Koin]: !- ViewModelProvider getting instance
D/[Koin]: !- ViewModelProvider got instance in 0.033286
E/Koin: Got viewModel com.example.MiniTileTvViewModel@4ac4131
E/Koin: Trying to get ViewModelDetails(viewModelName=MINI_TV_VIEW_MODEL, clazz=class com.example.MiniTileTvViewModel) - id 13948
D/[Koin]: !- ViewModelProvider getting instance
D/[Koin]: !- ViewModelProvider got instance in 0.00646
E/Koin: Got viewModel com.example.MiniTileTvViewModel@4ac4131
a
can you raise a ticket to help further investigation?
d
Sure
👍 1