55 lines
1.4 KiB
Swift
55 lines
1.4 KiB
Swift
|
//
|
||
|
// Defaults.swift
|
||
|
// Evergreen
|
||
|
//
|
||
|
// Created by Brent Simmons on 2/20/16.
|
||
|
// Copyright © 2016 Ranchero Software, LLC. All rights reserved.
|
||
|
//
|
||
|
|
||
|
import Foundation
|
||
|
|
||
|
let SidebarFontSizeKey = "sidebarFontSize"
|
||
|
let TimelineFontSizeKey = "timelineFontSize"
|
||
|
let ArticleFontSizeKey = "articleFontSize"
|
||
|
|
||
|
let SidebarFontSizeKVOKey = "values." + SidebarFontSizeKey
|
||
|
let TimelineFontSizeKVOKey = "values." + TimelineFontSizeKey
|
||
|
let ArticleFontSizeKVOKey = "values." + ArticleFontSizeKey
|
||
|
|
||
|
let OpenInBrowserInBackgroundKey = "openInBrowserInBackground"
|
||
|
|
||
|
enum FontSize: Int {
|
||
|
case small = 0
|
||
|
case medium = 1
|
||
|
case large = 2
|
||
|
case veryLarge = 3
|
||
|
}
|
||
|
|
||
|
private let smallestFontSizeRawValue = FontSize.small.rawValue
|
||
|
private let largestFontSizeRawValue = FontSize.veryLarge.rawValue
|
||
|
|
||
|
func registerDefaults() {
|
||
|
|
||
|
let defaults = [SidebarFontSizeKey: FontSize.medium.rawValue, TimelineFontSizeKey: FontSize.medium.rawValue, ArticleFontSizeKey: FontSize.medium.rawValue]
|
||
|
|
||
|
UserDefaults.standard.register(defaults: defaults)
|
||
|
}
|
||
|
|
||
|
func timelineFontSize() -> FontSize {
|
||
|
|
||
|
return fontSizeForKey(TimelineFontSizeKey)
|
||
|
}
|
||
|
|
||
|
private func fontSizeForKey(_ key: String) -> FontSize {
|
||
|
|
||
|
var rawFontSize = UserDefaults.standard.integer(forKey: key)
|
||
|
if rawFontSize < smallestFontSizeRawValue {
|
||
|
rawFontSize = smallestFontSizeRawValue
|
||
|
}
|
||
|
if rawFontSize > largestFontSizeRawValue {
|
||
|
rawFontSize = largestFontSizeRawValue
|
||
|
}
|
||
|
return FontSize(rawValue: rawFontSize)!
|
||
|
}
|
||
|
|