Henzel
03/07/2025, 5:31 PMval viewModel: LettersViewModel = koinViewModel()
viewModel.fetchLetters()
val letters = viewModel.letters.collectAsState()
Log.d("Letters is empty", letters.value.isEmpty().toString()
GlobalScope.launch {
delay(3000L)
if (letters.value.isEmpty()) {
var alphabet = ('A'..'Z').map { char ->
LetterEntity(letter = char.toString())
}
viewModel.insertLetters(*alphabet.toTypedArray())
}
}
class LettersViewModel(private val repository: LetterRepository): ViewModel() {
private val _letters = MutableStateFlow<List<LetterEntity>>(emptyList())
val letters: StateFlow<List<LetterEntity>> = _letters
fun fetchLetters() {
getAllLetters()
}
private fun getAllLetters() {
viewModelScope.launch {
_letters.value = repository.getAllLetters().stateIn(viewModelScope).value
}
}
fun insertLetters(vararg letters: LetterEntity) = viewModelScope.launch {
withContext(<http://Dispatchers.IO|Dispatchers.IO>) {
repository.insertLetters(*letters)
}
}
}
class LetterRepository(private val letterDao: LetterDao) {
suspend fun getAllLetters(): Flow<List<LetterEntity>> = letterDao.getLetters()
suspend fun insertLetters(vararg letters: LetterEntity) = letterDao.insertLetters(*letters)
}
@Dao
interface LetterDao {
@Query("SELECT * FROM letters")
fun getLetters(): Flow<List<LetterEntity>>
@Insert
fun insertLetters(vararg letters: LetterEntity)
}
And also I think that delaying onCreate method is wrong but this is the only way it worked a little) Thank you in advance.Seri
03/07/2025, 5:43 PMLetterRepository.getAllLetters()
and LettersViewModel.letters
Stylianos Gakis
03/07/2025, 5:56 PMI have an issue related to my local db
#CJLTWPH7S
You seem to be in the wrong place, no?
Henzel
03/07/2025, 5:56 PMSeri
03/07/2025, 5:57 PMHenzel
03/07/2025, 6:20 PMZach Klippenstein (he/him) [MOD]
03/07/2025, 6:20 PMHenzel
03/07/2025, 6:20 PMHenzel
03/07/2025, 6:22 PMNitesh Singh
03/07/2025, 6:35 PMNitesh Singh
03/07/2025, 6:37 PMNitesh Singh
03/07/2025, 6:38 PMHenzel
03/07/2025, 6:51 PM