mirror of
https://github.com/f-droid/fdroidclient.git
synced 2026-05-19 22:19:50 -04:00
Fix first start detection
This commit is contained in:
@@ -11,9 +11,9 @@ import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.MoreVert
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
|
||||
import androidx.compose.material3.FilledTonalButton
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.OutlinedButton
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
@@ -158,7 +158,7 @@ fun Discover(
|
||||
val listAll = AppListType.All(
|
||||
title = stringResource(R.string.app_list_all),
|
||||
)
|
||||
FilledTonalButton(
|
||||
OutlinedButton(
|
||||
onClick = { onListTap(listAll) },
|
||||
modifier = Modifier
|
||||
.align(End)
|
||||
|
||||
@@ -5,6 +5,7 @@ import androidx.compose.runtime.collectAsState
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import org.fdroid.database.Repository
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_LAST_UPDATE_CHECK
|
||||
import org.fdroid.ui.categories.CategoryGroup
|
||||
import org.fdroid.ui.categories.CategoryItem
|
||||
|
||||
@@ -15,6 +16,7 @@ fun DiscoverPresenter(
|
||||
categoriesFlow: Flow<List<CategoryItem>>,
|
||||
repositoriesFlow: Flow<List<Repository>>,
|
||||
searchResultsFlow: StateFlow<SearchResults?>,
|
||||
lastRepoUpdate: Long,
|
||||
): DiscoverModel {
|
||||
val newApps = newAppsFlow.collectAsState(null).value
|
||||
val recentlyUpdatedApps = recentlyUpdatedAppsFlow.collectAsState(null).value
|
||||
@@ -26,14 +28,14 @@ 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
|
||||
if (newApps == null && recentlyUpdatedApps == null) {
|
||||
LoadingDiscoverModel(false)
|
||||
// we don't know yet if this
|
||||
LoadingDiscoverModel(isFirstStart)
|
||||
} else if (repositories?.all { !it.enabled } == true) {
|
||||
NoEnabledReposDiscoverModel
|
||||
} else {
|
||||
// apps are empty, if we have enabled repos assume this is first start (still loading)
|
||||
// TODO use more reliable check for first start
|
||||
val isFirstStart = repositories?.find { it.enabled } != null
|
||||
LoadingDiscoverModel(isFirstStart)
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.fdroid.database.FDroidDatabase
|
||||
import org.fdroid.database.Repository
|
||||
import org.fdroid.download.getImageModel
|
||||
import org.fdroid.index.RepoManager
|
||||
import org.fdroid.settings.SettingsManager
|
||||
import org.fdroid.ui.categories.CategoryItem
|
||||
import org.fdroid.ui.lists.AppListItem
|
||||
import org.fdroid.ui.utils.normalize
|
||||
@@ -40,6 +41,7 @@ class DiscoverViewModel @Inject constructor(
|
||||
savedStateHandle: SavedStateHandle,
|
||||
private val db: FDroidDatabase,
|
||||
updatesManager: UpdatesManager,
|
||||
settingsManager: SettingsManager,
|
||||
private val repoManager: RepoManager,
|
||||
@param:IoDispatcher private val ioScope: CoroutineScope,
|
||||
) : AndroidViewModel(app) {
|
||||
@@ -79,6 +81,7 @@ class DiscoverViewModel @Inject constructor(
|
||||
categoriesFlow = categories,
|
||||
repositoriesFlow = repoManager.repositoriesState,
|
||||
searchResultsFlow = searchResults,
|
||||
lastRepoUpdate = settingsManager.lastRepoUpdate,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user