diff --git a/next/src/main/kotlin/org/fdroid/settings/SettingsManager.kt b/next/src/main/kotlin/org/fdroid/settings/SettingsManager.kt index f1b947d42..b283e9adb 100644 --- a/next/src/main/kotlin/org/fdroid/settings/SettingsManager.kt +++ b/next/src/main/kotlin/org/fdroid/settings/SettingsManager.kt @@ -78,6 +78,7 @@ class SettingsManager @Inject constructor( } private val _lastRepoUpdateFlow = MutableStateFlow(lastRepoUpdate) val lastRepoUpdateFlow = _lastRepoUpdateFlow.asStateFlow() + val isFirstStart get() = lastRepoUpdate <= PREF_DEFAULT_LAST_UPDATE_CHECK.toLong() /** * A set of package name for which we should not show app issues. diff --git a/next/src/main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt b/next/src/main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt index bd7a5f5a8..b8acc55f9 100644 --- a/next/src/main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt +++ b/next/src/main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt @@ -8,7 +8,6 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.map import org.fdroid.database.Repository import org.fdroid.repo.RepoUpdateState -import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_LAST_UPDATE_CHECK import org.fdroid.ui.categories.CategoryGroup import org.fdroid.ui.categories.CategoryItem @@ -20,7 +19,7 @@ fun DiscoverPresenter( categoriesFlow: Flow>, repositoriesFlow: Flow>, searchResultsFlow: StateFlow, - lastRepoUpdate: Long, + isFirstStart: Boolean, repoUpdateStateFlow: StateFlow, ): DiscoverModel { val newApps = newAppsFlow.collectAsState(null).value @@ -34,7 +33,6 @@ fun DiscoverPresenter( // So if we don't have those, we are still loading, have no enabled repo, or this is first start return if (recentlyUpdatedApps.isNullOrEmpty()) { val repositories = repositoriesFlow.collectAsState(null).value - val isFirstStart = lastRepoUpdate < PREF_DEFAULT_LAST_UPDATE_CHECK.toLong() if (repositories?.all { !it.enabled } == true) { NoEnabledReposDiscoverModel } else if (isFirstStart) { diff --git a/next/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt b/next/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt index 181147bef..15fc1404f 100644 --- a/next/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt +++ b/next/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt @@ -99,7 +99,7 @@ class DiscoverViewModel @Inject constructor( categoriesFlow = categories, repositoriesFlow = repoManager.repositoriesState, searchResultsFlow = searchResults, - lastRepoUpdate = settingsManager.lastRepoUpdate, + isFirstStart = settingsManager.isFirstStart, repoUpdateStateFlow = repoUpdateManager.repoUpdateState, ) } diff --git a/next/src/main/kotlin/org/fdroid/updates/UpdatesManager.kt b/next/src/main/kotlin/org/fdroid/updates/UpdatesManager.kt index 9bb8d6c47..4acdcf8b0 100644 --- a/next/src/main/kotlin/org/fdroid/updates/UpdatesManager.kt +++ b/next/src/main/kotlin/org/fdroid/updates/UpdatesManager.kt @@ -90,7 +90,8 @@ class UpdatesManager @Inject constructor( coroutineScope.launch { // refresh updates whenever installed apps change installedAppsCache.installedApps.collect { - loadUpdates(it) + // don't load updates on very first start or we may find issues too early + if (!settingsManager.isFirstStart) loadUpdates(it) } } } @@ -151,6 +152,8 @@ class UpdatesManager @Inject constructor( lastUpdated = -1, iconModel = PackageName(app.packageName, null), ) + }.also { + log.error { "ISSUE: $it" } } } _appsWithIssues.value = issueItems