refactor: remove unused StorageViewModel
and StorageItem
This commit is contained in:
parent
b816a2d460
commit
219d0c033a
2 changed files with 0 additions and 118 deletions
|
@ -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<List<Server>>(emptyList())
|
||||
val serversState = _serversState.asStateFlow()
|
||||
|
||||
private val _itemsState = MutableStateFlow<List<StorageItem>>(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<StorageItem>()
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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,
|
||||
)
|
Loading…
Reference in a new issue