Use database executors instead of compose coroutines to launch database operations
This commit is contained in:
@@ -20,7 +20,6 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.scale
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.media3.common.Player
|
||||
import it.vfsfitvnm.route.Route
|
||||
import it.vfsfitvnm.route.RouteHandler
|
||||
import it.vfsfitvnm.route.empty
|
||||
@@ -28,6 +27,7 @@ import it.vfsfitvnm.route.rememberRoute
|
||||
import it.vfsfitvnm.vimusic.Database
|
||||
import it.vfsfitvnm.vimusic.LocalPlayerServiceBinder
|
||||
import it.vfsfitvnm.vimusic.models.Song
|
||||
import it.vfsfitvnm.vimusic.query
|
||||
import it.vfsfitvnm.vimusic.ui.components.BottomSheet
|
||||
import it.vfsfitvnm.vimusic.ui.components.BottomSheetState
|
||||
import it.vfsfitvnm.vimusic.ui.screens.rememberLyricsRoute
|
||||
@@ -55,7 +55,6 @@ fun PlayerBottomSheet(
|
||||
val colorPalette = LocalColorPalette.current
|
||||
val typography = LocalTypography.current
|
||||
|
||||
|
||||
val coroutineScope = rememberCoroutineScope()
|
||||
|
||||
val lyricsRoute = rememberLyricsRoute()
|
||||
@@ -209,7 +208,7 @@ fun PlayerBottomSheet(
|
||||
}.map { lyrics ->
|
||||
lyrics ?: ""
|
||||
}.map { lyrics ->
|
||||
withContext(Dispatchers.IO) {
|
||||
query {
|
||||
(song ?: mediaItem.let(Database::insert)).let {
|
||||
Database.update(it.copy(lyrics = lyrics))
|
||||
}
|
||||
@@ -230,7 +229,7 @@ fun PlayerBottomSheet(
|
||||
},
|
||||
onLyricsUpdate = { lyrics ->
|
||||
val mediaItem = player?.currentMediaItem
|
||||
coroutineScope.launch(Dispatchers.IO) {
|
||||
query {
|
||||
(song ?: mediaItem?.let(Database::insert))?.let {
|
||||
Database.update(it.copy(lyrics = lyrics))
|
||||
}
|
||||
|
||||
@@ -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.query
|
||||
import it.vfsfitvnm.vimusic.ui.components.*
|
||||
import it.vfsfitvnm.vimusic.ui.components.themed.QueuedMediaItemMenu
|
||||
import it.vfsfitvnm.vimusic.ui.styling.BlackColorPalette
|
||||
@@ -537,7 +538,7 @@ fun PlayerView(
|
||||
),
|
||||
modifier = Modifier
|
||||
.clickable {
|
||||
coroutineScope.launch(Dispatchers.IO) {
|
||||
query {
|
||||
(song ?: playerState.mediaItem?.let(Database::insert))?.let {
|
||||
Database.update(it.toggleLike())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user