From 313c2da7c60a27ef5a11e9588a9b257cfe3ab3cf Mon Sep 17 00:00:00 2001 From: Kai Azim Date: Sun, 30 Jun 2024 18:12:48 -0600 Subject: [PATCH 1/2] =?UTF-8?q?=E2=9C=A8=20Update=20indicator?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Loop.xcodeproj/project.pbxproj | 27 ++++++++++++++++++--------- Loop/Luminare/LuminareManager.swift | 2 +- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/Loop.xcodeproj/project.pbxproj b/Loop.xcodeproj/project.pbxproj index fefbccac..e4ffe581 100644 --- a/Loop.xcodeproj/project.pbxproj +++ b/Loop.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 60; + objectVersion = 56; objects = { /* Begin PBXBuildFile section */ @@ -23,6 +23,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 */; }; @@ -191,6 +192,7 @@ buildActionMask = 2147483647; files = ( A8DCC97B2980D5F500D41065 /* Defaults in Frameworks */, + A826BE592C322BD600B4C10D /* Luminare in Frameworks */, A8BC4A7B2C30AAF400B94B82 /* Luminare in Frameworks */, A883642F298B7288005D6C19 /* ServiceManagement.framework in Frameworks */, A868CB472C30DD8C008923F8 /* Luminare in Frameworks */, @@ -484,6 +486,7 @@ A80397D12A93287C006D2796 /* MenuBarExtraAccess */, A8BC4A7A2C30AAF400B94B82 /* Luminare */, A868CB462C30DD8C008923F8 /* Luminare */, + A826BE582C322BD600B4C10D /* Luminare */, ); productName = WindowManager; productReference = A8E59C35297F5E9A0064D4BA /* Loop.app */; @@ -522,7 +525,7 @@ packageReferences = ( A8DCC9792980D5F500D41065 /* XCRemoteSwiftPackageReference "Defaults" */, A80397D02A93287C006D2796 /* XCRemoteSwiftPackageReference "MenuBarExtraAccess" */, - A868CB452C30DD8C008923F8 /* XCLocalSwiftPackageReference "../Luminare" */, + A826BE572C322BD600B4C10D /* XCRemoteSwiftPackageReference "Luminare" */, ); productRefGroup = A8E59C36297F5E9A0064D4BA /* Products */; projectDirPath = ""; @@ -885,13 +888,6 @@ }; /* End XCConfigurationList section */ -/* Begin XCLocalSwiftPackageReference section */ - A868CB452C30DD8C008923F8 /* XCLocalSwiftPackageReference "../Luminare" */ = { - isa = XCLocalSwiftPackageReference; - relativePath = ../Luminare; - }; -/* End XCLocalSwiftPackageReference section */ - /* Begin XCRemoteSwiftPackageReference section */ A80397D02A93287C006D2796 /* XCRemoteSwiftPackageReference "MenuBarExtraAccess" */ = { isa = XCRemoteSwiftPackageReference; @@ -901,6 +897,14 @@ minimumVersion = 1.0.5; }; }; + 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"; @@ -917,6 +921,11 @@ package = A80397D02A93287C006D2796 /* XCRemoteSwiftPackageReference "MenuBarExtraAccess" */; productName = MenuBarExtraAccess; }; + A826BE582C322BD600B4C10D /* Luminare */ = { + isa = XCSwiftPackageProductDependency; + package = A826BE572C322BD600B4C10D /* XCRemoteSwiftPackageReference "Luminare" */; + productName = Luminare; + }; A868CB462C30DD8C008923F8 /* Luminare */ = { isa = XCSwiftPackageProductDependency; productName = Luminare; 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? From b56729519a905d1083d8b5464f883d049fc1c881 Mon Sep 17 00:00:00 2001 From: Kai Azim Date: Thu, 4 Jul 2024 11:24:30 -0600 Subject: [PATCH 2/2] =?UTF-8?q?=E2=9C=A8=20Change=20text=20to=20"Update?= =?UTF-8?q?=E2=80=A6"=20when=20update=20is=20available?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Loop/Localizable.xcstrings | 3 +++ Loop/Luminare/Loop/AboutConfiguration.swift | 10 ++++++++++ 2 files changed, 13 insertions(+) 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)