11package com.bnyro.wallpaper.ui.components
22
33import androidx.compose.runtime.Composable
4+ import androidx.compose.runtime.rememberCoroutineScope
45import androidx.compose.ui.platform.LocalContext
56import androidx.compose.ui.res.stringResource
67import com.bnyro.wallpaper.R
78import com.bnyro.wallpaper.db.DatabaseHolder
89import com.bnyro.wallpaper.db.obj.Wallpaper
9- import com.bnyro.wallpaper.ext.awaitQuery
1010import com.bnyro.wallpaper.ui.components.dialogs.ListDialog
1111import com.bnyro.wallpaper.ui.models.WallpaperHelperModel
1212import com.bnyro.wallpaper.util.Preferences
13+ import kotlinx.coroutines.Dispatchers
14+ import kotlinx.coroutines.launch
15+ import kotlinx.coroutines.withContext
1316
1417@Composable
1518fun WallpaperModeDialog (
@@ -19,6 +22,7 @@ fun WallpaperModeDialog(
1922 applyFilter : Boolean = false
2023) {
2124 val context = LocalContext .current
25+ val scope = rememberCoroutineScope()
2226
2327 ListDialog (
2428 title = stringResource(R .string.set_wallpaper),
@@ -30,22 +34,24 @@ fun WallpaperModeDialog(
3034 ),
3135 onDismissRequest = onDismissRequest,
3236 onClick = { index ->
33- if ( Preferences .getBoolean( Preferences .wallpaperHistory, true ) ) {
34- awaitQuery {
37+ scope.launch( Dispatchers . IO ) {
38+ if ( Preferences .getBoolean( Preferences .wallpaperHistory, true )) {
3539 DatabaseHolder .Database .favoritesDao()
3640 .insert(wallpaper, null , true )
3741 }
38- }
39- if (index == 3 ) {
40- wallpaperHelperModel.setWallpaperWith(context, wallpaper)
41- } else {
42- if (applyFilter) {
43- wallpaperHelperModel.setWallpaperWithFilter(wallpaper = wallpaper, index)
44- } else {
45- wallpaperHelperModel.setWallpaper(wallpaper = wallpaper, index)
42+ withContext(Dispatchers .Main ) {
43+ if (index == 3 ) {
44+ wallpaperHelperModel.setWallpaperWith(context, wallpaper)
45+ } else {
46+ if (applyFilter) {
47+ wallpaperHelperModel.setWallpaperWithFilter(wallpaper = wallpaper, index)
48+ } else {
49+ wallpaperHelperModel.setWallpaper(wallpaper = wallpaper, index)
50+ }
51+ }
52+ onDismissRequest.invoke()
4653 }
4754 }
48- onDismissRequest.invoke()
4955 }
5056 )
5157}
0 commit comments