-
Ideally enough to replace Two things so far
commonMain @Composable
inline fun <reified VM : ViewModel> metroViewModel(
viewModelStoreOwner: ViewModelStoreOwner =
checkNotNull(LocalViewModelStoreOwner .current) {
"No ViewModelStoreOwner was provided via LocalViewModelStoreOwner"
},
key: String? = null
): VM {
return viewModel(viewModelStoreOwner, key, factory = metroViewModelProviderFactory())
}
@Composable
expect fun metroViewModelProviderFactory(): ViewModelProvider.Factory androidMain @Composable
actual fun metroViewModelProviderFactory(): ViewModelProvider.Factory {
return (LocalActivity.current as HasDefaultViewModelProviderFactory).defaultViewModelProviderFactory
}
@Inject
class MainActivity(
private val viewModelFactory: ViewModelProvider.Factory
) : ComponentActivity() {
...
override val defaultViewModelProviderFactory: ViewModelProvider.Factory
get() {
return viewModelFactory
} Second - some way to inject the SavedStateHandle |
Beta Was this translation helpful? Give feedback.
Answered by
ZacSweers
Jun 1, 2025
Replies: 1 comment
-
Contributed in https://github.com/ZacSweers/metro/tree/main/samples/compose-navigation-app |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
ZacSweers
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Contributed in https://github.com/ZacSweers/metro/tree/main/samples/compose-navigation-app