@@ -5,11 +5,13 @@ import androidx.compose.ui.unit.DpSize
55import androidx.compose.ui.unit.dp
66import coil3.ImageLoader
77import coil3.annotation.ExperimentalCoilApi
8+ import coil3.asImage
89import coil3.decode.DataSource
910import coil3.decode.ImageSource
1011import coil3.disk.DiskCache
1112import coil3.fetch.FetchResult
1213import coil3.fetch.Fetcher
14+ import coil3.fetch.ImageFetchResult
1315import coil3.fetch.SourceFetchResult
1416import coil3.request.Options
1517import eu.darken.butler.common.coil.use
@@ -99,12 +101,11 @@ class WorkspacePreviewFetcher @Inject constructor(
99101
100102 log(TAG ) { " Successfully captured preview for ${data.workspaceId.shortTag} " }
101103
102- val pngBytes = ByteArrayOutputStream ().use { stream ->
103- bitmap.compress(Bitmap .CompressFormat .PNG , 85 , stream)
104- stream.toByteArray()
105- }
106-
107104 if (options.diskCachePolicy.writeEnabled) {
105+ val pngBytes = ByteArrayOutputStream ().use { stream ->
106+ bitmap.compress(Bitmap .CompressFormat .PNG , 85 , stream)
107+ stream.toByteArray()
108+ }
108109 diskCache.value?.openEditor(cacheKey)?.use { editor ->
109110 diskCache.value!! .fileSystem.write(editor.data) {
110111 write(pngBytes)
@@ -113,16 +114,9 @@ class WorkspacePreviewFetcher @Inject constructor(
113114 }
114115 }
115116
116- val bufferedSource = Buffer ().write(pngBytes)
117-
118- val imageSource = ImageSource (
119- source = bufferedSource,
120- fileSystem = FileSystem .SYSTEM ,
121- )
122-
123- return SourceFetchResult (
124- source = imageSource,
125- mimeType = " image/png" ,
117+ return ImageFetchResult (
118+ image = bitmap.asImage(),
119+ isSampled = false ,
126120 dataSource = DataSource .NETWORK
127121 )
128122 }
0 commit comments