diff --git a/Kiwix-iOS/Info.plist b/Kiwix-iOS/Info.plist
index 22f01f17..4636ea3c 100644
--- a/Kiwix-iOS/Info.plist
+++ b/Kiwix-iOS/Info.plist
@@ -36,7 +36,7 @@
CFBundleSignature
????
CFBundleVersion
- 413
+ 414
ITSAppUsesNonExemptEncryption
LSRequiresIPhoneOS
diff --git a/Kiwix.xcodeproj/project.pbxproj b/Kiwix.xcodeproj/project.pbxproj
index 1866d069..f4684acb 100644
--- a/Kiwix.xcodeproj/project.pbxproj
+++ b/Kiwix.xcodeproj/project.pbxproj
@@ -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 = ""; };
+ 973C8D5B1C25F945007272F9 /* Preference.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Preference.swift; path = Kiwix/Preference.swift; sourceTree = ""; };
974570F31C2DABB500680E43 /* ZIMMultiReaderAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZIMMultiReaderAPI.swift; sourceTree = ""; };
97497B5A1D07487000ECD691 /* indexer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = indexer.h; path = "Kiwix/libkiwix/C&C++/indexer.h"; sourceTree = ""; };
97497B5B1D07487000ECD691 /* resourceTools.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = resourceTools.h; path = "Kiwix/libkiwix/C&C++/resourceTools.h"; sourceTree = ""; };
@@ -477,7 +475,6 @@
978C588E1C1CD86E0077AE47 /* Language.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Language.swift; path = Kiwix/CoreData/Language.swift; sourceTree = ""; };
978C58901C1CD86E0077AE47 /* Book.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; name = Book.swift; path = Kiwix/CoreData/Book.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
978C58941C1CD86E0077AE47 /* Article.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Article.swift; path = Kiwix/CoreData/Article.swift; sourceTree = ""; };
- 978C58AC1C1CFF700077AE47 /* PreferenceLibrary.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferenceLibrary.swift; sourceTree = ""; };
979C51511CECA9AF001707F2 /* StringTools.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = StringTools.swift; path = Kiwix/StringTools.swift; sourceTree = ""; };
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 = ""; };
@@ -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 = "";
};
- 978C58A81C1CFF290077AE47 /* Preference */ = {
- isa = PBXGroup;
- children = (
- 973C8D5B1C25F945007272F9 /* Preference.swift */,
- 978C58AC1C1CFF700077AE47 /* PreferenceLibrary.swift */,
- );
- name = Preference;
- path = Kiwix;
- sourceTree = "";
- };
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 */,
diff --git a/Kiwix/Preference.swift b/Kiwix/Preference.swift
index 069fc547..c4b10452 100644
--- a/Kiwix/Preference.swift
+++ b/Kiwix/Preference.swift
@@ -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("hasShowGetStartedAlert")
+ static let recentSearchTerms = DefaultsKey<[String]>("recentSearchTerms")
static let webViewZoomScale = DefaultsKey("webViewZoomScale")
static let webViewNotInjectJavascriptToAdjustPageLayout = DefaultsKey("webViewNotInjectJavascriptToAdjustPageLayout")
static let activeUseHistory = DefaultsKey<[NSDate]>("activeUseHistory")
static let haveRateKiwix = DefaultsKey("haveRateKiwix")
+
+ static let libraryAutoRefreshDisabled = DefaultsKey("libraryAutoRefreshDisabled")
+ static let libraryRefreshNotAllowCellularData = DefaultsKey("libraryRefreshNotAllowCellularData")
+ static let libraryLastRefreshTime = DefaultsKey("libraryLastRefreshTime")
+ static let libraryRefreshInterval = DefaultsKey("libraryRefreshInterval")
+ static let libraryHasShownPreferredLanguagePrompt = DefaultsKey("libraryHasShownPreferredLanguagePrompt")
}
\ No newline at end of file
diff --git a/Kiwix/PreferenceLibrary.swift b/Kiwix/PreferenceLibrary.swift
deleted file mode 100644
index 6b940e22..00000000
--- a/Kiwix/PreferenceLibrary.swift
+++ /dev/null
@@ -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("libraryAutoRefreshDisabled")
- static let libraryRefreshNotAllowCellularData = DefaultsKey("libraryRefreshNotAllowCellularData")
- static let libraryLastRefreshTime = DefaultsKey("libraryLastRefreshTime")
- static let libraryRefreshInterval = DefaultsKey("libraryRefreshInterval")
- static let libraryHasShownPreferredLanguagePrompt = DefaultsKey("libraryHasShownPreferredLanguagePrompt")
-}
\ No newline at end of file