Tweak Database class

This commit is contained in:
vfsfitvnm
2022-07-01 12:54:22 +02:00
parent 9b67586dd6
commit 7c165b5c3a
15 changed files with 192 additions and 220 deletions

View File

@@ -210,8 +210,10 @@ fun PlayerBottomSheet(
lyrics ?: ""
}.map { lyrics ->
query {
(song ?: mediaItem.let(Database::insert)).let {
Database.update(it.copy(lyrics = lyrics))
song?.let {
Database.update(song.copy(lyrics = lyrics))
} ?: Database.insert(mediaItem) { song ->
song.copy(lyrics = lyrics)
}
}
lyrics
@@ -234,8 +236,12 @@ fun PlayerBottomSheet(
onLyricsUpdate = { lyrics ->
val mediaItem = player?.currentMediaItem
query {
(song ?: mediaItem?.let(Database::insert))?.let {
Database.update(it.copy(lyrics = lyrics))
song?.let {
Database.update(song.copy(lyrics = lyrics))
} ?: mediaItem?.let {
Database.insert(mediaItem) { song ->
song.copy(lyrics = lyrics)
}
}
}
}

View File

@@ -40,6 +40,7 @@ import it.vfsfitvnm.vimusic.Database
import it.vfsfitvnm.vimusic.LocalPlayerServiceBinder
import it.vfsfitvnm.vimusic.R
import it.vfsfitvnm.vimusic.enums.ThumbnailRoundness
import it.vfsfitvnm.vimusic.models.Song
import it.vfsfitvnm.vimusic.query
import it.vfsfitvnm.vimusic.ui.components.*
import it.vfsfitvnm.vimusic.ui.components.themed.QueuedMediaItemMenu
@@ -181,7 +182,7 @@ fun PlayerView(
}
) {
val song by remember(playerState.mediaItem?.mediaId) {
playerState.mediaItem?.mediaId?.let(Database::songFlow)?.distinctUntilChanged()
playerState.mediaItem?.mediaId?.let(Database::song)?.distinctUntilChanged()
?: flowOf(
null
)
@@ -550,8 +551,10 @@ fun PlayerView(
modifier = Modifier
.clickable {
query {
(song ?: playerState.mediaItem?.let(Database::insert))?.let {
Database.update(it.toggleLike())
song?.let { song ->
Database.update(song.toggleLike())
} ?: playerState.mediaItem?.let { mediaItem ->
Database.insert(mediaItem, Song::toggleLike)
}
}
}