66 lines
1.6 KiB
Swift
66 lines
1.6 KiB
Swift
//
|
|
// AdvancedPreferencesViewController.swift
|
|
// NetNewsWire
|
|
//
|
|
// Created by Brent Simmons on 1/11/19.
|
|
// Copyright © 2019 Ranchero Software. All rights reserved.
|
|
//
|
|
|
|
import AppKit
|
|
|
|
final class AdvancedPreferencesViewController: NSViewController {
|
|
|
|
@IBOutlet var releaseBuildsButton: NSButton!
|
|
@IBOutlet var testBuildsButton: NSButton!
|
|
|
|
let releaseBuildsURL = Bundle.main.infoDictionary!["SUFeedURL"]! as! String
|
|
let testBuildsURL = Bundle.main.infoDictionary!["FeedURLForTestBuilds"]! as! String
|
|
let appcastDefaultsKey = "SUFeedURL"
|
|
|
|
var didRegisterForNotification = false
|
|
var wantsTestBuilds: Bool {
|
|
get {
|
|
return currentAppcastURL() == testBuildsURL
|
|
}
|
|
set {
|
|
UserDefaults.standard.set(newValue ? testBuildsURL : releaseBuildsURL, forKey: appcastDefaultsKey)
|
|
}
|
|
}
|
|
|
|
override func viewWillAppear() {
|
|
super.viewWillAppear()
|
|
updateUI()
|
|
if !didRegisterForNotification {
|
|
NotificationCenter.default.addObserver(self, selector: #selector(userDefaultsDidChange(_:)), name: UserDefaults.didChangeNotification, object: nil)
|
|
didRegisterForNotification = true
|
|
}
|
|
}
|
|
|
|
@IBAction func updateTypeButtonClicked(_ sender: Any?) {
|
|
guard let button = sender as? NSButton else {
|
|
return
|
|
}
|
|
wantsTestBuilds = (button === testBuildsButton)
|
|
}
|
|
|
|
@objc func userDefaultsDidChange(_ sender: Any?) {
|
|
updateUI()
|
|
}
|
|
}
|
|
|
|
private extension AdvancedPreferencesViewController {
|
|
|
|
func updateUI() {
|
|
if wantsTestBuilds {
|
|
testBuildsButton.state = .on
|
|
}
|
|
else {
|
|
releaseBuildsButton.state = .on
|
|
}
|
|
}
|
|
|
|
func currentAppcastURL() -> String {
|
|
return UserDefaults.standard.string(forKey: appcastDefaultsKey) ?? ""
|
|
}
|
|
}
|