Adriano Celentano
11/28/2020, 12:54 PMCaused by: java.lang.InstantiationException: java.lang.Class<com.adriano.spotifytag.presentation.edittrack.EditTrackViewModel> has no zero argument constructor
when using
androidx.navigation:navigation-compose:1.0.0-alpha02
@AndroidEntryPoint
class SpotifyTagActivity : AppCompatActivity() {
@Inject
lateinit var spotifyImageLoader: SpotifyImageLoader
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val navController = rememberNavController()
SpotifyTagTheme {
Providers(SpotifyImageLoaderAmbient provides spotifyImageLoader) {
ProvideWindowInsets {
NavHost(
navController = navController,
startDestination = Screen.EditTrack.route,
builder = {
composable(Screen.EditTrack.route) { EditTrackView() }
composable(Screen.CreatePlaylist.route) { Text(text = "test2") }
}
)
}
}
}
}
}
}
@AndroidEntryPoint
class SpotifyTagActivity : AppCompatActivity() {
@Inject
lateinit var spotifyImageLoader: SpotifyImageLoader
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
SpotifyTagTheme {
Providers(SpotifyImageLoaderAmbient provides spotifyImageLoader) {
ProvideWindowInsets {
EditTrackView()
}
}
}
}
}
}
@Composable
fun EditTrackView() {
val editTrackViewModel: EditTrackViewModel = viewModel()
Surface(color = MaterialTheme.colors.background) {
Box(modifier = Modifier.fillMaxSize()) {
val transition = getEditModeTransition(editTrackViewModel.state.editMode)
TrackAndTagsColumn(
modifier = Modifier.fillMaxSize(),
tags = editTrackViewModel.state.tags,
scaleFactor = transition[CardScaleFactor],
onTagClicked = { index: Int ->
editTrackViewModel.event(TrackViewEvent.TagClicked(index))
},
track = editTrackViewModel.state.currentTrack
)
val alignment = BiasAlignment(1f, transition[FabAlignmentFactor])
TextInputFab(
modifier = Modifier.align(alignment),
editMode = editTrackViewModel.state.editMode,
currentTextInput = editTrackViewModel.state.currentTextInput,
onTextChange = { input: String ->
editTrackViewModel.event(TrackViewEvent.TagTextChanged(input))
},
onClick = { editTrackViewModel.event(TrackViewEvent.FabClicked) }
)
}
}
}
Yann Badoual
11/28/2020, 1:07 PMAdriano Celentano
11/28/2020, 1:22 PM