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