package dev.jdtech.jellyfin.viewmodels import android.app.Application import androidx.lifecycle.* import dev.jdtech.jellyfin.api.JellyfinApi import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.jellyfin.sdk.model.api.BaseItemDto import java.util.* class LibraryViewModel(application: Application, userId: UUID) : AndroidViewModel(application) { private val jellyfinApi = JellyfinApi.getInstance(application, "") private val _items = MutableLiveData>() val items: LiveData> = _items private val _finishedLoading = MutableLiveData() val finishedLoading: LiveData = _finishedLoading init { viewModelScope.launch { _items.value = getItems(jellyfinApi.userId!!, userId) _finishedLoading.value = true } } private suspend fun getItems(userId: UUID, parentId: UUID): List { val items: List withContext(Dispatchers.IO) { items = jellyfinApi.itemsApi.getItems(userId, parentId = parentId).content.items!! } return items } }