Jetpack compose with room does not perform onSuccess() action, however the data was inserted
This is my viewModel call from the screen fun:
DIRECTOR_ID = UUID.randomUUID()
AGENCY_ID = UUID.randomUUID()
viewModel.addDirectorAndAgency(
director = Director(
directorId = DIRECTOR_ID,
directorName = directorNameValue,
directorPhone = phoneValue,
directorPassword = directorPasswordValue,
agencyId = AGENCY_ID
),
agency = Agency(
agencyId = AGENCY_ID,
agencyName = agencyNameValue
)
) {
navController.navigate(Graph.MAIN) //This action is not completed
}
This is my viewmodel code:
fun addDirectorAndAgency(agency: Agency, director: Director, onSuccess: () -> Unit) {
viewModelScope.launch(Dispatchers.IO) {
REPOSITORY.insertDirectorAndAgency(agency = agency, director = director ) {
viewModelScope.launch(Dispatchers.Main) {
onSuccess()
}
}
}
}
Database repository:
suspend fun insertDirectorAndAgency(director: Director, agency: Agency, onSuccess: ()-> Unit)
RoomRepository
override suspend fun insertDirectorAndAgency(
director: Director,
agency: Agency,
onSuccess: () -> Unit
) {
agencyDao.insertDirectorAndAgency(agency = agency, director = director )
}
RoomDao:
@Transaction
suspend fun insertDirectorAndAgency(director: Director, agency: Agency) {
insertDirector(director)
insertAgency(agency)
}