Cześć.
Próbuję zrobić listę ulubinych grup która będzie się wyświetlać po wciśnięciu gwiazdki w menu. Mimo tego że w bazie danych znajdują się wiersze z danymi o ulubionych grupach, to zawsze moja funkcja z MainViewModel zwraca pustą listę, chociaż w innym fragmencie w którym wyświetlam listę ulubionych grup w recyclerView wszystko działa jak należy i każda nowo stworzona grupa jest poprawnie wyświetlana.

Tutaj wszystko jest w porządku:
screenshot-20220809131850.png

A tutaj w innej aktywności na wciśnięcie przycisku menu zawsze wyrzuca mi toast "You have to create a favorites group."

override fun onOptionsItemSelected(item: MenuItem): Boolean {
        if (item.itemId == android.R.id.home) {
            finish()
        } else if (item.itemId == R.id.save_to_favorites_menu && !recipeSaved) {

            val data = mainViewModel.readFavoritesGroups.value?.toTypedArray()  // zawsze zwraca mi pustą listę
            val favoritesGroups = data?.map { it.name }?.toTypedArray()

            // Toast na pustą listę grup ulubionych
            if (favoritesGroups.isNullOrEmpty()) {
                Toast.makeText(
                    this,
                    "You have to create a favorites group.",
                    Toast.LENGTH_SHORT
                ).show()
                return super.onOptionsItemSelected(item)
            }

            // wyświetlenie AlertDialogu i wybór grupy
            var selected by Delegates.notNull<String>()
            AlertDialog.Builder(this)
                .setSingleChoiceItems(favoritesGroups, 0) { _, position ->
                    selected = favoritesGroups[position]
                }.show()
            val selectedGroup =
                mainViewModel.readFavoritesGroups.value!![favoritesGroups.indexOf(selected)]

            saveToFavorites(item, selectedGroup)

        } else if (item.itemId == R.id.save_to_favorites_menu && recipeSaved) {
            removeFromFavorites(item)
        }
        return super.onOptionsItemSelected(item)
    }

Entity:

package com.example.spoonacularapp.data.database.entities

import androidx.room.Entity
import androidx.room.PrimaryKey
import com.example.spoonacularapp.util.Constants

@Entity(tableName = Constants.FAVORITES_GROUPS_TABLE)
class FavoritesGroupsEntity (
    @PrimaryKey(autoGenerate = true)
    var id: Int,
    var name: String,
    var color: String
)

Dao:

    @Query("SELECT * FROM favorites_groups_table ORDER BY id ASC")
    fun readFavoritesGroups(): Flow<List<FavoritesGroupsEntity>>

LocalDataSource:

    fun readFavoritesGroups(): Flow<List<FavoritesGroupsEntity>>{
        return recipesDao.readFavoritesGroups()
    }

Repository:

package com.example.spoonacularapp.data

import dagger.hilt.android.scopes.ViewModelScoped
import javax.inject.Inject

@ViewModelScoped
class Repository @Inject constructor(
    remoteDataSource: RemoteDataSource,
    localDataSource: LocalDataSource
){
    val remote = remoteDataSource
    val local = localDataSource
}

MainViewModel:

@HiltViewModel
class MainViewModel @Inject constructor(
    private val repository: Repository,
    application: Application
): AndroidViewModel(application) {

    // ROOM DATABASE

    val readRecipes: LiveData<List<RecipesEntity>> = repository.local.readRecipes().asLiveData()
    val readFavoriteRecipes: LiveData<List<FavoritesEntity>> = repository.local.readFavoriteRecipes().asLiveData()
    val readFavoritesGroups: LiveData<List<FavoritesGroupsEntity>> = repository.local.readFavoritesGroups().asLiveData()

    [...]