From 74d5db3f053dde4c70eb79258b71cb48ea9e5ad9 Mon Sep 17 00:00:00 2001 From: k1ngsterr1 Date: Tue, 17 Mar 2026 18:20:12 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=B2=D0=B5=D1=87?= =?UTF-8?q?=D0=BD=D0=BE=D0=B9=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rosetta/messenger/update/UpdateManager.kt | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/rosetta/messenger/update/UpdateManager.kt b/app/src/main/java/com/rosetta/messenger/update/UpdateManager.kt index fd3c5e2..e1eb9f5 100644 --- a/app/src/main/java/com/rosetta/messenger/update/UpdateManager.kt +++ b/app/src/main/java/com/rosetta/messenger/update/UpdateManager.kt @@ -298,6 +298,12 @@ object UpdateManager { } context.startActivity(intent) + // Сбрасываем состояние — установщик запущен, баннер больше не нужен + activeApkPath = null + activeApkVersion = null + persistState(context) + _updateState.value = UpdateState.Idle + _downloadProgress.value = 0 } catch (e: Exception) { Log.e(TAG, "Failed to launch installer", e) _updateState.value = UpdateState.Error("Failed to open installer: ${e.message}") @@ -390,8 +396,19 @@ object UpdateManager { if (!restoredPath.isNullOrBlank()) { val apk = File(restoredPath) if (apk.exists()) { - _downloadProgress.value = 100 - _updateState.value = UpdateState.ReadyToInstall(apk.absolutePath) + // Показываем баннер только если сохранённая версия НОВЕЕ текущей + val isNewer = !restoredVersion.isNullOrBlank() && + compareVersions(restoredVersion, appVersion) > 0 + if (isNewer) { + _downloadProgress.value = 100 + _updateState.value = UpdateState.ReadyToInstall(apk.absolutePath) + } else { + // APK уже устарел (юзер обновился или скачал ту же версию) — удаляем + apk.delete() + activeApkPath = null + activeApkVersion = null + persistState(context) + } } else { activeApkPath = null activeApkVersion = null