Add recent search terms in preference

This commit is contained in:
Chris Li 2016-06-22 11:34:52 -04:00
parent 303c75c56c
commit a693e4c601
4 changed files with 42 additions and 70 deletions

View File

@ -36,7 +36,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>413</string>
<string>414</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSRequiresIPhoneOS</key>

View File

@ -146,7 +146,6 @@
975B91001CEB983E00D13906 /* RefreshLibraryOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 970103F91C6824FA00DC48F6 /* RefreshLibraryOperation.swift */; };
975B91011CEB984C00D13906 /* GlobalOperationQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97DF23541CE807A1003E1E5A /* GlobalOperationQueue.swift */; };
975B912F1CEB9B0F00D13906 /* Preference.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973C8D5B1C25F945007272F9 /* Preference.swift */; };
975B91301CEB9B1200D13906 /* PreferenceLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 978C58AC1C1CFF700077AE47 /* PreferenceLibrary.swift */; };
9763A6291CEB9E55008A2718 /* OSXExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9763A6281CEB9E55008A2718 /* OSXExtensions.swift */; };
9763A62A1CEBA4F9008A2718 /* ZIMMultiReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97254FDE1C2644560056950B /* ZIMMultiReader.swift */; };
9763A62B1CEBA4F9008A2718 /* ZIMMultiReaderAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 974570F31C2DABB500680E43 /* ZIMMultiReaderAPI.swift */; };
@ -163,7 +162,6 @@
978C58961C1CD86E0077AE47 /* Language.swift in Sources */ = {isa = PBXBuildFile; fileRef = 978C588E1C1CD86E0077AE47 /* Language.swift */; };
978C58981C1CD86E0077AE47 /* Book.swift in Sources */ = {isa = PBXBuildFile; fileRef = 978C58901C1CD86E0077AE47 /* Book.swift */; };
978C589C1C1CD86E0077AE47 /* Article.swift in Sources */ = {isa = PBXBuildFile; fileRef = 978C58941C1CD86E0077AE47 /* Article.swift */; };
978C58AD1C1CFF700077AE47 /* PreferenceLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 978C58AC1C1CFF700077AE47 /* PreferenceLibrary.swift */; };
979C51521CECA9AF001707F2 /* StringTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = 979C51511CECA9AF001707F2 /* StringTools.swift */; };
979C51531CECA9AF001707F2 /* StringTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = 979C51511CECA9AF001707F2 /* StringTools.swift */; };
979C518D1CECAE4C001707F2 /* PreferenceWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 979C518B1CECAE4C001707F2 /* PreferenceWindowController.swift */; };
@ -435,7 +433,7 @@
973BCD181CEB402900F10B44 /* KiwixTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = KiwixTests.swift; path = "Kiwix-iOSTests/KiwixTests.swift"; sourceTree = SOURCE_ROOT; };
973BCD1B1CEB403700F10B44 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Kiwix-iOSUITests/Info.plist"; sourceTree = SOURCE_ROOT; };
973BCD1C1CEB403700F10B44 /* SnapshotAutomation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SnapshotAutomation.swift; path = "Kiwix-iOSUITests/SnapshotAutomation.swift"; sourceTree = SOURCE_ROOT; };
973C8D5B1C25F945007272F9 /* Preference.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Preference.swift; sourceTree = "<group>"; };
973C8D5B1C25F945007272F9 /* Preference.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Preference.swift; path = Kiwix/Preference.swift; sourceTree = "<group>"; };
974570F31C2DABB500680E43 /* ZIMMultiReaderAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZIMMultiReaderAPI.swift; sourceTree = "<group>"; };
97497B5A1D07487000ECD691 /* indexer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = indexer.h; path = "Kiwix/libkiwix/C&C++/indexer.h"; sourceTree = "<group>"; };
97497B5B1D07487000ECD691 /* resourceTools.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = resourceTools.h; path = "Kiwix/libkiwix/C&C++/resourceTools.h"; sourceTree = "<group>"; };
@ -477,7 +475,6 @@
978C588E1C1CD86E0077AE47 /* Language.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Language.swift; path = Kiwix/CoreData/Language.swift; sourceTree = "<group>"; };
978C58901C1CD86E0077AE47 /* Book.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; name = Book.swift; path = Kiwix/CoreData/Book.swift; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
978C58941C1CD86E0077AE47 /* Article.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Article.swift; path = Kiwix/CoreData/Article.swift; sourceTree = "<group>"; };
978C58AC1C1CFF700077AE47 /* PreferenceLibrary.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferenceLibrary.swift; sourceTree = "<group>"; };
979C51511CECA9AF001707F2 /* StringTools.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = StringTools.swift; path = Kiwix/StringTools.swift; sourceTree = "<group>"; };
979C518B1CECAE4C001707F2 /* PreferenceWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PreferenceWindowController.swift; path = "Kiwix-OSX/Controllers/PreferenceWindowController.swift"; sourceTree = SOURCE_ROOT; };
979CB60E1D04AD04005E1BA1 /* PreferenceTabController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PreferenceTabController.swift; path = Controllers/PreferenceTabController.swift; sourceTree = "<group>"; };
@ -893,9 +890,9 @@
97E5712A1CA0525300FF4F1D /* Operation */,
9711872D1CEB507600B9909D /* CoreData */,
971187051CEB426E00B9909D /* libkiwix */,
978C58A81C1CFF290077AE47 /* Preference */,
9779987A1C1E1C9600B1DD5E /* Extensions.swift */,
97E891681CA976E90001CA32 /* FileManager.swift */,
973C8D5B1C25F945007272F9 /* Preference.swift */,
979C51511CECA9AF001707F2 /* StringTools.swift */,
971A10711D022E74007FC62C /* KiwixURLProtocol.swift */,
97254FDD1C26442F0056950B /* ZIMMultiReader */,
@ -1069,16 +1066,6 @@
name = Properties;
sourceTree = "<group>";
};
978C58A81C1CFF290077AE47 /* Preference */ = {
isa = PBXGroup;
children = (
973C8D5B1C25F945007272F9 /* Preference.swift */,
978C58AC1C1CFF700077AE47 /* PreferenceLibrary.swift */,
);
name = Preference;
path = Kiwix;
sourceTree = "<group>";
};
979CB6101D05C44F005E1BA1 /* OperationLib */ = {
isa = PBXGroup;
children = (
@ -1745,7 +1732,6 @@
979CB64E1D05C44F005E1BA1 /* LocationCapability-OSX.swift in Sources */,
979CB6BC1D05C520005E1BA1 /* NSOperation+Operations.swift in Sources */,
979C518D1CECAE4C001707F2 /* PreferenceWindowController.swift in Sources */,
975B91301CEB9B1200D13906 /* PreferenceLibrary.swift in Sources */,
979CB6C21D05C520005E1BA1 /* OperationQueue.swift in Sources */,
979CB6561D05C44F005E1BA1 /* PushCapability-iOS.swift in Sources */,
979CB6BE1D05C520005E1BA1 /* Operation.swift in Sources */,
@ -1851,7 +1837,6 @@
971A104A1D022CBE007FC62C /* SearchResultTBVC.swift in Sources */,
971A105B1D022DAD007FC62C /* LibraryOnlineTBVC.swift in Sources */,
971A10321D022AD5007FC62C /* SearchBar.swift in Sources */,
978C58AD1C1CFF700077AE47 /* PreferenceLibrary.swift in Sources */,
979CB65D1D05C44F005E1BA1 /* CloudCondition.swift in Sources */,
979CB65F1D05C44F005E1BA1 /* HealthCondition.swift in Sources */,
979CB6B51D05C520005E1BA1 /* GroupOperation.swift in Sources */,

View File

@ -15,6 +15,11 @@ class Preference {
set{Defaults[.hasShowGetStartedAlert] = newValue}
}
class var recentSearchTerms: [String] {
get{return Defaults[.recentSearchTerms]}
set{Defaults[.recentSearchTerms] = newValue}
}
// MARK: - Reading
class var webViewZoomScale: Double {
@ -38,12 +43,46 @@ class Preference {
get{return Defaults[.haveRateKiwix]}
set{Defaults[.haveRateKiwix] = newValue}
}
// MARK: - Library
class var libraryAutoRefreshDisabled: Bool {
get{return Defaults[.libraryAutoRefreshDisabled]}
set{Defaults[.libraryAutoRefreshDisabled] = newValue}
}
class var libraryRefreshAllowCellularData: Bool {
get{return !Defaults[.libraryRefreshNotAllowCellularData]}
set{Defaults[.libraryRefreshNotAllowCellularData] = !newValue}
}
class var libraryLastRefreshTime: NSDate? {
get{return Defaults[.libraryLastRefreshTime]}
set{Defaults[.libraryLastRefreshTime] = newValue}
}
class var libraryRefreshInterval: NSTimeInterval {
get{return Defaults[.libraryRefreshInterval] ?? 3600.0 * 24}
set{Defaults[.libraryRefreshInterval] = newValue}
}
class var libraryHasShownPreferredLanguagePrompt: Bool {
get{return Defaults[.libraryHasShownPreferredLanguagePrompt]}
set{Defaults[.libraryHasShownPreferredLanguagePrompt] = newValue}
}
}
extension DefaultsKeys {
static let hasShowGetStartedAlert = DefaultsKey<Bool>("hasShowGetStartedAlert")
static let recentSearchTerms = DefaultsKey<[String]>("recentSearchTerms")
static let webViewZoomScale = DefaultsKey<Double?>("webViewZoomScale")
static let webViewNotInjectJavascriptToAdjustPageLayout = DefaultsKey<Bool>("webViewNotInjectJavascriptToAdjustPageLayout")
static let activeUseHistory = DefaultsKey<[NSDate]>("activeUseHistory")
static let haveRateKiwix = DefaultsKey<Bool>("haveRateKiwix")
static let libraryAutoRefreshDisabled = DefaultsKey<Bool>("libraryAutoRefreshDisabled")
static let libraryRefreshNotAllowCellularData = DefaultsKey<Bool>("libraryRefreshNotAllowCellularData")
static let libraryLastRefreshTime = DefaultsKey<NSDate?>("libraryLastRefreshTime")
static let libraryRefreshInterval = DefaultsKey<Double?>("libraryRefreshInterval")
static let libraryHasShownPreferredLanguagePrompt = DefaultsKey<Bool>("libraryHasShownPreferredLanguagePrompt")
}

View File

@ -1,52 +0,0 @@
//
// PreferenceLibrary.swift
// Kiwix
//
// Created by Chris on 12/12/15.
// Copyright © 2015 Chris. All rights reserved.
//
import SwiftyUserDefaults
extension Preference {
// MARK: - Auto Refresh
class var libraryAutoRefreshDisabled: Bool {
get{return Defaults[.libraryAutoRefreshDisabled]}
set{Defaults[.libraryAutoRefreshDisabled] = newValue}
}
class var libraryRefreshAllowCellularData: Bool {
get{return !Defaults[.libraryRefreshNotAllowCellularData]}
set{Defaults[.libraryRefreshNotAllowCellularData] = !newValue}
}
// MARK: - Refresh Time
class var libraryLastRefreshTime: NSDate? {
get{return Defaults[.libraryLastRefreshTime]}
set{Defaults[.libraryLastRefreshTime] = newValue}
}
class var libraryRefreshInterval: NSTimeInterval {
get{return Defaults[.libraryRefreshInterval] ?? 3600.0 * 24}
set{Defaults[.libraryRefreshInterval] = newValue}
}
// MARK: - Prompt
class var libraryHasShownPreferredLanguagePrompt: Bool {
get{return Defaults[.libraryHasShownPreferredLanguagePrompt]}
set{Defaults[.libraryHasShownPreferredLanguagePrompt] = newValue}
}
}
extension DefaultsKeys {
static let libraryAutoRefreshDisabled = DefaultsKey<Bool>("libraryAutoRefreshDisabled")
static let libraryRefreshNotAllowCellularData = DefaultsKey<Bool>("libraryRefreshNotAllowCellularData")
static let libraryLastRefreshTime = DefaultsKey<NSDate?>("libraryLastRefreshTime")
static let libraryRefreshInterval = DefaultsKey<Double?>("libraryRefreshInterval")
static let libraryHasShownPreferredLanguagePrompt = DefaultsKey<Bool>("libraryHasShownPreferredLanguagePrompt")
}