From beef4c4e1bd27230527204e01eb5edbb551ef50e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Orzech?= Date: Thu, 19 Mar 2026 10:27:31 +0100 Subject: [PATCH] fix: prevent "Ghost URL not configured" error after setup FeedViewModel was created at NavGraph scope, so its init block called refresh() before credentials existed when starting on the setup screen. Guard the init refresh with an isConfigured check and explicitly trigger refresh after setup completes. --- .../main/java/com/swoosh/microblog/ui/feed/FeedViewModel.kt | 5 ++++- .../main/java/com/swoosh/microblog/ui/navigation/NavGraph.kt | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) 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 350de2c..82de1c6 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 @@ -3,6 +3,7 @@ package com.swoosh.microblog.ui.feed import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.viewModelScope +import com.swoosh.microblog.data.CredentialsManager import com.swoosh.microblog.data.model.* import com.swoosh.microblog.data.repository.PostRepository import kotlinx.coroutines.flow.* @@ -29,7 +30,9 @@ class FeedViewModel(application: Application) : AndroidViewModel(application) { init { observeLocalPosts() - refresh() + if (CredentialsManager(getApplication()).isConfigured) { + refresh() + } } private fun observeLocalPosts() { diff --git a/app/src/main/java/com/swoosh/microblog/ui/navigation/NavGraph.kt b/app/src/main/java/com/swoosh/microblog/ui/navigation/NavGraph.kt index a33cc63..a4d043d 100644 --- a/app/src/main/java/com/swoosh/microblog/ui/navigation/NavGraph.kt +++ b/app/src/main/java/com/swoosh/microblog/ui/navigation/NavGraph.kt @@ -37,6 +37,7 @@ fun SwooshNavGraph( composable(Routes.SETUP) { SetupScreen( onSetupComplete = { + feedViewModel.refresh() navController.navigate(Routes.FEED) { popUpTo(Routes.SETUP) { inclusive = true } }