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
enum Pref {
static func Int(_ key: String) -> Int { UserDefaults.standard.integer(forKey: key) }
static func Int(_ val: Int, _ key: String) { UserDefaults.standard.set(val, forKey: key) }
static func Bool(_ key: String) -> Bool { UserDefaults.standard.bool(forKey: key) }
static func Bool(_ val: Bool, _ key: String) { UserDefaults.standard.set(val, forKey: key) }
static func `Any`(_ key: String) -> Any? { UserDefaults.standard.object(forKey: key) }
static func `Any`(_ val: Any?, _ key: String) { UserDefaults.standard.set(val, forKey: key) }
enum Prefs {
private static func Int(_ key: String) -> Int { UserDefaults.standard.integer(forKey: key) }
private static func Int(_ val: Int, _ key: String) { UserDefaults.standard.set(val, forKey: key) }
private static func Bool(_ key: String) -> Bool { UserDefaults.standard.bool(forKey: key) }
private static func Bool(_ val: Bool, _ key: String) { UserDefaults.standard.set(val, forKey: key) }
private static func `Any`(_ key: String) -> Any? { UserDefaults.standard.object(forKey: key) }
private static func `Any`(_ val: Any?, _ key: String) { UserDefaults.standard.set(val, forKey: key) }
enum DidShowTutorial {
static var Welcome: Bool {
get { Pref.Bool("didShowTutorialAppWelcome") }
set { Pref.Bool(newValue, "didShowTutorialAppWelcome") }
get { Prefs.Bool("didShowTutorialAppWelcome") }
set { Prefs.Bool(newValue, "didShowTutorialAppWelcome") }
}
static var Recordings: Bool {
get { Pref.Bool("didShowTutorialRecordings") }
set { Pref.Bool(newValue, "didShowTutorialRecordings") }
get { Prefs.Bool("didShowTutorialRecordings") }
set { Prefs.Bool(newValue, "didShowTutorialRecordings") }
}
}
enum ContextAnalyis {
static var CoOccurrenceTime: Int? {
get { Pref.Any("contextAnalyisCoOccurrenceTime") as? Int }
set { Pref.Any(newValue, "contextAnalyisCoOccurrenceTime") }
get { Prefs.Any("contextAnalyisCoOccurrenceTime") as? Int }
set { Prefs.Any(newValue, "contextAnalyisCoOccurrenceTime") }
}
}
enum DateFilter {
static var Kind: DateFilterKind {
get { DateFilterKind(rawValue: Pref.Int("dateFilterType"))! }
set { Pref.Int(newValue.rawValue, "dateFilterType") }
get { DateFilterKind(rawValue: Prefs.Int("dateFilterType"))! }
set { Prefs.Int(newValue.rawValue, "dateFilterType") }
}
/// Default: `0` (disabled)
static var LastXMin: Int {
get { Pref.Int("dateFilterLastXMin") }
set { Pref.Int(newValue, "dateFilterLastXMin") }
get { Prefs.Int("dateFilterLastXMin") }
set { Prefs.Int(newValue, "dateFilterLastXMin") }
}
/// Default: `nil` (disabled)
static var RangeA: Timestamp? {
get { Pref.Any("dateFilterRangeA") as? Timestamp }
set { Pref.Any(newValue, "dateFilterRangeA") }
get { Prefs.Any("dateFilterRangeA") as? Timestamp }
set { Prefs.Any(newValue, "dateFilterRangeA") }
}
/// Default: `nil` (disabled)
static var RangeB: Timestamp? {
get { Pref.Any("dateFilterRangeB") as? Timestamp }
set { Pref.Any(newValue, "dateFilterRangeB") }
get { Prefs.Any("dateFilterRangeB") as? Timestamp }
set { Prefs.Any(newValue, "dateFilterRangeB") }
}
/// default: `.Date`
static var OrderBy: DateFilterOrderBy {
get { DateFilterOrderBy(rawValue: Pref.Int("dateFilterOderType"))! }
set { Pref.Int(newValue.rawValue, "dateFilterOderType") }
get { DateFilterOrderBy(rawValue: Prefs.Int("dateFilterOderType"))! }
set { Prefs.Int(newValue.rawValue, "dateFilterOderType") }
}
/// default: `false` (Desc)
static var OrderAsc: Bool {
get { Pref.Bool("dateFilterOderAsc") }
set { Pref.Bool(newValue, "dateFilterOderAsc") }
get { Prefs.Bool("dateFilterOderAsc") }
set { Prefs.Bool(newValue, "dateFilterOderAsc") }
}
/// - Returns: Timestamp restriction depending on current selected date filter.
@@ -63,8 +63,8 @@ enum Pref {
let type = Kind
switch type {
case .Off: return (type, nil, nil)
case .LastXMin: return (type, Timestamp.past(minutes: Pref.DateFilter.LastXMin), nil)
case .ABRange: return (type, Pref.DateFilter.RangeA, Pref.DateFilter.RangeB)
case .LastXMin: return (type, Timestamp.past(minutes: Prefs.DateFilter.LastXMin), nil)
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.
/// - Parameter force: If `true` set new sorting even if the type does not differ.
private func resetSortingOrder(force: Bool = false) {
let orderAscChanged = (orderAsc <-? Pref.DateFilter.OrderAsc)
let orderTypChanged = (currentOrder <-? Pref.DateFilter.OrderBy)
let orderAscChanged = (orderAsc <-? Prefs.DateFilter.OrderAsc)
let orderTypChanged = (currentOrder <-? Prefs.DateFilter.OrderBy)
if orderTypChanged || force {
switch currentOrder {
case .Date:

View File

@@ -19,7 +19,7 @@ class SyncUpdate {
init(periodic interval: TimeInterval) {
(filterType, tsEarliest, tsLatest) = Pref.DateFilter.restrictions()
(filterType, tsEarliest, tsLatest) = Prefs.DateFilter.restrictions()
reloadRangeFromDB()
NotifyDateFilterChanged.observe(call: #selector(didChangeDateFilter), on: self)
@@ -33,7 +33,7 @@ class SyncUpdate {
/// Callback fired when user changes `DateFilter` on root tableView controller
@objc private func didChangeDateFilter() {
self.pause()
let filter = Pref.DateFilter.restrictions()
let filter = Prefs.DateFilter.restrictions()
filterType = filter.type
DispatchQueue.global().async {
// Not necessary, but improve execution order (delete then insert).
@@ -109,7 +109,7 @@ class SyncUpdate {
}
}
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!)
}

View File

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

View File

@@ -15,7 +15,7 @@ class VCCoOccurrence: UIViewController, UITableViewDataSource {
override func 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
for (i, time) in availableTimes.enumerated() {
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) {
selectedTime = availableTimes[sender.selectedSegmentIndex]
Pref.ContextAnalyis.CoOccurrenceTime = selectedTime
Prefs.ContextAnalyis.CoOccurrenceTime = selectedTime
reloadDataSource()
}

View File

@@ -38,12 +38,12 @@ class TVCDomains: UITableViewController, UISearchBarDelegate, GroupedDomainDataS
}
@objc private func didChangeDateFilter() {
switch Pref.DateFilter.Kind {
switch Prefs.DateFilter.Kind {
case .ABRange: // read start/end time
self.filterButtonDetail.title = "AB"
self.filterButton.image = UIImage(named: "filter-filled")
case .LastXMin: // most recent
let lastXMin = Pref.DateFilter.LastXMin
let lastXMin = Prefs.DateFilter.LastXMin
if lastXMin == 0 { fallthrough }
self.filterButtonDetail.title = TimeFormat(.abbreviated).from(minutes: lastXMin)
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 buttonRangeStart: UIButton!
@IBOutlet private var buttonRangeEnd: UIButton!
private lazy var tsRangeA: Timestamp = Pref.DateFilter.RangeA ?? AppDB?.dnsLogsMinDate() ?? .now()
private lazy var tsRangeB: Timestamp = Pref.DateFilter.RangeB ?? .now()
private lazy var tsRangeA: Timestamp = Prefs.DateFilter.RangeA ?? AppDB?.dnsLogsMinDate() ?? .now()
private lazy var tsRangeB: Timestamp = Prefs.DateFilter.RangeB ?? .now()
// order by
@IBOutlet private var orderbyType: UISegmentedControl!
@@ -29,18 +29,18 @@ class VCDateFilter: UIViewController, UIGestureRecognizerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
filterBy.selectedSegmentIndex = (Pref.DateFilter.Kind == .ABRange ? 1 : 0)
filterBy.selectedSegmentIndex = (Prefs.DateFilter.Kind == .ABRange ? 1 : 0)
didChangeFilterBy(filterBy)
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)
buttonRangeStart.setTitle(DateFormat.minutes(tsRangeA), for: .normal)
buttonRangeEnd.setTitle(DateFormat.minutes(tsRangeB), for: .normal)
orderbyType.selectedSegmentIndex = Pref.DateFilter.OrderBy.rawValue
orderbyAsc.selectedSegmentIndex = (Pref.DateFilter.OrderAsc ? 0 : 1)
orderbyType.selectedSegmentIndex = Prefs.DateFilter.OrderBy.rawValue
orderbyAsc.selectedSegmentIndex = (Prefs.DateFilter.OrderAsc ? 0 : 1)
}
@IBAction private func didChangeFilterBy(_ sender: UISegmentedControl) {
@@ -103,15 +103,15 @@ class VCDateFilter: UIViewController, UIGestureRecognizerDelegate {
case 2: orderType = .Count
default: preconditionFailure()
}
let a = Pref.DateFilter.OrderBy <-? orderType
let b = Pref.DateFilter.OrderAsc <-? (orderbyAsc.selectedSegmentIndex == 0)
let a = Prefs.DateFilter.OrderBy <-? orderType
let b = Prefs.DateFilter.OrderAsc <-? (orderbyAsc.selectedSegmentIndex == 0)
if a || b {
NotifySortOrderChanged.post()
}
let c = Pref.DateFilter.Kind <-? filterType
let d = Pref.DateFilter.LastXMin <-? newXMin
let e = Pref.DateFilter.RangeA <-? (filterType == .ABRange ? tsRangeA : nil)
let f = Pref.DateFilter.RangeB <-? (filterType == .ABRange ? tsRangeB : nil)
let c = Prefs.DateFilter.Kind <-? filterType
let d = Prefs.DateFilter.LastXMin <-? newXMin
let e = Prefs.DateFilter.RangeA <-? (filterType == .ABRange ? tsRangeA : nil)
let f = Prefs.DateFilter.RangeB <-? (filterType == .ABRange ? tsRangeB : nil)
if c || d || e || f {
NotifyDateFilterChanged.post()
}

View File

@@ -97,8 +97,8 @@ class TVCSettings: UITableViewController {
// MARK: - Reset Settings
@IBAction private func resetTutorialAlerts(_ sender: UIButton) {
Pref.DidShowTutorial.Welcome = false
Pref.DidShowTutorial.Recordings = false
Prefs.DidShowTutorial.Welcome = false
Prefs.DidShowTutorial.Recordings = false
Alert(title: sender.titleLabel?.text,
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)
changedState(currentVPNState)
if !Pref.DidShowTutorial.Welcome {
if !Prefs.DidShowTutorial.Welcome {
self.perform(#selector(showWelcomeMessage), with: nil, afterDelay: 0.5)
}
}
@@ -37,7 +37,7 @@ class TBCMain: UITabBarController {
)
))
x.present {
Pref.DidShowTutorial.Welcome = true
Prefs.DidShowTutorial.Welcome = true
}
}