diff --git a/shared/src/commonMain/kotlin/App.kt b/shared/src/commonMain/kotlin/App.kt index 67f67732..b0d30305 100644 --- a/shared/src/commonMain/kotlin/App.kt +++ b/shared/src/commonMain/kotlin/App.kt @@ -54,7 +54,7 @@ fun App( Screen.PLAYLIST -> { PlaylistScreen(playlistViewModel, overlaid = false) { slideshowViewModel.setSlideshowFromPlaylist(it) - currentScreen.value = Screen.PLAYLIST + currentScreen.value = Screen.SLIDESHOW } } } diff --git a/shared/src/commonMain/kotlin/com/kevinschildhorn/fotopresenter/domain/image/RetrieveImageUseCase.kt b/shared/src/commonMain/kotlin/com/kevinschildhorn/fotopresenter/domain/image/RetrieveImageUseCase.kt index 51a3e60e..9a3827af 100644 --- a/shared/src/commonMain/kotlin/com/kevinschildhorn/fotopresenter/domain/image/RetrieveImageUseCase.kt +++ b/shared/src/commonMain/kotlin/com/kevinschildhorn/fotopresenter/domain/image/RetrieveImageUseCase.kt @@ -26,15 +26,28 @@ class RetrieveImageUseCase( } logger.i { "Getting Image Bitmap from File ${directory.name}" } - val imageBitmap: ImageBitmap? = directory.image?.getImageBitmap(50) // TODO - callback( - imageBitmap?.let { - State.SUCCESS(it) - } ?: State.ERROR("No Image Found"), - ) + val smallImageBitmap = downloadAndStoreImage(directory, 64) + callback(smallImageBitmap.asState) + + val largeImageBitmap = downloadAndStoreImage(directory, 256) + callback(largeImageBitmap.asState) + } + + private fun downloadAndStoreImage( + directory: ImageDirectory, + bitmapSize: Int, + ): ImageBitmap? { + logger.i { "Getting Image Bitmap from File ${directory.name}" } + val imageBitmap: ImageBitmap? = directory.image?.getImageBitmap(bitmapSize) imageBitmap?.let { logger.i { "Caching new Image ${directory.name}" } imageCacheDataSource.saveImage(directory.details, it) } + return imageBitmap } + + private val ImageBitmap?.asState: State + get() = this?.let { + State.SUCCESS(it) + } ?: State.ERROR("No Image Found") }