diff --git a/core/src/main/java/dev/jdtech/jellyfin/viewmodels/StorageViewModel.kt b/core/src/main/java/dev/jdtech/jellyfin/viewmodels/StorageViewModel.kt deleted file mode 100644 index 379c1757..00000000 --- a/core/src/main/java/dev/jdtech/jellyfin/viewmodels/StorageViewModel.kt +++ /dev/null @@ -1,106 +0,0 @@ -package dev.jdtech.jellyfin.viewmodels - -import androidx.lifecycle.ViewModel -import androidx.lifecycle.viewModelScope -import dagger.hilt.android.lifecycle.HiltViewModel -import dev.jdtech.jellyfin.database.ServerDatabaseDao -import dev.jdtech.jellyfin.models.Server -import dev.jdtech.jellyfin.models.StorageItem -import dev.jdtech.jellyfin.models.toFindroidEpisode -import dev.jdtech.jellyfin.models.toFindroidMovie -import dev.jdtech.jellyfin.models.toFindroidSeason -import dev.jdtech.jellyfin.models.toFindroidShow -import dev.jdtech.jellyfin.repository.JellyfinRepository -import java.io.File -import javax.inject.Inject -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.asStateFlow -import kotlinx.coroutines.launch -import timber.log.Timber - -@HiltViewModel -class StorageViewModel -@Inject -constructor( - private val database: ServerDatabaseDao, - private val repository: JellyfinRepository, -) : ViewModel() { - private val _serversState = MutableStateFlow>(emptyList()) - val serversState = _serversState.asStateFlow() - - private val _itemsState = MutableStateFlow>(emptyList()) - val itemsState = _itemsState.asStateFlow() - - init { - loadServers() - } - - private fun loadServers() { - viewModelScope.launch { - try { - val servers = database.getAllServersSync() - _serversState.emit(servers) - } catch (e: Exception) { - Timber.e(e) - } - } - } - - fun loadItems(serverId: String) { - viewModelScope.launch { - try { - val items = mutableListOf() - - database.getMoviesByServerId(serverId) - .map { it.toFindroidMovie(database, repository.getUserId()) } - .map { movie -> - items.add( - StorageItem( - item = movie, - introTimestamps = database.getIntro(movie.id) != null, - trickPlayData = database.getTrickPlayManifest(movie.id) != null, - size = File(movie.sources.first().path).length().div(1000000) - ) - ) - } - database.getShowsByServerId(serverId) - .map { it.toFindroidShow(database, repository.getUserId()) } - .map { show -> - items.add( - StorageItem( - item = show, - ) - ) - database.getSeasonsByShowId(show.id) - .map { it.toFindroidSeason(database, repository.getUserId()) } - .map { season -> - items.add( - StorageItem( - item = season, - indent = 1, - ) - ) - database.getEpisodesBySeasonId(season.id) - .map { it.toFindroidEpisode(database, repository.getUserId()) } - .map { episode -> - items.add( - StorageItem( - item = episode, - introTimestamps = database.getIntro(episode.id) != null, - trickPlayData = database.getTrickPlayManifest(episode.id) != null, - size = File(episode.sources.first().path).length() - .div(1000000), - indent = 2, - ) - ) - } - } - } - - _itemsState.emit(items) - } catch (e: Exception) { - Timber.e(e) - } - } - } -} diff --git a/data/src/main/java/dev/jdtech/jellyfin/models/StorageItem.kt b/data/src/main/java/dev/jdtech/jellyfin/models/StorageItem.kt deleted file mode 100644 index 85f4b439..00000000 --- a/data/src/main/java/dev/jdtech/jellyfin/models/StorageItem.kt +++ /dev/null @@ -1,12 +0,0 @@ -package dev.jdtech.jellyfin.models - -data class StorageItem( - val item: FindroidItem, - val size: Long? = null, - val externalSubtitles: Boolean = false, - val externalSubtitlesSize: Long? = null, - val trickPlayData: Boolean = false, - val trickPlayDataSize: Long? = null, - val introTimestamps: Boolean = false, - val indent: Int = 0, -)