mirror of
https://github.com/maxgoedjen/secretive.git
synced 2026-03-06 01:37:22 +01:00
Missing secrets help (#671)
This commit is contained in:
@@ -1,23 +1,33 @@
|
||||
import Foundation
|
||||
import AppKit
|
||||
|
||||
protocol JustUpdatedCheckerProtocol: Observable {
|
||||
var justUpdated: Bool { get }
|
||||
@MainActor protocol JustUpdatedCheckerProtocol: Observable {
|
||||
var justUpdatedBuild: Bool { get }
|
||||
var justUpdatedOS: Bool { get }
|
||||
}
|
||||
|
||||
@Observable class JustUpdatedChecker: JustUpdatedCheckerProtocol {
|
||||
@Observable @MainActor class JustUpdatedChecker: JustUpdatedCheckerProtocol {
|
||||
|
||||
var justUpdated: Bool = false
|
||||
var justUpdatedBuild: Bool = false
|
||||
var justUpdatedOS: Bool = false
|
||||
|
||||
init() {
|
||||
check()
|
||||
nonisolated init() {
|
||||
Task { @MainActor in
|
||||
check()
|
||||
}
|
||||
}
|
||||
|
||||
func check() {
|
||||
let lastBuild = UserDefaults.standard.object(forKey: Constants.previousVersionUserDefaultsKey) as? String ?? "None"
|
||||
private func check() {
|
||||
let lastBuild = UserDefaults.standard.object(forKey: Constants.previousVersionUserDefaultsKey) as? String
|
||||
let lastOS = UserDefaults.standard.object(forKey: Constants.previousOSVersionUserDefaultsKey) as? String
|
||||
let currentBuild = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String
|
||||
let osRaw = ProcessInfo.processInfo.operatingSystemVersion
|
||||
let currentOS = "\(osRaw.majorVersion).\(osRaw.minorVersion).\(osRaw.patchVersion)"
|
||||
UserDefaults.standard.set(currentBuild, forKey: Constants.previousVersionUserDefaultsKey)
|
||||
justUpdated = lastBuild != currentBuild
|
||||
UserDefaults.standard.set(currentOS, forKey: Constants.previousOSVersionUserDefaultsKey)
|
||||
justUpdatedBuild = lastBuild != currentBuild
|
||||
// To prevent this showing on first lauch for every user, only show if lastBuild is non-nil.
|
||||
justUpdatedOS = lastBuild != nil && lastOS != currentOS
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +38,7 @@ extension JustUpdatedChecker {
|
||||
|
||||
enum Constants {
|
||||
static let previousVersionUserDefaultsKey = "com.maxgoedjen.Secretive.lastBuild"
|
||||
static let previousOSVersionUserDefaultsKey = "com.maxgoedjen.Secretive.lastOS"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user