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