From 348c89871e051ff392d528aa6f1527d455848fb5 Mon Sep 17 00:00:00 2001 From: Kyle Date: Sun, 31 Mar 2024 01:44:34 +0800 Subject: [PATCH] Fix broken DockProgress Bar Update DockProgress and adopt the new Concurrency Model --- Xcodes.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/swiftpm/Package.resolved | 4 ++-- Xcodes/Backend/AppState+Install.swift | 23 +++++++++++-------- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/Xcodes.xcodeproj/project.pbxproj b/Xcodes.xcodeproj/project.pbxproj index adcdd55..4c4462e 100644 --- a/Xcodes.xcodeproj/project.pbxproj +++ b/Xcodes.xcodeproj/project.pbxproj @@ -1529,7 +1529,7 @@ repositoryURL = "https://github.com/sindresorhus/DockProgress"; requirement = { kind = upToNextMinorVersion; - minimumVersion = 3.2.0; + minimumVersion = 4.3.1; }; }; E84E4F552B335094003F3959 /* XCRemoteSwiftPackageReference "swift-collections" */ = { diff --git a/Xcodes.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Xcodes.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 220940e..1dbb8fe 100644 --- a/Xcodes.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Xcodes.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -33,8 +33,8 @@ "repositoryURL": "https://github.com/sindresorhus/DockProgress", "state": { "branch": null, - "revision": "7100b68571e2dafe3a06ad5905b80fc3b0107b4b", - "version": "3.2.0" + "revision": "d4f23b5a8f5ca0fac393eb7ba78c2fe3e32e52da", + "version": "4.3.1" } }, { diff --git a/Xcodes/Backend/AppState+Install.swift b/Xcodes/Backend/AppState+Install.swift index 325f314..a6969f7 100644 --- a/Xcodes/Backend/AppState+Install.swift +++ b/Xcodes/Backend/AppState+Install.swift @@ -473,19 +473,24 @@ extension AppState { // MARK: - Dock Progress Tracking private func setupDockProgress() { - DockProgress.progressInstance = nil - DockProgress.style = .bar + Task { @MainActor in + DockProgress.progressInstance = nil + DockProgress.style = .bar + + let progress = Progress(totalUnitCount: AppState.totalProgressUnits) + progress.kind = .file + progress.fileOperationKind = .downloading + overallProgress = progress + + DockProgress.progressInstance = overallProgress + } - let progress = Progress(totalUnitCount: AppState.totalProgressUnits) - progress.kind = .file - progress.fileOperationKind = .downloading - overallProgress = progress - - DockProgress.progressInstance = overallProgress } func resetDockProgressTracking() { - DockProgress.progress = 1 // Only way to completely remove overlay with DockProgress is setting progress to complete + Task { @MainActor in + DockProgress.progress = 1 // Only way to completely remove overlay with DockProgress is setting progress to complete + } } // MARK: -