diff --git a/Loop.xcodeproj/project.pbxproj b/Loop.xcodeproj/project.pbxproj index 2c8bbde8..42c9e9a1 100644 --- a/Loop.xcodeproj/project.pbxproj +++ b/Loop.xcodeproj/project.pbxproj @@ -19,6 +19,7 @@ A81D8D0A2C068B8700188E12 /* LuminarePreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A81D8D092C068B8700188E12 /* LuminarePreviewView.swift */; }; A81D8D0C2C06950000188E12 /* LuminareManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A81D8D0B2C06950000188E12 /* LuminareManager.swift */; }; A82521EE29E235AC00139654 /* PermissionsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A82521ED29E235AC00139654 /* PermissionsManager.swift */; }; + A826BE592C322BD600B4C10D /* Luminare in Frameworks */ = {isa = PBXBuildFile; productRef = A826BE582C322BD600B4C10D /* Luminare */; }; A82740982AB00FCE00B9BDC5 /* Color+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A82740972AB00FCE00B9BDC5 /* Color+Extensions.swift */; }; A827409A2AB0208500B9BDC5 /* TriggerKeycorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = A82740992AB0208500B9BDC5 /* TriggerKeycorder.swift */; }; A82B1AEE2BD352A100E2F3F9 /* AccentColorConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A82B1AED2BD352A100E2F3F9 /* AccentColorConfiguration.swift */; }; @@ -867,6 +868,14 @@ kind = branch; }; }; + A826BE572C322BD600B4C10D /* XCRemoteSwiftPackageReference "Luminare" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/MrKai77/Luminare"; + requirement = { + branch = main; + kind = branch; + }; + }; A8DCC9792980D5F500D41065 /* XCRemoteSwiftPackageReference "Defaults" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/sindresorhus/Defaults"; diff --git a/Loop/Localizable.xcstrings b/Loop/Localizable.xcstrings index cbf43ca6..2ac96eee 100644 --- a/Loop/Localizable.xcstrings +++ b/Loop/Localizable.xcstrings @@ -6830,6 +6830,9 @@ }, "Unlocking this icon is just a matter of time and loops." : { + }, + "Update…" : { + }, "Updates? In this economy?" : { diff --git a/Loop/Luminare/Loop/AboutConfiguration.swift b/Loop/Luminare/Loop/AboutConfiguration.swift index 463137f6..801fb2c5 100644 --- a/Loop/Luminare/Loop/AboutConfiguration.swift +++ b/Loop/Luminare/Loop/AboutConfiguration.swift @@ -210,6 +210,16 @@ struct AboutConfigurationView: View { .contentTransition(.numericText()) .animation(LuminareSettingsWindow.animation, value: model.updateButtonTitle) } + .onAppear { + if updater.updateState == .available { + model.updateButtonTitle = "Update…" + } + } + .onChange(of: updater.updateState) { _ in + if updater.updateState == .available { + model.updateButtonTitle = "Update…" + } + } // LuminareToggle("Automatically check for updates", isOn: $updater.automaticallyChecksForUpdates) LuminareToggle("Include development versions", isOn: $updater.includeDevelopmentVersions) diff --git a/Loop/Luminare/LuminareManager.swift b/Loop/Luminare/LuminareManager.swift index b28745ce..d6715a29 100644 --- a/Loop/Luminare/LuminareManager.swift +++ b/Loop/Luminare/LuminareManager.swift @@ -20,7 +20,7 @@ class LuminareManager { static let advancedConfiguration = SettingsTab("Advanced", Image(._18PxFaceNerdSmile), AdvancedConfigurationView()) static let excludedAppsConfiguration = SettingsTab("Excluded Apps", Image(._18PxWindowLock), ExcludedAppsConfigurationView()) - static let aboutConfiguration = SettingsTab("About", Image(._18PxMsgSmile2), AboutConfigurationView()) + static let aboutConfiguration = SettingsTab("About", Image(._18PxMsgSmile2), AboutConfigurationView(), showIndicator: { AppDelegate.updater.updateState == .available }) static var luminare: LuminareSettingsWindow?