From 05f5518bdb539776cd6f107dda7507114a669c8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Orzech?= Date: Thu, 19 Mar 2026 15:30:28 +0100 Subject: [PATCH] fix: fetch Ghost avatar for existing accounts on app launch --- .../swoosh/microblog/ui/feed/FeedViewModel.kt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/src/main/java/com/swoosh/microblog/ui/feed/FeedViewModel.kt b/app/src/main/java/com/swoosh/microblog/ui/feed/FeedViewModel.kt index f8c5fce..49c1691 100644 --- a/app/src/main/java/com/swoosh/microblog/ui/feed/FeedViewModel.kt +++ b/app/src/main/java/com/swoosh/microblog/ui/feed/FeedViewModel.kt @@ -114,6 +114,25 @@ class FeedViewModel(application: Application) : AndroidViewModel(application) { fun refreshAccountsList() { _accounts.value = accountManager.getAccounts() _activeAccount.value = accountManager.getActiveAccount() + // Fetch avatar if missing for active account + val active = _activeAccount.value + if (active != null && active.avatarUrl == null) { + viewModelScope.launch { + try { + val service = ApiClient.getService( + active.blogUrl, + apiKeyProvider = { active.apiKey } + ) + val response = service.getCurrentUser() + val avatarUrl = response.body()?.users?.firstOrNull()?.profile_image + if (avatarUrl != null) { + accountManager.updateAccount(id = active.id, avatarUrl = avatarUrl) + _activeAccount.value = accountManager.getActiveAccount() + _accounts.value = accountManager.getAccounts() + } + } catch (_: Exception) { /* best-effort */ } + } + } } private fun observeLocalPosts() {