@@ -3,7 +3,6 @@ package it.vfsfitvnm.vimusic.savers
|
||||
import androidx.compose.runtime.saveable.Saver
|
||||
import androidx.compose.runtime.saveable.SaverScope
|
||||
import it.vfsfitvnm.vimusic.models.Artist
|
||||
import it.vfsfitvnm.vimusic.models.Playlist
|
||||
|
||||
object ArtistSaver : Saver<Artist, List<Any?>> {
|
||||
override fun SaverScope.save(value: Artist): List<Any?> = listOf(
|
||||
@@ -11,10 +10,6 @@ object ArtistSaver : Saver<Artist, List<Any?>> {
|
||||
value.name,
|
||||
value.thumbnailUrl,
|
||||
value.info,
|
||||
value.shuffleVideoId,
|
||||
value.shufflePlaylistId,
|
||||
value.radioVideoId,
|
||||
value.radioPlaylistId,
|
||||
value.timestamp,
|
||||
value.bookmarkedAt,
|
||||
)
|
||||
@@ -24,11 +19,7 @@ object ArtistSaver : Saver<Artist, List<Any?>> {
|
||||
name = value[1] as String,
|
||||
thumbnailUrl = value[2] as String?,
|
||||
info = value[3] as String?,
|
||||
shuffleVideoId = value[4] as String?,
|
||||
shufflePlaylistId = value[5] as String?,
|
||||
radioVideoId = value[6] as String?,
|
||||
radioPlaylistId = value[7] as String?,
|
||||
timestamp = value[8] as Long?,
|
||||
bookmarkedAt = value[9] as Long?,
|
||||
timestamp = value[4] as Long?,
|
||||
bookmarkedAt = value[5] as Long?,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package it.vfsfitvnm.vimusic.savers
|
||||
|
||||
import androidx.compose.runtime.saveable.Saver
|
||||
import androidx.compose.runtime.saveable.SaverScope
|
||||
import it.vfsfitvnm.youtubemusic.YouTube
|
||||
|
||||
object YouTubeArtistPageSaver : Saver<YouTube.Artist, List<Any?>> {
|
||||
override fun SaverScope.save(value: YouTube.Artist): List<Any?> = listOf(
|
||||
value.name,
|
||||
value.description,
|
||||
value.thumbnail?.let { with(YouTubeThumbnailSaver) { save(it) } },
|
||||
value.shuffleEndpoint?.let { with(YouTubeWatchEndpointSaver) { save(it) } },
|
||||
value.radioEndpoint?.let { with(YouTubeWatchEndpointSaver) { save(it) } },
|
||||
value.songs?.let { with(YouTubeSongListSaver) { save(it) } },
|
||||
value.songsEndpoint?.let { with(YouTubeBrowseEndpointSaver) { save(it) } },
|
||||
value.albums?.let { with(YouTubeAlbumListSaver) { save(it) } },
|
||||
value.albumsEndpoint?.let { with(YouTubeBrowseEndpointSaver) { save(it) } },
|
||||
value.singles?.let { with(YouTubeAlbumListSaver) { save(it) } },
|
||||
value.singlesEndpoint?.let { with(YouTubeBrowseEndpointSaver) { save(it) } },
|
||||
)
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun restore(value: List<Any?>) = YouTube.Artist(
|
||||
name = value[0] as String?,
|
||||
description = value[1] as String?,
|
||||
thumbnail = (value[2] as List<Any?>?)?.let(YouTubeThumbnailSaver::restore),
|
||||
shuffleEndpoint = (value[3] as List<Any?>?)?.let(YouTubeWatchEndpointSaver::restore),
|
||||
radioEndpoint = (value[4] as List<Any?>?)?.let(YouTubeWatchEndpointSaver::restore),
|
||||
songs = (value[5] as List<List<Any?>>?)?.let(YouTubeSongListSaver::restore),
|
||||
songsEndpoint = (value[6] as List<Any?>?)?.let(YouTubeBrowseEndpointSaver::restore),
|
||||
albums = (value[7] as List<List<Any?>>?)?.let(YouTubeAlbumListSaver::restore),
|
||||
albumsEndpoint = (value[8] as List<Any?>?)?.let(YouTubeBrowseEndpointSaver::restore),
|
||||
singles = (value[9] as List<List<Any?>>?)?.let(YouTubeAlbumListSaver::restore),
|
||||
singlesEndpoint = (value[10] as List<Any?>?)?.let(YouTubeBrowseEndpointSaver::restore),
|
||||
)
|
||||
}
|
||||
@@ -2,13 +2,14 @@ package it.vfsfitvnm.vimusic.savers
|
||||
|
||||
import androidx.compose.runtime.saveable.Saver
|
||||
import androidx.compose.runtime.saveable.SaverScope
|
||||
import it.vfsfitvnm.vimusic.savers.YouTubeThumbnailSaver.save
|
||||
import it.vfsfitvnm.youtubemusic.YouTube
|
||||
|
||||
object YouTubeArtistSaver : Saver<YouTube.Item.Artist, List<Any?>> {
|
||||
override fun SaverScope.save(value: YouTube.Item.Artist): List<Any?> = listOf(
|
||||
value.info?.let { with(YouTubeBrowseInfoSaver) { save(it) } },
|
||||
value.subscribersCountText,
|
||||
with(YouTubeThumbnailSaver) { value.thumbnail?.let { save(it) } }
|
||||
value.thumbnail?.let { with(YouTubeThumbnailSaver) { save(it) } }
|
||||
)
|
||||
|
||||
override fun restore(value: List<Any?>) = YouTube.Item.Artist(
|
||||
|
||||
Reference in New Issue
Block a user