diff --git a/Xcodes.xcodeproj/project.pbxproj b/Xcodes.xcodeproj/project.pbxproj index adcdd55c..4c4462e2 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 220940ed..1dbb8fe2 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 325f314f..d9d294ef 100644 --- a/Xcodes/Backend/AppState+Install.swift +++ b/Xcodes/Backend/AppState+Install.swift @@ -227,6 +227,7 @@ extension AppState { self.error = error self.presentedAlert = .generic(title: localizeString("Alert.InstallArchive.Error.Title"), message: error.legibleLocalizedDescription) } + resetDockProgressTracking() }) .catch { _ in Just(installedXcode) @@ -473,19 +474,24 @@ extension AppState { // MARK: - Dock Progress Tracking private func setupDockProgress() { - DockProgress.progressInstance = nil - DockProgress.style = .bar - - let progress = Progress(totalUnitCount: AppState.totalProgressUnits) - progress.kind = .file - progress.fileOperationKind = .downloading - overallProgress = progress + 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 + } - 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: -