diff --git a/next/src/main/kotlin/org/fdroid/settings/SettingsConstants.kt b/next/src/main/kotlin/org/fdroid/settings/SettingsConstants.kt index e926da449..b093f0bbb 100644 --- a/next/src/main/kotlin/org/fdroid/settings/SettingsConstants.kt +++ b/next/src/main/kotlin/org/fdroid/settings/SettingsConstants.kt @@ -5,7 +5,7 @@ import org.fdroid.database.AppListSortOrder object SettingsConstants { const val PREF_KEY_LAST_UPDATE_CHECK = "lastUpdateCheck" - const val PREF_DEFAULT_LAST_UPDATE_CHECK = -1L + const val PREF_DEFAULT_LAST_UPDATE_CHECK = -1 const val PREF_KEY_THEME = "theme" const val PREF_DEFAULT_THEME = "followSystem" diff --git a/next/src/main/kotlin/org/fdroid/settings/SettingsManager.kt b/next/src/main/kotlin/org/fdroid/settings/SettingsManager.kt index ccf00d99d..5e5b58203 100644 --- a/next/src/main/kotlin/org/fdroid/settings/SettingsManager.kt +++ b/next/src/main/kotlin/org/fdroid/settings/SettingsManager.kt @@ -42,9 +42,16 @@ class SettingsManager @Inject constructor( val theme get() = prefs.getString(PREF_KEY_THEME, PREF_DEFAULT_THEME)!! val themeFlow = prefsFlow.map { it.get(PREF_KEY_THEME) } var lastRepoUpdate: Long - get() = prefs.getLong(PREF_KEY_LAST_UPDATE_CHECK, PREF_DEFAULT_LAST_UPDATE_CHECK) + get() = try { + prefs.getInt(PREF_KEY_LAST_UPDATE_CHECK, PREF_DEFAULT_LAST_UPDATE_CHECK) + .toLong() * 1000 + } catch (_: Exception) { + // TODO remove Int hack, because preferences library crashes on Long + // see: https://github.com/zhanghai/ComposePreference/issues/24 + PREF_DEFAULT_LAST_UPDATE_CHECK.toLong() + } set(value) { - prefs.edit { putLong(PREF_KEY_LAST_UPDATE_CHECK, value) } + prefs.edit { putInt(PREF_KEY_LAST_UPDATE_CHECK, (value / 1000).toInt()) } _lastRepoUpdateFlow.update { value } } private val _lastRepoUpdateFlow = MutableStateFlow(lastRepoUpdate) 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 a5ed1f129..8b71fbd7b 100644 --- a/next/src/main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt +++ b/next/src/main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt @@ -28,7 +28,7 @@ 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 + val isFirstStart = lastRepoUpdate < PREF_DEFAULT_LAST_UPDATE_CHECK.toLong() if (newApps == null && recentlyUpdatedApps == null) { // we don't know yet if this LoadingDiscoverModel(isFirstStart)