Rename Pref -> Prefs

This commit is contained in:
relikd
2020-06-28 14:33:36 +02:00
parent 80afa6aff1
commit f7644e6048
9 changed files with 54 additions and 54 deletions

View File

@@ -1,58 +1,58 @@
import Foundation import Foundation
enum Pref { enum Prefs {
static func Int(_ key: String) -> Int { UserDefaults.standard.integer(forKey: key) } private static func Int(_ key: String) -> Int { UserDefaults.standard.integer(forKey: key) }
static func Int(_ val: Int, _ key: String) { UserDefaults.standard.set(val, forKey: key) } private static func Int(_ val: Int, _ key: String) { UserDefaults.standard.set(val, forKey: key) }
static func Bool(_ key: String) -> Bool { UserDefaults.standard.bool(forKey: key) } private static func Bool(_ key: String) -> Bool { UserDefaults.standard.bool(forKey: key) }
static func Bool(_ val: Bool, _ key: String) { UserDefaults.standard.set(val, forKey: key) } private static func Bool(_ val: Bool, _ key: String) { UserDefaults.standard.set(val, forKey: key) }
static func `Any`(_ key: String) -> Any? { UserDefaults.standard.object(forKey: key) } private static func `Any`(_ key: String) -> Any? { UserDefaults.standard.object(forKey: key) }
static func `Any`(_ val: Any?, _ key: String) { UserDefaults.standard.set(val, forKey: key) } private static func `Any`(_ val: Any?, _ key: String) { UserDefaults.standard.set(val, forKey: key) }
enum DidShowTutorial { enum DidShowTutorial {
static var Welcome: Bool { static var Welcome: Bool {
get { Pref.Bool("didShowTutorialAppWelcome") } get { Prefs.Bool("didShowTutorialAppWelcome") }
set { Pref.Bool(newValue, "didShowTutorialAppWelcome") } set { Prefs.Bool(newValue, "didShowTutorialAppWelcome") }
} }
static var Recordings: Bool { static var Recordings: Bool {
get { Pref.Bool("didShowTutorialRecordings") } get { Prefs.Bool("didShowTutorialRecordings") }
set { Pref.Bool(newValue, "didShowTutorialRecordings") } set { Prefs.Bool(newValue, "didShowTutorialRecordings") }
} }
} }
enum ContextAnalyis { enum ContextAnalyis {
static var CoOccurrenceTime: Int? { static var CoOccurrenceTime: Int? {
get { Pref.Any("contextAnalyisCoOccurrenceTime") as? Int } get { Prefs.Any("contextAnalyisCoOccurrenceTime") as? Int }
set { Pref.Any(newValue, "contextAnalyisCoOccurrenceTime") } set { Prefs.Any(newValue, "contextAnalyisCoOccurrenceTime") }
} }
} }
enum DateFilter { enum DateFilter {
static var Kind: DateFilterKind { static var Kind: DateFilterKind {
get { DateFilterKind(rawValue: Pref.Int("dateFilterType"))! } get { DateFilterKind(rawValue: Prefs.Int("dateFilterType"))! }
set { Pref.Int(newValue.rawValue, "dateFilterType") } set { Prefs.Int(newValue.rawValue, "dateFilterType") }
} }
/// Default: `0` (disabled) /// Default: `0` (disabled)
static var LastXMin: Int { static var LastXMin: Int {
get { Pref.Int("dateFilterLastXMin") } get { Prefs.Int("dateFilterLastXMin") }
set { Pref.Int(newValue, "dateFilterLastXMin") } set { Prefs.Int(newValue, "dateFilterLastXMin") }
} }
/// Default: `nil` (disabled) /// Default: `nil` (disabled)
static var RangeA: Timestamp? { static var RangeA: Timestamp? {
get { Pref.Any("dateFilterRangeA") as? Timestamp } get { Prefs.Any("dateFilterRangeA") as? Timestamp }
set { Pref.Any(newValue, "dateFilterRangeA") } set { Prefs.Any(newValue, "dateFilterRangeA") }
} }
/// Default: `nil` (disabled) /// Default: `nil` (disabled)
static var RangeB: Timestamp? { static var RangeB: Timestamp? {
get { Pref.Any("dateFilterRangeB") as? Timestamp } get { Prefs.Any("dateFilterRangeB") as? Timestamp }
set { Pref.Any(newValue, "dateFilterRangeB") } set { Prefs.Any(newValue, "dateFilterRangeB") }
} }
/// default: `.Date` /// default: `.Date`
static var OrderBy: DateFilterOrderBy { static var OrderBy: DateFilterOrderBy {
get { DateFilterOrderBy(rawValue: Pref.Int("dateFilterOderType"))! } get { DateFilterOrderBy(rawValue: Prefs.Int("dateFilterOderType"))! }
set { Pref.Int(newValue.rawValue, "dateFilterOderType") } set { Prefs.Int(newValue.rawValue, "dateFilterOderType") }
} }
/// default: `false` (Desc) /// default: `false` (Desc)
static var OrderAsc: Bool { static var OrderAsc: Bool {
get { Pref.Bool("dateFilterOderAsc") } get { Prefs.Bool("dateFilterOderAsc") }
set { Pref.Bool(newValue, "dateFilterOderAsc") } set { Prefs.Bool(newValue, "dateFilterOderAsc") }
} }
/// - Returns: Timestamp restriction depending on current selected date filter. /// - Returns: Timestamp restriction depending on current selected date filter.
@@ -63,8 +63,8 @@ enum Pref {
let type = Kind let type = Kind
switch type { switch type {
case .Off: return (type, nil, nil) case .Off: return (type, nil, nil)
case .LastXMin: return (type, Timestamp.past(minutes: Pref.DateFilter.LastXMin), nil) case .LastXMin: return (type, Timestamp.past(minutes: Prefs.DateFilter.LastXMin), nil)
case .ABRange: return (type, Pref.DateFilter.RangeA, Pref.DateFilter.RangeB) case .ABRange: return (type, Prefs.DateFilter.RangeA, Prefs.DateFilter.RangeB)
} }
} }
} }

View File

@@ -55,8 +55,8 @@ class GroupedDomainDataSource: FilterPipelineDelegate, SyncUpdateDelegate {
/// Read user defaults and apply new sorting order. Either by setting a new or reversing the current. /// Read user defaults and apply new sorting order. Either by setting a new or reversing the current.
/// - Parameter force: If `true` set new sorting even if the type does not differ. /// - Parameter force: If `true` set new sorting even if the type does not differ.
private func resetSortingOrder(force: Bool = false) { private func resetSortingOrder(force: Bool = false) {
let orderAscChanged = (orderAsc <-? Pref.DateFilter.OrderAsc) let orderAscChanged = (orderAsc <-? Prefs.DateFilter.OrderAsc)
let orderTypChanged = (currentOrder <-? Pref.DateFilter.OrderBy) let orderTypChanged = (currentOrder <-? Prefs.DateFilter.OrderBy)
if orderTypChanged || force { if orderTypChanged || force {
switch currentOrder { switch currentOrder {
case .Date: case .Date:

View File

@@ -19,7 +19,7 @@ class SyncUpdate {
init(periodic interval: TimeInterval) { init(periodic interval: TimeInterval) {
(filterType, tsEarliest, tsLatest) = Pref.DateFilter.restrictions() (filterType, tsEarliest, tsLatest) = Prefs.DateFilter.restrictions()
reloadRangeFromDB() reloadRangeFromDB()
NotifyDateFilterChanged.observe(call: #selector(didChangeDateFilter), on: self) NotifyDateFilterChanged.observe(call: #selector(didChangeDateFilter), on: self)
@@ -33,7 +33,7 @@ class SyncUpdate {
/// Callback fired when user changes `DateFilter` on root tableView controller /// Callback fired when user changes `DateFilter` on root tableView controller
@objc private func didChangeDateFilter() { @objc private func didChangeDateFilter() {
self.pause() self.pause()
let filter = Pref.DateFilter.restrictions() let filter = Prefs.DateFilter.restrictions()
filterType = filter.type filterType = filter.type
DispatchQueue.global().async { DispatchQueue.global().async {
// Not necessary, but improve execution order (delete then insert). // Not necessary, but improve execution order (delete then insert).
@@ -109,7 +109,7 @@ class SyncUpdate {
} }
} }
if filterType == .LastXMin { if filterType == .LastXMin {
set(newEarliest: Timestamp.past(minutes: Pref.DateFilter.LastXMin)) set(newEarliest: Timestamp.past(minutes: Prefs.DateFilter.LastXMin))
} }
// TODO: periodic hard delete old logs (will reset rowids!) // TODO: periodic hard delete old logs (will reset rowids!)
} }

View File

@@ -17,7 +17,7 @@ class VCRecordings: UIViewController, UINavigationControllerDelegate {
updateUI(setRecording: false, animated: false) updateUI(setRecording: false, animated: false)
currentRecording = RecordingsDB.getCurrent() currentRecording = RecordingsDB.getCurrent()
if !Pref.DidShowTutorial.Recordings { if !Prefs.DidShowTutorial.Recordings {
self.perform(#selector(showTutorial), with: nil, afterDelay: 0.5) self.perform(#selector(showTutorial), with: nil, afterDelay: 0.5)
} }
} }
@@ -134,7 +134,7 @@ class VCRecordings: UIViewController, UINavigationControllerDelegate {
)) ))
x.buttonTitleDone = "Got it" x.buttonTitleDone = "Got it"
x.present { x.present {
Pref.DidShowTutorial.Recordings = true Prefs.DidShowTutorial.Recordings = true
} }
} }
} }

View File

@@ -15,7 +15,7 @@ class VCCoOccurrence: UIViewController, UITableViewDataSource {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
selectedTime = Pref.ContextAnalyis.CoOccurrenceTime ?? 5 // calls `didSet` and `logTimeDelta` selectedTime = Prefs.ContextAnalyis.CoOccurrenceTime ?? 5 // calls `didSet` and `logTimeDelta`
timeSegment.removeAllSegments() // clear IB values timeSegment.removeAllSegments() // clear IB values
for (i, time) in availableTimes.enumerated() { for (i, time) in availableTimes.enumerated() {
timeSegment.insertSegment(withTitle: TimeFormat(.abbreviated).from(seconds: time), at: i, animated: false) timeSegment.insertSegment(withTitle: TimeFormat(.abbreviated).from(seconds: time), at: i, animated: false)
@@ -58,7 +58,7 @@ class VCCoOccurrence: UIViewController, UITableViewDataSource {
@IBAction func didChangeTime(_ sender: UISegmentedControl) { @IBAction func didChangeTime(_ sender: UISegmentedControl) {
selectedTime = availableTimes[sender.selectedSegmentIndex] selectedTime = availableTimes[sender.selectedSegmentIndex]
Pref.ContextAnalyis.CoOccurrenceTime = selectedTime Prefs.ContextAnalyis.CoOccurrenceTime = selectedTime
reloadDataSource() reloadDataSource()
} }

View File

@@ -38,12 +38,12 @@ class TVCDomains: UITableViewController, UISearchBarDelegate, GroupedDomainDataS
} }
@objc private func didChangeDateFilter() { @objc private func didChangeDateFilter() {
switch Pref.DateFilter.Kind { switch Prefs.DateFilter.Kind {
case .ABRange: // read start/end time case .ABRange: // read start/end time
self.filterButtonDetail.title = "AB" self.filterButtonDetail.title = "AB"
self.filterButton.image = UIImage(named: "filter-filled") self.filterButton.image = UIImage(named: "filter-filled")
case .LastXMin: // most recent case .LastXMin: // most recent
let lastXMin = Pref.DateFilter.LastXMin let lastXMin = Prefs.DateFilter.LastXMin
if lastXMin == 0 { fallthrough } if lastXMin == 0 { fallthrough }
self.filterButtonDetail.title = TimeFormat(.abbreviated).from(minutes: lastXMin) self.filterButtonDetail.title = TimeFormat(.abbreviated).from(minutes: lastXMin)
self.filterButton.image = UIImage(named: "filter-filled") self.filterButton.image = UIImage(named: "filter-filled")

View File

@@ -18,8 +18,8 @@ class VCDateFilter: UIViewController, UIGestureRecognizerDelegate {
@IBOutlet private var rangeView: UIView! @IBOutlet private var rangeView: UIView!
@IBOutlet private var buttonRangeStart: UIButton! @IBOutlet private var buttonRangeStart: UIButton!
@IBOutlet private var buttonRangeEnd: UIButton! @IBOutlet private var buttonRangeEnd: UIButton!
private lazy var tsRangeA: Timestamp = Pref.DateFilter.RangeA ?? AppDB?.dnsLogsMinDate() ?? .now() private lazy var tsRangeA: Timestamp = Prefs.DateFilter.RangeA ?? AppDB?.dnsLogsMinDate() ?? .now()
private lazy var tsRangeB: Timestamp = Pref.DateFilter.RangeB ?? .now() private lazy var tsRangeB: Timestamp = Prefs.DateFilter.RangeB ?? .now()
// order by // order by
@IBOutlet private var orderbyType: UISegmentedControl! @IBOutlet private var orderbyType: UISegmentedControl!
@@ -29,18 +29,18 @@ class VCDateFilter: UIViewController, UIGestureRecognizerDelegate {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
filterBy.selectedSegmentIndex = (Pref.DateFilter.Kind == .ABRange ? 1 : 0) filterBy.selectedSegmentIndex = (Prefs.DateFilter.Kind == .ABRange ? 1 : 0)
didChangeFilterBy(filterBy) didChangeFilterBy(filterBy)
durationSlider.tag = -1 // otherwise wont update because `tag == 0` durationSlider.tag = -1 // otherwise wont update because `tag == 0`
durationSlider.value = Float(durationTimes.firstIndex(of: Pref.DateFilter.LastXMin) ?? 0) / 9 durationSlider.value = Float(durationTimes.firstIndex(of: Prefs.DateFilter.LastXMin) ?? 0) / 9
durationSliderChanged(durationSlider) durationSliderChanged(durationSlider)
buttonRangeStart.setTitle(DateFormat.minutes(tsRangeA), for: .normal) buttonRangeStart.setTitle(DateFormat.minutes(tsRangeA), for: .normal)
buttonRangeEnd.setTitle(DateFormat.minutes(tsRangeB), for: .normal) buttonRangeEnd.setTitle(DateFormat.minutes(tsRangeB), for: .normal)
orderbyType.selectedSegmentIndex = Pref.DateFilter.OrderBy.rawValue orderbyType.selectedSegmentIndex = Prefs.DateFilter.OrderBy.rawValue
orderbyAsc.selectedSegmentIndex = (Pref.DateFilter.OrderAsc ? 0 : 1) orderbyAsc.selectedSegmentIndex = (Prefs.DateFilter.OrderAsc ? 0 : 1)
} }
@IBAction private func didChangeFilterBy(_ sender: UISegmentedControl) { @IBAction private func didChangeFilterBy(_ sender: UISegmentedControl) {
@@ -103,15 +103,15 @@ class VCDateFilter: UIViewController, UIGestureRecognizerDelegate {
case 2: orderType = .Count case 2: orderType = .Count
default: preconditionFailure() default: preconditionFailure()
} }
let a = Pref.DateFilter.OrderBy <-? orderType let a = Prefs.DateFilter.OrderBy <-? orderType
let b = Pref.DateFilter.OrderAsc <-? (orderbyAsc.selectedSegmentIndex == 0) let b = Prefs.DateFilter.OrderAsc <-? (orderbyAsc.selectedSegmentIndex == 0)
if a || b { if a || b {
NotifySortOrderChanged.post() NotifySortOrderChanged.post()
} }
let c = Pref.DateFilter.Kind <-? filterType let c = Prefs.DateFilter.Kind <-? filterType
let d = Pref.DateFilter.LastXMin <-? newXMin let d = Prefs.DateFilter.LastXMin <-? newXMin
let e = Pref.DateFilter.RangeA <-? (filterType == .ABRange ? tsRangeA : nil) let e = Prefs.DateFilter.RangeA <-? (filterType == .ABRange ? tsRangeA : nil)
let f = Pref.DateFilter.RangeB <-? (filterType == .ABRange ? tsRangeB : nil) let f = Prefs.DateFilter.RangeB <-? (filterType == .ABRange ? tsRangeB : nil)
if c || d || e || f { if c || d || e || f {
NotifyDateFilterChanged.post() NotifyDateFilterChanged.post()
} }

View File

@@ -97,8 +97,8 @@ class TVCSettings: UITableViewController {
// MARK: - Reset Settings // MARK: - Reset Settings
@IBAction private func resetTutorialAlerts(_ sender: UIButton) { @IBAction private func resetTutorialAlerts(_ sender: UIButton) {
Pref.DidShowTutorial.Welcome = false Prefs.DidShowTutorial.Welcome = false
Pref.DidShowTutorial.Recordings = false Prefs.DidShowTutorial.Recordings = false
Alert(title: sender.titleLabel?.text, Alert(title: sender.titleLabel?.text,
text: "\nDone.\n\nYou may need to restart the application.").presentIn(self) text: "\nDone.\n\nYou may need to restart the application.").presentIn(self)
} }

View File

@@ -8,7 +8,7 @@ class TBCMain: UITabBarController {
NotifyVPNStateChanged.observe(call: #selector(vpnStateChanged(_:)), on: self) NotifyVPNStateChanged.observe(call: #selector(vpnStateChanged(_:)), on: self)
changedState(currentVPNState) changedState(currentVPNState)
if !Pref.DidShowTutorial.Welcome { if !Prefs.DidShowTutorial.Welcome {
self.perform(#selector(showWelcomeMessage), with: nil, afterDelay: 0.5) self.perform(#selector(showWelcomeMessage), with: nil, afterDelay: 0.5)
} }
} }
@@ -37,7 +37,7 @@ class TBCMain: UITabBarController {
) )
)) ))
x.present { x.present {
Pref.DidShowTutorial.Welcome = true Prefs.DidShowTutorial.Welcome = true
} }
} }