Search + lastXMin Filter + dynamic text size

This commit is contained in:
relikd
2020-05-13 01:37:50 +02:00
parent 9485d7e9b5
commit 8424c161b9
25 changed files with 865 additions and 211 deletions

View File

@@ -6,3 +6,36 @@ var currentVPNState: VPNState = .off
public enum VPNState : Int {
case on = 1, inbetween, off
}
struct Pref {
struct DidShowTutorial {
static var Welcome: Bool {
get { UserDefaults.standard.bool(forKey: "didShowTutorialAppWelcome") }
set { UserDefaults.standard.set(newValue, forKey: "didShowTutorialAppWelcome") }
}
static var Recordings: Bool {
get { UserDefaults.standard.bool(forKey: "didShowTutorialRecordings") }
set { UserDefaults.standard.set(newValue, forKey: "didShowTutorialRecordings") }
}
}
struct DateFilter {
static var Kind: DateFilterKind {
get { DateFilterKind(rawValue: UserDefaults.standard.integer(forKey: "dateFilterType"))! }
set { UserDefaults.standard.set(newValue.rawValue, forKey: "dateFilterType") }
}
static var LastXMin: Int {
get { UserDefaults.standard.integer(forKey: "dateFilterLastXMin") }
set { UserDefaults.standard.set(newValue, forKey: "dateFilterLastXMin") }
}
/// Return selected timestamp filter or `nil` if filtering is disabled.
/// - Returns: `Timestamp.now() - LastXMin * 60`
static func lastXMinTimestamp() -> Timestamp? {
if Kind != .LastXMin { return nil }
return Timestamp.past(minutes: Pref.DateFilter.LastXMin)
}
}
}
enum DateFilterKind: Int {
case Off = 0, LastXMin = 1, ABRange = 2;
}