File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -289,6 +289,7 @@ let package = Package(
289289 name: " UpdateChecker " ,
290290 dependencies: [
291291 " Sparkle " ,
292+ . product( name: " Preferences " , package : " Tool " ) ,
292293 . product( name: " Logger " , package : " Tool " ) ,
293294 ]
294295 ) ,
Original file line number Diff line number Diff line change @@ -238,6 +238,8 @@ struct GeneralSettingsView: View {
238238 var hideCircularWidget
239239 @AppStorage ( \. showHideWidgetShortcutGlobally)
240240 var showHideWidgetShortcutGlobally
241+ @AppStorage ( \. installBetaBuilds)
242+ var installBetaBuilds
241243 }
242244
243245 @StateObject var settings = Settings ( )
@@ -255,6 +257,10 @@ struct GeneralSettingsView: View {
255257 ) ) {
256258 Text ( " Automatically Check for Update " )
257259 }
260+
261+ Toggle ( isOn: $settings. installBetaBuilds) {
262+ Text ( " Install beta builds " )
263+ }
258264
259265 Picker ( selection: $settings. suggestionWidgetPositionMode) {
260266 ForEach ( SuggestionWidgetPositionMode . allCases, id: \. rawValue) {
Original file line number Diff line number Diff line change 1- import Sparkle
21import Logger
2+ import Preferences
3+ import Sparkle
34
45public final class UpdateChecker {
56 let updater : SPUUpdater
67 let hostBundleFound : Bool
8+ let delegate = UpdaterDelegate ( )
79
810 public init ( hostBundle: Bundle ? ) {
911 if hostBundle == nil {
@@ -16,7 +18,7 @@ public final class UpdateChecker {
1618 hostBundle: hostBundle ?? Bundle . main,
1719 applicationBundle: Bundle . main,
1820 userDriver: SPUStandardUserDriver ( hostBundle: hostBundle ?? Bundle . main, delegate: nil ) ,
19- delegate: nil
21+ delegate: delegate
2022 )
2123 do {
2224 try updater. start ( )
@@ -35,3 +37,13 @@ public final class UpdateChecker {
3537 }
3638}
3739
40+ class UpdaterDelegate : NSObject , SPUUpdaterDelegate {
41+ func allowedChannels( for updater: SPUUpdater ) -> Set < String > {
42+ if UserDefaults . shared. value ( for: \. installBetaBuilds) {
43+ Set ( [ " beta " ] )
44+ } else {
45+ [ ]
46+ }
47+ }
48+ }
49+
Original file line number Diff line number Diff line change @@ -93,6 +93,13 @@ public struct UserDefaultPreferenceKeys {
9393 defaultValue: false ,
9494 key: " ShowHideWidgetShortcutGlobally "
9595 )
96+
97+ // MARK: Update Channel
98+
99+ public let installBetaBuilds = PreferenceKey (
100+ defaultValue: false ,
101+ key: " InstallBetaBuilds "
102+ )
96103}
97104
98105// MARK: - OpenAI Account Settings
You can’t perform that action at this time.
0 commit comments