From f04695feb67eac4fd4c9fdacf4b8f83a7408dfd0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <99822064+revonateB0T@users.noreply.github.com> Date: Sun, 3 Nov 2024 23:17:50 +0800 Subject: [PATCH] Refresh Avatar Url when load failed (#1873) * Refresh Avatar Url when load failed * Check 404 * Refine --------- Co-authored-by: Dude so hot --- .../main/kotlin/com/hippo/ehviewer/ui/main/AvatarIcon.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/AvatarIcon.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/AvatarIcon.kt index 38fb95b3a..7b234436f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/AvatarIcon.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/AvatarIcon.kt @@ -40,12 +40,14 @@ import arrow.core.Option import arrow.core.none import arrow.core.some import coil3.compose.AsyncImage +import coil3.network.HttpException import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.client.parser.HomeParser import com.hippo.ehviewer.collectAsState +import com.hippo.ehviewer.ui.login.refreshAccountInfo import com.hippo.ehviewer.ui.tools.DialogState import com.hippo.ehviewer.util.displayString import com.ramcosta.composedestinations.navigation.DestinationsNavigator @@ -179,6 +181,12 @@ fun AvatarIcon() { AsyncImage( model = avatar, contentDescription = null, + onError = { (_, r) -> + val e = r.throwable + if (e is HttpException && e.response.code == 404) { + launchIO { refreshAccountInfo() } + } + }, modifier = Modifier.clip(CircleShape), contentScale = ContentScale.Crop, )