From bee0c46eff475d85bbdcc56976993d3b154c84fe Mon Sep 17 00:00:00 2001 From: enki Date: Thu, 30 Jul 2026 10:24:34 -0700 Subject: [PATCH] Update check runs on every cold start instead of a 6h throttle One GET to our own Gitea per launch is nothing, and it makes the updater predictable: publish a release, users see the banner on next open. Co-Authored-By: Claude Fable 5 --- .../features/home/impl/roomlist/RoomListPresenter.kt | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListPresenter.kt b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListPresenter.kt index 7254b7b88b..9b85ee1862 100644 --- a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListPresenter.kt +++ b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListPresenter.kt @@ -230,16 +230,13 @@ class RoomListPresenter( } } - // Blap: in-app update check — throttled, so most launches make no network call. + // Blap: in-app update check — every cold start (one cheap GET to our own Gitea); + // an update is offered the first launch after it's published, no waiting window. var blapUpdateInfo by remember { mutableStateOf(null) } var blapUpdateDownloading by remember { mutableStateOf(false) } var blapUpdateFailed by remember { mutableStateOf(false) } LaunchedEffect(Unit) { - val now = System.currentTimeMillis() - val lastCheck = sharedPreferences.getLong(BLAP_UPDATE_LAST_CHECK_KEY, 0L) - if (now - lastCheck < BLAP_UPDATE_CHECK_INTERVAL_MS) return@LaunchedEffect val info = blapUpdateChecker.check() - sharedPreferences.edit { putLong(BLAP_UPDATE_LAST_CHECK_KEY, now) } if (info != null && info.version != sharedPreferences.getString(BLAP_UPDATE_DISMISSED_KEY, null)) { blapUpdateInfo = info } @@ -443,9 +440,7 @@ class RoomListPresenter( const val BLAP_VOICE_ROOMS_KEY = "blap_voice_room_ids" const val BLAP_SPACE_OWNED_KEY = "blap_space_owned_room_ids" const val BLAP_NESTED_SPACES_KEY = "blap_nested_space_ids" - const val BLAP_UPDATE_LAST_CHECK_KEY = "blap_update_last_check" const val BLAP_UPDATE_DISMISSED_KEY = "blap_update_dismissed_version" - const val BLAP_UPDATE_CHECK_INTERVAL_MS = 6 * 60 * 60 * 1000L } @Composable