From 3ae7a23d97579498630d44514f74cadcb14e154e Mon Sep 17 00:00:00 2001 From: D4rK7355608 Date: Sun, 30 Jun 2024 13:25:59 +0300 Subject: [PATCH] Performance improvements --- .../d4rk/cleaner/ui/home/HomeComposable.kt | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/app/src/main/kotlin/com/d4rk/cleaner/ui/home/HomeComposable.kt b/app/src/main/kotlin/com/d4rk/cleaner/ui/home/HomeComposable.kt index 1bce379..6d5f244 100644 --- a/app/src/main/kotlin/com/d4rk/cleaner/ui/home/HomeComposable.kt +++ b/app/src/main/kotlin/com/d4rk/cleaner/ui/home/HomeComposable.kt @@ -84,6 +84,20 @@ fun HomeComposable() { val isAnalyzing by viewModel.isAnalyzing.observeAsState(false) val selectedFileCount by viewModel.selectedFileCount.collectAsState() + val imageLoader = ImageLoader.Builder(context) + .memoryCache { + MemoryCache.Builder(context) + .maxSizePercent(0.24) + .build() + } + .diskCache { + DiskCache.Builder() + .directory(context.cacheDir.resolve("image_cache")) + .maxSizePercent(0.02) + .build() + } + .build() + val launchScanningKey = remember { mutableStateOf(false) } Column( @@ -112,7 +126,7 @@ fun HomeComposable() { .size(128.dp, 66.dp) ) } else { - AnalyzeComposable(launchScanningKey) + AnalyzeComposable(launchScanningKey, imageLoader) } } Row( @@ -212,7 +226,7 @@ fun HomeComposable() { * @param viewModel The HomeViewModel instance used to interact with the data and business logic. */ @Composable -fun AnalyzeComposable(launchScanningKey: MutableState) { +fun AnalyzeComposable(launchScanningKey: MutableState, imageLoader: ImageLoader) { val viewModel: HomeViewModel = viewModel() val files by viewModel.scannedFiles.asFlow().collectAsState(initial = listOf()) @@ -247,7 +261,7 @@ fun AnalyzeComposable(launchScanningKey: MutableState) { modifier = Modifier.padding(8.dp) ) { items(files) { file -> - FileCard(file = file, viewModel = viewModel) + FileCard(file = file, viewModel = viewModel, imageLoader = imageLoader) } } } @@ -282,24 +296,10 @@ fun AnalyzeComposable(launchScanningKey: MutableState) { @Composable -fun FileCard(file: File, viewModel: HomeViewModel) { +fun FileCard(file: File, viewModel: HomeViewModel, imageLoader: ImageLoader) { val context = LocalContext.current val fileExtension = getFileExtension(file.name) - val imageLoader = ImageLoader.Builder(context) - .memoryCache { - MemoryCache.Builder(context) - .maxSizePercent(0.24) - .build() - } - .diskCache { - DiskCache.Builder() - .directory(context.cacheDir.resolve("image_cache")) - .maxSizePercent(0.02) - .build() - } - .build() - val thumbnail = remember(file.absolutePath) { getVideoThumbnail(file.absolutePath, thumbnailWidth = 64, thumbnailHeight = 64) } @@ -330,6 +330,7 @@ fun FileCard(file: File, viewModel: HomeViewModel) { } } ) + .size(64) .crossfade(true) .build(), imageLoader = imageLoader,