mirror of
				https://github.com/maxgoedjen/secretive.git
				synced 2025-11-04 01:10:56 +00:00 
			
		
		
		
	Dump
This commit is contained in:
		
							parent
							
								
									a748099270
								
							
						
					
					
						commit
						92a516d6dc
					
				@ -3,11 +3,11 @@ import Combine
 | 
			
		||||
 | 
			
		||||
public protocol UpdaterProtocol: ObservableObject {
 | 
			
		||||
 | 
			
		||||
    var update: Release? { get }
 | 
			
		||||
    @MainActor var update: Release? { get }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
public class Updater: ObservableObject, UpdaterProtocol {
 | 
			
		||||
@MainActor public class Updater: ObservableObject, UpdaterProtocol {
 | 
			
		||||
 | 
			
		||||
    @Published public var update: Release?
 | 
			
		||||
 | 
			
		||||
@ -19,28 +19,28 @@ public class Updater: ObservableObject, UpdaterProtocol {
 | 
			
		||||
        self.currentVersion = currentVersion
 | 
			
		||||
        if checkOnLaunch {
 | 
			
		||||
            // Don't do a launch check if the user hasn't seen the setup prompt explaining updater yet.
 | 
			
		||||
            checkForUpdates()
 | 
			
		||||
            Task { await checkForUpdates() }
 | 
			
		||||
        }
 | 
			
		||||
        let timer = Timer.scheduledTimer(withTimeInterval: 60*60*24, repeats: true) { _ in
 | 
			
		||||
            self.checkForUpdates()
 | 
			
		||||
            Task { await self.checkForUpdates() }
 | 
			
		||||
        }
 | 
			
		||||
        timer.tolerance = 60*60
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public func checkForUpdates() {
 | 
			
		||||
        URLSession.shared.dataTask(with: Constants.updateURL) { data, _, _ in
 | 
			
		||||
            guard let data = data else { return }
 | 
			
		||||
            guard let releases = try? JSONDecoder().decode([Release].self, from: data) else { return }
 | 
			
		||||
            self.evaluate(releases: releases)
 | 
			
		||||
        }.resume()
 | 
			
		||||
    public func checkForUpdates() async {
 | 
			
		||||
        guard let (data, _) = try? await URLSession.shared.data(from: Constants.updateURL) else { return }
 | 
			
		||||
        guard let releases = try? JSONDecoder().decode([Release].self, from: data) else { return }
 | 
			
		||||
        evaluate(releases: releases)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public func ignore(release: Release) {
 | 
			
		||||
        guard !release.critical else { return }
 | 
			
		||||
        defaults.set(true, forKey: release.name)
 | 
			
		||||
        DispatchQueue.main.async {
 | 
			
		||||
            self.update = nil
 | 
			
		||||
        }
 | 
			
		||||
        update = release
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    @MainActor private func setRelease(release: Release) {
 | 
			
		||||
        update = release
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -57,9 +57,7 @@ extension Updater {
 | 
			
		||||
        guard !release.prerelease else { return }
 | 
			
		||||
        let latestVersion = SemVer(release.name)
 | 
			
		||||
        if latestVersion > currentVersion {
 | 
			
		||||
            DispatchQueue.main.async {
 | 
			
		||||
                self.update = release
 | 
			
		||||
            }
 | 
			
		||||
            setRelease(release: release)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1241,7 +1241,7 @@
 | 
			
		||||
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 | 
			
		||||
				GCC_WARN_UNUSED_FUNCTION = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_VARIABLE = YES;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 11.0;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 12;
 | 
			
		||||
				MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
 | 
			
		||||
				MTL_FAST_MATH = YES;
 | 
			
		||||
				ONLY_ACTIVE_ARCH = YES;
 | 
			
		||||
@ -1296,7 +1296,7 @@
 | 
			
		||||
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 | 
			
		||||
				GCC_WARN_UNUSED_FUNCTION = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_VARIABLE = YES;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 11.0;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 12;
 | 
			
		||||
				MTL_ENABLE_DEBUG_INFO = NO;
 | 
			
		||||
				MTL_FAST_MATH = YES;
 | 
			
		||||
				SDKROOT = macosx;
 | 
			
		||||
@ -1637,7 +1637,7 @@
 | 
			
		||||
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 | 
			
		||||
				GCC_WARN_UNUSED_FUNCTION = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_VARIABLE = YES;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 11.0;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 12;
 | 
			
		||||
				MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
 | 
			
		||||
				MTL_FAST_MATH = YES;
 | 
			
		||||
				ONLY_ACTIVE_ARCH = YES;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user