package dev.jdtech.jellyfin.viewmodels import androidx.lifecycle.* import dagger.hilt.android.lifecycle.HiltViewModel import dev.jdtech.jellyfin.repository.JellyfinRepository import kotlinx.coroutines.launch import org.jellyfin.sdk.model.api.BaseItemDto import timber.log.Timber import javax.inject.Inject @HiltViewModel class MediaViewModel @Inject constructor( private val jellyfinRepository: JellyfinRepository ) : ViewModel() { private val _collections = MutableLiveData>() val collections: LiveData> = _collections private val _finishedLoading = MutableLiveData() val finishedLoading: LiveData = _finishedLoading private val _error = MutableLiveData() val error: LiveData = _error init { loadData() } fun loadData() { _finishedLoading.value = false _error.value = false viewModelScope.launch { try { val items = jellyfinRepository.getItems() _collections.value = items.filter { it.collectionType != "homevideos" && it.collectionType != "music" && it.collectionType != "playlists" && it.collectionType != "boxsets" } } catch (e: Exception) { Timber.e(e) _error.value = true } _finishedLoading.value = true } } }