From 19967ead136f9f03cc9f9bed3271615d21d1d3e0 Mon Sep 17 00:00:00 2001 From: cheykrym Date: Thu, 18 Dec 2025 08:11:21 +0300 Subject: [PATCH] add skip recomendet update --- yobble/Services/AppUpdateChecker.swift | 20 ++++++++++++++++++-- yobble/yobbleApp.swift | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/yobble/Services/AppUpdateChecker.swift b/yobble/Services/AppUpdateChecker.swift index e4c7087..8641cb7 100644 --- a/yobble/Services/AppUpdateChecker.swift +++ b/yobble/Services/AppUpdateChecker.swift @@ -12,6 +12,15 @@ struct AppUpdateNotice: Identifiable { let id = UUID() let kind: Kind let appStoreURL: URL + let skipBuild: Int? + + init(kind: Kind, appStoreURL: URL, skipBuild: Int? = nil) { + self.kind = kind + self.appStoreURL = appStoreURL + self.skipBuild = skipBuild + } + + var canSkip: Bool { skipBuild != nil } var title: String { switch kind { @@ -58,7 +67,10 @@ final class AppUpdateChecker: ObservableObject { Task { await fetchRemoteConfig() } } - func dismissSoftUpdateIfNeeded() { + func dismissSoftUpdateIfNeeded(skipBuild: Int? = nil) { + if let skipBuild { + lastCheckedAppBuild = skipBuild + } softUpdateNotice = nil } @@ -137,7 +149,11 @@ final class AppUpdateChecker: ObservableObject { if buildNumber < config.recommendedBuild && config.recommendedBuild != lastCheckedAppBuild { // lastCheckedAppBuild = config.recommendedBuild - softUpdateNotice = AppUpdateNotice(kind: .soft, appStoreURL: appStoreURL) + softUpdateNotice = AppUpdateNotice( + kind: .soft, + appStoreURL: appStoreURL, + skipBuild: config.recommendedBuild + ) return } } diff --git a/yobble/yobbleApp.swift b/yobble/yobbleApp.swift index b4b47df..2896bbb 100644 --- a/yobble/yobbleApp.swift +++ b/yobble/yobbleApp.swift @@ -83,7 +83,7 @@ struct yobbleApp: App { updateChecker.openAppStore(link: notice.appStoreURL) }, secondaryButton: .cancel(Text(NSLocalizedString("Позже", comment: ""))) { - updateChecker.dismissSoftUpdateIfNeeded() + updateChecker.dismissSoftUpdateIfNeeded(skipBuild: notice.skipBuild) } ) }