From e8ba5c4881e6bf65bc61728f32c1ef67e6783de8 Mon Sep 17 00:00:00 2001 From: tom5079 <7948651+tom5079@users.noreply.github.com> Date: Sun, 24 Mar 2024 22:56:24 -0700 Subject: [PATCH] Fix oom --- app/src/main/java/xyz/quaver/pupil/Pupil.kt | 3 +- .../xyz/quaver/pupil/ui/composable/Gallery.kt | 79 ++++++++++++------- .../quaver/pupil/ui/composable/MainScreen.kt | 2 +- 3 files changed, 55 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/xyz/quaver/pupil/Pupil.kt b/app/src/main/java/xyz/quaver/pupil/Pupil.kt index e6e3ba3f..4b645d6f 100644 --- a/app/src/main/java/xyz/quaver/pupil/Pupil.kt +++ b/app/src/main/java/xyz/quaver/pupil/Pupil.kt @@ -217,6 +217,7 @@ class Pupil : Application(), ImageLoaderFactory { .Builder() .sslSocketFactory(SSLSettings.sslContext!!.socketFactory, SSLSettings.trustManager!!) .build() - }.build() + }.memoryCache(null) + .build() } \ No newline at end of file diff --git a/app/src/main/java/xyz/quaver/pupil/ui/composable/Gallery.kt b/app/src/main/java/xyz/quaver/pupil/ui/composable/Gallery.kt index 79d1cf69..2ae4754c 100644 --- a/app/src/main/java/xyz/quaver/pupil/ui/composable/Gallery.kt +++ b/app/src/main/java/xyz/quaver/pupil/ui/composable/Gallery.kt @@ -248,22 +248,35 @@ fun TagGroup(tags: List) { @Composable fun DetailedGalleryInfoHeader(galleryInfo: GalleryInfo, thumbnailUrl: String?) { - val thumbnailFile = galleryInfo.files.firstOrNull() - if (thumbnailFile?.let { it.width > it.height } == true) { + val thumbnailFile = galleryInfo.files.first() + val aspectRatio = thumbnailFile.let { it.width / it.height.toFloat() } + + if (thumbnailFile.let { it.width > it.height }) { Column { - SubcomposeAsyncImage( - model = ImageRequest.Builder(LocalContext.current) - .data(thumbnailUrl) - .setHeader("Referer", "https://hitomi.la/") - .build(), - modifier = Modifier - .fillMaxWidth() - .aspectRatio(thumbnailFile.let { it.width / it.height.toFloat() }) - .clip(RoundedCornerShape(8.dp)), - loading = { CircularProgressIndicator() }, - error = { Image(painter= painterResource(R.drawable.thumbnail), contentDescription = null) }, - contentDescription = "Thumbnail" - ) + if (thumbnailUrl != null) { + SubcomposeAsyncImage( + model = ImageRequest.Builder(LocalContext.current) + .data(thumbnailUrl) + .setHeader("Referer", "https://hitomi.la/") + .build(), + modifier = Modifier + .fillMaxWidth() + .aspectRatio(aspectRatio) + .clip(RoundedCornerShape(8.dp)), + loading = { CircularProgressIndicator(Modifier.size(32.dp)) }, + error = { + Image( + painter = painterResource(R.drawable.thumbnail), + contentDescription = null + ) + }, + contentDescription = "Thumbnail" + ) + } else { + Box(Modifier.fillMaxWidth().aspectRatio(aspectRatio)) { + CircularProgressIndicator(Modifier.size(32.dp)) + } + } Text(galleryInfo.title, style = MaterialTheme.typography.headlineSmall) val artistsAndGroups = buildString { if (!galleryInfo.artists.isNullOrEmpty()) @@ -307,18 +320,30 @@ fun DetailedGalleryInfoHeader(galleryInfo: GalleryInfo, thumbnailUrl: String?) { horizontalArrangement = Arrangement.spacedBy(4.dp), verticalAlignment = Alignment.CenterVertically ) { - SubcomposeAsyncImage( - model = ImageRequest.Builder(LocalContext.current) - .data(thumbnailUrl) - .setHeader("Referer", "https://hitomi.la/") - .build(), - modifier = Modifier - .height(200.dp) - .clip(RoundedCornerShape(8.dp)), - loading = { CircularProgressIndicator() }, - error = { Image(painter= painterResource(R.drawable.thumbnail), contentDescription = null) }, - contentDescription = "Thumbnail" - ) + if (thumbnailUrl != null) { + SubcomposeAsyncImage( + model = ImageRequest.Builder(LocalContext.current) + .data(thumbnailUrl) + .setHeader("Referer", "https://hitomi.la/") + .build(), + modifier = Modifier + .height(200.dp) + .aspectRatio(aspectRatio) + .clip(RoundedCornerShape(8.dp)), + loading = { CircularProgressIndicator(Modifier.size(32.dp)) }, + error = { + Image( + painter = painterResource(R.drawable.thumbnail), + contentDescription = null + ) + }, + contentDescription = "Thumbnail" + ) + } else { + Box(Modifier.height(200.dp).aspectRatio(aspectRatio)) { + CircularProgressIndicator(Modifier.size(32.dp)) + } + } Column(Modifier.heightIn(min = 200.dp)) { Text(galleryInfo.title, style = MaterialTheme.typography.headlineSmall) val artistsAndGroups = buildString { diff --git a/app/src/main/java/xyz/quaver/pupil/ui/composable/MainScreen.kt b/app/src/main/java/xyz/quaver/pupil/ui/composable/MainScreen.kt index e9dc9d0f..16cc0805 100644 --- a/app/src/main/java/xyz/quaver/pupil/ui/composable/MainScreen.kt +++ b/app/src/main/java/xyz/quaver/pupil/ui/composable/MainScreen.kt @@ -443,7 +443,7 @@ fun MainScreen( loadSearchResult(pageToRange(page)) }} - LaunchedEffect(Unit) { loadSearchResult(pageToRange(0)) } + LaunchedEffect(uiState.query, uiState.currentDestination) { loadSearchResult(pageToRange(0)) } if (contentType == ContentType.DUAL_PANE) { TwoPane(