From 6d8888dde250eed98cbbd3a9fb8a5eb1e82db8a2 Mon Sep 17 00:00:00 2001 From: Chris Li Date: Wed, 18 Jan 2017 15:07:10 -0500 Subject: [PATCH] Setting basic setup --- Kiwix-iOS/Controller/Main/Buttons.swift | 3 + Kiwix-iOS/Controller/Main/Controllers.swift | 19 +- .../Controller/Main/MainController.swift | 4 + .../Setting/SettingController.swift | 179 +--------- .../{ => old}/FontSizeController.swift | 0 .../Setting/old/SettingController.swift | 186 ++++++++++ .../{ => old}/SettingDetailController.swift | 0 .../{ => old}/SettingSearchHistoryTBVC.swift | 0 .../{ => old}/SettingsController.swift | 0 .../{ => old}/WebViewControllerOld.swift | 0 Kiwix-iOS/Storyboard/Setting.storyboard | 272 ++------------- Kiwix-iOS/Storyboard/Settings.storyboard | 322 ++++++++++++++++++ Kiwix.xcodeproj/project.pbxproj | 45 +-- 13 files changed, 584 insertions(+), 446 deletions(-) rename Kiwix-iOS/Controller/Setting/{ => old}/FontSizeController.swift (100%) create mode 100644 Kiwix-iOS/Controller/Setting/old/SettingController.swift rename Kiwix-iOS/Controller/Setting/{ => old}/SettingDetailController.swift (100%) rename Kiwix-iOS/Controller/Setting/{ => old}/SettingSearchHistoryTBVC.swift (100%) rename Kiwix-iOS/Controller/Setting/{ => old}/SettingsController.swift (100%) rename Kiwix-iOS/Controller/Setting/{ => old}/WebViewControllerOld.swift (100%) create mode 100644 Kiwix-iOS/Storyboard/Settings.storyboard diff --git a/Kiwix-iOS/Controller/Main/Buttons.swift b/Kiwix-iOS/Controller/Main/Buttons.swift index 73b3d6c7..1648fa35 100644 --- a/Kiwix-iOS/Controller/Main/Buttons.swift +++ b/Kiwix-iOS/Controller/Main/Buttons.swift @@ -38,6 +38,8 @@ class Buttons: LPTBarButtonItemDelegate { delegate?.didTapBookmarkButton() case library: delegate?.didTapLibraryButton() + case setting: + delegate?.didTapSettingButton() default: return } @@ -68,6 +70,7 @@ protocol ButtonDelegates { func didTapTOCButton() func didTapBookmarkButton() func didTapLibraryButton() + func didTapSettingButton() func didTapCancelButton() func didLongPressBackButton() diff --git a/Kiwix-iOS/Controller/Main/Controllers.swift b/Kiwix-iOS/Controller/Main/Controllers.swift index e7cf2a7d..7843d3e4 100644 --- a/Kiwix-iOS/Controller/Main/Controllers.swift +++ b/Kiwix-iOS/Controller/Main/Controllers.swift @@ -40,16 +40,15 @@ class Controllers { _search = controller return controller } -// -// // MARK: - Setting -// -// private var setting: UIViewController? -// -// class var setting: UIViewController { -// let controller = Controllers.shared.setting ?? UIStoryboard(name: "Setting", bundle: nil).instantiateInitialViewController()! -// Controllers.shared.setting = controller -// return controller -// } + + // MARK: - Setting + + private var _setting: UIViewController? + var setting: UIViewController { + let controller = _setting ?? UIStoryboard(name: "Setting", bundle: nil).instantiateInitialViewController()! + _setting = controller + return controller + } // MARK: - Welcome diff --git a/Kiwix-iOS/Controller/Main/MainController.swift b/Kiwix-iOS/Controller/Main/MainController.swift index 811a5efc..0fc214ee 100644 --- a/Kiwix-iOS/Controller/Main/MainController.swift +++ b/Kiwix-iOS/Controller/Main/MainController.swift @@ -260,6 +260,10 @@ extension MainController: ButtonDelegates { present(controllers.library, animated: true, completion: nil) } + func didTapSettingButton() { + present(controllers.setting, animated: true, completion: nil) + } + func didTapCancelButton() { _ = searchBar.resignFirstResponder() } diff --git a/Kiwix-iOS/Controller/Setting/SettingController.swift b/Kiwix-iOS/Controller/Setting/SettingController.swift index 545f53c0..d35322f8 100644 --- a/Kiwix-iOS/Controller/Setting/SettingController.swift +++ b/Kiwix-iOS/Controller/Setting/SettingController.swift @@ -1,186 +1,37 @@ // -// SettingTBVC.swift +// SettingController.swift // Kiwix // -// Created by Chris on 12/12/15. -// Copyright © 2016 Chris Li. All rights reserved. +// Created by Chris Li on 1/18/17. +// Copyright © 2017 Chris Li. All rights reserved. // import UIKit -class SettingTBVC: UITableViewController { - fileprivate(set) var sectionHeader: [String?] = [nil, LocalizedStrings.misc] - fileprivate(set) var cellTitles = [[LocalizedStrings.backupLocalFiles, LocalizedStrings.fontSize, LocalizedStrings.searchHistory], - [LocalizedStrings.rateKiwix, LocalizedStrings.about]] - +class SettingController: UITableViewController { + override func viewDidLoad() { super.viewDidLoad() - title = LocalizedStrings.settings - clearsSelectionOnViewWillAppear = true - showRateKiwixIfNeeded() } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - tableView.reloadData() + @IBAction func dismissButtonTapped(_ sender: UIBarButtonItem) { + dismiss(animated: true, completion: nil) } - + // MARK: - Table view data source - + override func numberOfSections(in tableView: UITableView) -> Int { - return cellTitles.count + return 0 } - + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return cellTitles[section].count + return 0 } - + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) - - let title = cellTitles[indexPath.section][indexPath.row] - cell.textLabel?.text = title - cell.detailTextLabel?.text = { - switch title { - case LocalizedStrings.backupLocalFiles: - guard let skipBackup = FileManager.getSkipBackupAttribute(item: FileManager.docDirURL) else {return ""} - return skipBackup ? LocalizedStrings.off: LocalizedStrings.on - case LocalizedStrings.fontSize: - return String.formattedPercentString(Preference.webViewZoomScale / 100) - default: - return nil - } - }() - + + return cell } - - // MARK: - Table View Delegate - - override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { - return sectionHeader[section] - } - - override func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? { - guard section == tableView.numberOfSections - 1 else {return nil} - var footnote = String(format: LocalizedStrings.settingFootnote, Bundle.appShortVersion) - switch UIApplication.buildStatus { - case .alpha, .beta: - footnote += (UIApplication.buildStatus == .alpha ? " Alpha" : " Beta") - footnote += "\n" - footnote += "Build " + Bundle.buildVersion - return footnote - case .release: - return footnote - } - } - - override func tableView(_ tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) { - guard section == tableView.numberOfSections - 1 else {return} - if let view = view as? UITableViewHeaderFooterView { - view.textLabel?.textAlignment = .center - } - } - - override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - defer {tableView.deselectRow(at: indexPath, animated: true)} - let cell = tableView.cellForRow(at: indexPath) - guard let text = cell?.textLabel?.text else {return} - switch text { - case LocalizedStrings.backupLocalFiles: - let controller = UIStoryboard(name: "Setting", bundle: nil) - .instantiateViewController(withIdentifier: "SettingDetailController") as! SettingDetailController - controller.page = .BackupLocalFiles - navigationController?.pushViewController(controller, animated: true) - case LocalizedStrings.searchHistory: - let controller = UIStoryboard(name: "Setting", bundle: nil) - .instantiateViewController(withIdentifier: "SettingDetailController") as! SettingDetailController - controller.page = .SearchHistory - navigationController?.pushViewController(controller, animated: true) - case LocalizedStrings.fontSize: - let controller = UIStoryboard(name: "Setting", bundle: nil) - .instantiateViewController(withIdentifier: "FontSizeController") as! FontSizeController - navigationController?.pushViewController(controller, animated: true) - case LocalizedStrings.rateKiwix: - showRateKiwixAlert(showRemindLater: false) - case LocalizedStrings.about: - break -// let controller = UIStoryboard(name: "Setting", bundle: nil) -// .instantiateViewController(withIdentifier: "WebViewControllerOld") as! WebViewControllerOld -// controller.page = .About -// navigationController?.pushViewController(controller, animated: true) - default: - break - } - } - - // MARK: - Rate Kiwix - - func showRateKiwixIfNeeded() { - guard Preference.haveRateKiwix == false else {return} - guard let firstActiveDate = Preference.activeUseHistory.first else {return} - let installtionIsOldEnough = Date().timeIntervalSince(firstActiveDate as Date) > 3600.0 * 24 * 7 - let hasActivelyUsed = Preference.activeUseHistory.count > 10 - if installtionIsOldEnough && hasActivelyUsed { - showRateKiwixAlert(showRemindLater: true) - } - } - - func showRateKiwixAlert(showRemindLater: Bool) { - let alert = UIAlertController(title: LocalizedStrings.rateKiwixTitle, message: LocalizedStrings.rateKiwixMessage, preferredStyle: .alert) - let remindLater = UIAlertAction(title: LocalizedStrings.rateLater, style: .default) { (action) -> Void in - Preference.activeUseHistory.removeAll() - } - let remindNever = UIAlertAction(title: LocalizedStrings.rateNever, style: .default) { (action) -> Void in - Preference.haveRateKiwix = true - } - let rateNow = UIAlertAction(title: LocalizedStrings.rateNow, style: .cancel) { (action) -> Void in - self.goRateInAppStore() - Preference.haveRateKiwix = true - } - let cancel = UIAlertAction(title: LocalizedStrings.cancel, style: .default, handler: nil) - - if showRemindLater { - alert.addAction(remindLater) - alert.addAction(remindNever) - alert.addAction(rateNow) - } else { - alert.addAction(rateNow) - alert.addAction(cancel) - } - - self.present(alert, animated: true, completion: nil) - } - - func goRateInAppStore() { -// let url = URL(string: "http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=997079563&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8")! -// UIApplication.shared.openURL(url) - } - - // MARK: - Actions - - @IBAction func dismissButtonTapped(_ sender: UIBarButtonItem) { - self.dismiss(animated: true, completion: nil) - } } - -extension LocalizedStrings { - static let settings = NSLocalizedString("Settings", comment: "Settings") - - static let backupLocalFiles = NSLocalizedString("Backup Local Files", comment: "Setting") - static let fontSize = NSLocalizedString("Font Size", comment: "Setting") - static let searchHistory = NSLocalizedString("Search History", comment: "Setting") - - static let misc = NSLocalizedString("Misc", comment: "Setting") - static let rateKiwix = NSLocalizedString("Give Kiwix a rate!", comment: "Setting") - static let about = NSLocalizedString("About", comment: "Setting") - static let settingFootnote = NSLocalizedString("Kiwix for iOS v%@", comment: "Version footnote (please translate 'v' as version)") - - //MARK: - Rate Kiwix - class var rateKiwixTitle: String {return NSLocalizedString("Give Kiwix a rate!", comment: "Rate Kiwix in App Store Alert Title")} - class var rateNow: String {return NSLocalizedString("Rate Now", comment: "Rate Kiwix in App Store Alert Action")} - class var rateLater: String {return NSLocalizedString("Remind me later", comment: "Rate Kiwix in App Store Alert Action")} - class var rateNever: String {return NSLocalizedString("Never remind me again", comment: "Rate Kiwix in App Store Alert Action")} - class var rateKiwixMessage: String {return NSLocalizedString("We hope you enjoyed using Kiwix so far. Would you like to give us a rate in App Store?", comment: "Rate Kiwix in App Store Alert Message")} -} diff --git a/Kiwix-iOS/Controller/Setting/FontSizeController.swift b/Kiwix-iOS/Controller/Setting/old/FontSizeController.swift similarity index 100% rename from Kiwix-iOS/Controller/Setting/FontSizeController.swift rename to Kiwix-iOS/Controller/Setting/old/FontSizeController.swift diff --git a/Kiwix-iOS/Controller/Setting/old/SettingController.swift b/Kiwix-iOS/Controller/Setting/old/SettingController.swift new file mode 100644 index 00000000..545f53c0 --- /dev/null +++ b/Kiwix-iOS/Controller/Setting/old/SettingController.swift @@ -0,0 +1,186 @@ +// +// SettingTBVC.swift +// Kiwix +// +// Created by Chris on 12/12/15. +// Copyright © 2016 Chris Li. All rights reserved. +// + +import UIKit + +class SettingTBVC: UITableViewController { + fileprivate(set) var sectionHeader: [String?] = [nil, LocalizedStrings.misc] + fileprivate(set) var cellTitles = [[LocalizedStrings.backupLocalFiles, LocalizedStrings.fontSize, LocalizedStrings.searchHistory], + [LocalizedStrings.rateKiwix, LocalizedStrings.about]] + + override func viewDidLoad() { + super.viewDidLoad() + title = LocalizedStrings.settings + clearsSelectionOnViewWillAppear = true + showRateKiwixIfNeeded() + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + tableView.reloadData() + } + + // MARK: - Table view data source + + override func numberOfSections(in tableView: UITableView) -> Int { + return cellTitles.count + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return cellTitles[section].count + } + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) + + let title = cellTitles[indexPath.section][indexPath.row] + cell.textLabel?.text = title + cell.detailTextLabel?.text = { + switch title { + case LocalizedStrings.backupLocalFiles: + guard let skipBackup = FileManager.getSkipBackupAttribute(item: FileManager.docDirURL) else {return ""} + return skipBackup ? LocalizedStrings.off: LocalizedStrings.on + case LocalizedStrings.fontSize: + return String.formattedPercentString(Preference.webViewZoomScale / 100) + default: + return nil + } + }() + + return cell + } + + // MARK: - Table View Delegate + + override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + return sectionHeader[section] + } + + override func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? { + guard section == tableView.numberOfSections - 1 else {return nil} + var footnote = String(format: LocalizedStrings.settingFootnote, Bundle.appShortVersion) + switch UIApplication.buildStatus { + case .alpha, .beta: + footnote += (UIApplication.buildStatus == .alpha ? " Alpha" : " Beta") + footnote += "\n" + footnote += "Build " + Bundle.buildVersion + return footnote + case .release: + return footnote + } + } + + override func tableView(_ tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) { + guard section == tableView.numberOfSections - 1 else {return} + if let view = view as? UITableViewHeaderFooterView { + view.textLabel?.textAlignment = .center + } + } + + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + defer {tableView.deselectRow(at: indexPath, animated: true)} + let cell = tableView.cellForRow(at: indexPath) + guard let text = cell?.textLabel?.text else {return} + switch text { + case LocalizedStrings.backupLocalFiles: + let controller = UIStoryboard(name: "Setting", bundle: nil) + .instantiateViewController(withIdentifier: "SettingDetailController") as! SettingDetailController + controller.page = .BackupLocalFiles + navigationController?.pushViewController(controller, animated: true) + case LocalizedStrings.searchHistory: + let controller = UIStoryboard(name: "Setting", bundle: nil) + .instantiateViewController(withIdentifier: "SettingDetailController") as! SettingDetailController + controller.page = .SearchHistory + navigationController?.pushViewController(controller, animated: true) + case LocalizedStrings.fontSize: + let controller = UIStoryboard(name: "Setting", bundle: nil) + .instantiateViewController(withIdentifier: "FontSizeController") as! FontSizeController + navigationController?.pushViewController(controller, animated: true) + case LocalizedStrings.rateKiwix: + showRateKiwixAlert(showRemindLater: false) + case LocalizedStrings.about: + break +// let controller = UIStoryboard(name: "Setting", bundle: nil) +// .instantiateViewController(withIdentifier: "WebViewControllerOld") as! WebViewControllerOld +// controller.page = .About +// navigationController?.pushViewController(controller, animated: true) + default: + break + } + } + + // MARK: - Rate Kiwix + + func showRateKiwixIfNeeded() { + guard Preference.haveRateKiwix == false else {return} + guard let firstActiveDate = Preference.activeUseHistory.first else {return} + let installtionIsOldEnough = Date().timeIntervalSince(firstActiveDate as Date) > 3600.0 * 24 * 7 + let hasActivelyUsed = Preference.activeUseHistory.count > 10 + if installtionIsOldEnough && hasActivelyUsed { + showRateKiwixAlert(showRemindLater: true) + } + } + + func showRateKiwixAlert(showRemindLater: Bool) { + let alert = UIAlertController(title: LocalizedStrings.rateKiwixTitle, message: LocalizedStrings.rateKiwixMessage, preferredStyle: .alert) + let remindLater = UIAlertAction(title: LocalizedStrings.rateLater, style: .default) { (action) -> Void in + Preference.activeUseHistory.removeAll() + } + let remindNever = UIAlertAction(title: LocalizedStrings.rateNever, style: .default) { (action) -> Void in + Preference.haveRateKiwix = true + } + let rateNow = UIAlertAction(title: LocalizedStrings.rateNow, style: .cancel) { (action) -> Void in + self.goRateInAppStore() + Preference.haveRateKiwix = true + } + let cancel = UIAlertAction(title: LocalizedStrings.cancel, style: .default, handler: nil) + + if showRemindLater { + alert.addAction(remindLater) + alert.addAction(remindNever) + alert.addAction(rateNow) + } else { + alert.addAction(rateNow) + alert.addAction(cancel) + } + + self.present(alert, animated: true, completion: nil) + } + + func goRateInAppStore() { +// let url = URL(string: "http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=997079563&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8")! +// UIApplication.shared.openURL(url) + } + + // MARK: - Actions + + @IBAction func dismissButtonTapped(_ sender: UIBarButtonItem) { + self.dismiss(animated: true, completion: nil) + } + +} + +extension LocalizedStrings { + static let settings = NSLocalizedString("Settings", comment: "Settings") + + static let backupLocalFiles = NSLocalizedString("Backup Local Files", comment: "Setting") + static let fontSize = NSLocalizedString("Font Size", comment: "Setting") + static let searchHistory = NSLocalizedString("Search History", comment: "Setting") + + static let misc = NSLocalizedString("Misc", comment: "Setting") + static let rateKiwix = NSLocalizedString("Give Kiwix a rate!", comment: "Setting") + static let about = NSLocalizedString("About", comment: "Setting") + static let settingFootnote = NSLocalizedString("Kiwix for iOS v%@", comment: "Version footnote (please translate 'v' as version)") + + //MARK: - Rate Kiwix + class var rateKiwixTitle: String {return NSLocalizedString("Give Kiwix a rate!", comment: "Rate Kiwix in App Store Alert Title")} + class var rateNow: String {return NSLocalizedString("Rate Now", comment: "Rate Kiwix in App Store Alert Action")} + class var rateLater: String {return NSLocalizedString("Remind me later", comment: "Rate Kiwix in App Store Alert Action")} + class var rateNever: String {return NSLocalizedString("Never remind me again", comment: "Rate Kiwix in App Store Alert Action")} + class var rateKiwixMessage: String {return NSLocalizedString("We hope you enjoyed using Kiwix so far. Would you like to give us a rate in App Store?", comment: "Rate Kiwix in App Store Alert Message")} +} diff --git a/Kiwix-iOS/Controller/Setting/SettingDetailController.swift b/Kiwix-iOS/Controller/Setting/old/SettingDetailController.swift similarity index 100% rename from Kiwix-iOS/Controller/Setting/SettingDetailController.swift rename to Kiwix-iOS/Controller/Setting/old/SettingDetailController.swift diff --git a/Kiwix-iOS/Controller/Setting/SettingSearchHistoryTBVC.swift b/Kiwix-iOS/Controller/Setting/old/SettingSearchHistoryTBVC.swift similarity index 100% rename from Kiwix-iOS/Controller/Setting/SettingSearchHistoryTBVC.swift rename to Kiwix-iOS/Controller/Setting/old/SettingSearchHistoryTBVC.swift diff --git a/Kiwix-iOS/Controller/Setting/SettingsController.swift b/Kiwix-iOS/Controller/Setting/old/SettingsController.swift similarity index 100% rename from Kiwix-iOS/Controller/Setting/SettingsController.swift rename to Kiwix-iOS/Controller/Setting/old/SettingsController.swift diff --git a/Kiwix-iOS/Controller/Setting/WebViewControllerOld.swift b/Kiwix-iOS/Controller/Setting/old/WebViewControllerOld.swift similarity index 100% rename from Kiwix-iOS/Controller/Setting/WebViewControllerOld.swift rename to Kiwix-iOS/Controller/Setting/old/WebViewControllerOld.swift diff --git a/Kiwix-iOS/Storyboard/Setting.storyboard b/Kiwix-iOS/Storyboard/Setting.storyboard index 8a5d50ae..c89db8b5 100644 --- a/Kiwix-iOS/Storyboard/Setting.storyboard +++ b/Kiwix-iOS/Storyboard/Setting.storyboard @@ -1,275 +1,69 @@ - + - - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - - - - - - - - - - - - - + + - + + + + + + + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + diff --git a/Kiwix-iOS/Storyboard/Settings.storyboard b/Kiwix-iOS/Storyboard/Settings.storyboard new file mode 100644 index 00000000..c6c2bb44 --- /dev/null +++ b/Kiwix-iOS/Storyboard/Settings.storyboard @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiwix.xcodeproj/project.pbxproj b/Kiwix.xcodeproj/project.pbxproj index 40ef36ed..65e0a4ce 100644 --- a/Kiwix.xcodeproj/project.pbxproj +++ b/Kiwix.xcodeproj/project.pbxproj @@ -10,8 +10,6 @@ 7356F9FACBB84380CFC8F68F /* Pods_Kiwix_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EC884ACBBA260AF741C4C4FE /* Pods_Kiwix_iOS.framework */; }; 970A2A221DD562CB0078BB7C /* BookOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 970A2A211DD562CB0078BB7C /* BookOperations.swift */; }; 970E7F741D9DB0FC00741290 /* 1.8.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 970E7F731D9DB0FC00741290 /* 1.8.xcmappingmodel */; }; - 970E7F771D9DBEA900741290 /* SettingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 970E7F761D9DBEA900741290 /* SettingController.swift */; }; - 970E7F7B1DA0069600741290 /* FontSizeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 970E7F7A1DA0069600741290 /* FontSizeController.swift */; }; 970E7F831DA0305000741290 /* WelcomeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 970E7F7F1DA0305000741290 /* WelcomeController.swift */; }; 9711871E1CEB449A00B9909D /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 9711871D1CEB449A00B9909D /* libz.tbd */; }; 971A10161D022872007FC62C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 971A10151D022872007FC62C /* Assets.xcassets */; }; @@ -55,11 +53,9 @@ 973DD4161D343F2F009D45DB /* libicuuc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 973DD40B1D343F2F009D45DB /* libicuuc.a */; }; 973DD4181D343F2F009D45DB /* libxapian.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 973DD40D1D343F2F009D45DB /* libxapian.a */; }; 973DD4191D343F2F009D45DB /* libzim.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 973DD40E1D343F2F009D45DB /* libzim.a */; }; - 973DD4281D36E3E4009D45DB /* SettingDetailController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973DD4271D36E3E4009D45DB /* SettingDetailController.swift */; }; 974000151DB008C6009A740D /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9788419C1DA2FF2A00D22D3C /* MainInterface.storyboard */; }; 974C49681DA4266200E276E1 /* CloudKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 974C49671DA4266200E276E1 /* CloudKit.framework */; }; 975227CD1D0227E8001D1DDE /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 975227CA1D0227E8001D1DDE /* Main.storyboard */; }; - 975227CE1D0227E8001D1DDE /* Setting.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 975227CB1D0227E8001D1DDE /* Setting.storyboard */; }; 975227D01D022814001D1DDE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 975227CF1D022814001D1DDE /* LaunchScreen.storyboard */; }; 9757C74A1E10660B008A9469 /* DownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9757C7491E10660B008A9469 /* DownloadManager.swift */; }; 9757C74C1E106958008A9469 /* BackgroundDownload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9757C74B1E106958008A9469 /* BackgroundDownload.swift */; }; @@ -71,7 +67,8 @@ 9764F5991D833F2B00E0B1C4 /* KiwixURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9764F5981D833F2B00E0B1C4 /* KiwixURL.swift */; }; 976B86D81DDA0C7E00FA7FD1 /* SearchContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 976B86D71DDA0C7E00FA7FD1 /* SearchContainer.swift */; }; 976C1DCB1E2FD5FC005EDEC4 /* TableOfContentsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 976C1DCA1E2FD5FC005EDEC4 /* TableOfContentsController.swift */; }; - 976C1DCE1E30000E005EDEC4 /* SettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 976C1DCD1E30000E005EDEC4 /* SettingsController.swift */; }; + 976C1DD01E3000B6005EDEC4 /* Setting.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 976C1DCF1E3000B6005EDEC4 /* Setting.storyboard */; }; + 976C1DD21E3000F1005EDEC4 /* SettingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 976C1DD11E3000F1005EDEC4 /* SettingController.swift */; }; 9771A5BD1DD269BD005F1795 /* Book+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97D6813C1D6F712800E5FA99 /* Book+CoreDataProperties.swift */; }; 9779C3141D4575AD0064CC8E /* NotificationCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97E609F01D103DED00EBCB9D /* NotificationCenter.framework */; }; 9779C3171D4575AE0064CC8E /* TodayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9779C3161D4575AE0064CC8E /* TodayViewController.swift */; }; @@ -165,9 +162,6 @@ 970912551D7F452C00BBD5A1 /* 1.8.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = 1.8.xcdatamodel; sourceTree = ""; }; 970A2A211DD562CB0078BB7C /* BookOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BookOperations.swift; sourceTree = ""; }; 970E7F731D9DB0FC00741290 /* 1.8.xcmappingmodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcmappingmodel; name = 1.8.xcmappingmodel; path = Kiwix/CoreData/Migration/1.8.xcmappingmodel; sourceTree = SOURCE_ROOT; }; - 970E7F761D9DBEA900741290 /* SettingController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingController.swift; sourceTree = ""; }; - 970E7F781DA003FA00741290 /* WebViewControllerOld.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebViewControllerOld.swift; sourceTree = ""; }; - 970E7F7A1DA0069600741290 /* FontSizeController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FontSizeController.swift; sourceTree = ""; }; 970E7F7C1DA0305000741290 /* Alerts.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Alerts.swift; sourceTree = ""; }; 970E7F7F1DA0305000741290 /* WelcomeController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WelcomeController.swift; sourceTree = ""; }; 9711871B1CEB448400B9909D /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/lib/libz.tbd; sourceTree = DEVELOPER_DIR; }; @@ -215,10 +209,9 @@ 973DD40C1D343F2F009D45DB /* liblzma.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = liblzma.a; path = Kiwix/libkiwix/iOS/liblzma.a; sourceTree = ""; }; 973DD40D1D343F2F009D45DB /* libxapian.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libxapian.a; path = Kiwix/libkiwix/iOS/libxapian.a; sourceTree = ""; }; 973DD40E1D343F2F009D45DB /* libzim.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libzim.a; path = Kiwix/libkiwix/iOS/libzim.a; sourceTree = ""; }; - 973DD4271D36E3E4009D45DB /* SettingDetailController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SettingDetailController.swift; path = "Kiwix-iOS/Controller/Setting/SettingDetailController.swift"; sourceTree = SOURCE_ROOT; }; 974C49671DA4266200E276E1 /* CloudKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CloudKit.framework; path = System/Library/Frameworks/CloudKit.framework; sourceTree = SDKROOT; }; 975227CA1D0227E8001D1DDE /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Main.storyboard; path = "Kiwix-iOS/Storyboard/Main.storyboard"; sourceTree = SOURCE_ROOT; }; - 975227CB1D0227E8001D1DDE /* Setting.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Setting.storyboard; path = "Kiwix-iOS/Storyboard/Setting.storyboard"; sourceTree = SOURCE_ROOT; }; + 975227CB1D0227E8001D1DDE /* Settings.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Settings.storyboard; path = "Kiwix-iOS/Storyboard/Settings.storyboard"; sourceTree = SOURCE_ROOT; }; 975227CF1D022814001D1DDE /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = "Kiwix-iOS/Storyboard/LaunchScreen.storyboard"; sourceTree = SOURCE_ROOT; }; 9757C7491E10660B008A9469 /* DownloadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManager.swift; sourceTree = ""; }; 9757C74B1E106958008A9469 /* BackgroundDownload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BackgroundDownload.swift; sourceTree = ""; }; @@ -233,7 +226,8 @@ 976A0C801D41619C0006A742 /* DZNEmptyDataSet.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DZNEmptyDataSet.framework; path = "../../../../Users/chrisli/Library/Developer/Xcode/DerivedData/Kiwix-ayxrfhaqnfxzendihdolvkklkmhk/Build/Products/Debug-iphoneos/DZNEmptyDataSet/DZNEmptyDataSet.framework"; sourceTree = ""; }; 976B86D71DDA0C7E00FA7FD1 /* SearchContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchContainer.swift; sourceTree = ""; }; 976C1DCA1E2FD5FC005EDEC4 /* TableOfContentsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableOfContentsController.swift; sourceTree = ""; }; - 976C1DCD1E30000E005EDEC4 /* SettingsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsController.swift; sourceTree = ""; }; + 976C1DCF1E3000B6005EDEC4 /* Setting.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Setting.storyboard; sourceTree = ""; }; + 976C1DD11E3000F1005EDEC4 /* SettingController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingController.swift; sourceTree = ""; }; 9779C3131D4575AD0064CC8E /* Bookmarks.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Bookmarks.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 9779C3161D4575AE0064CC8E /* TodayViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayViewController.swift; sourceTree = ""; }; 9779C31B1D4575AE0064CC8E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -585,23 +579,10 @@ name = Others; sourceTree = ""; }; - 976C1DCC1E2FFFF3005EDEC4 /* old */ = { - isa = PBXGroup; - children = ( - 970E7F761D9DBEA900741290 /* SettingController.swift */, - 970E7F7A1DA0069600741290 /* FontSizeController.swift */, - 973DD4271D36E3E4009D45DB /* SettingDetailController.swift */, - 970E7F781DA003FA00741290 /* WebViewControllerOld.swift */, - ); - name = old; - sourceTree = ""; - }; 9771DC4B1C37278E009ECFF0 /* Setting */ = { isa = PBXGroup; children = ( - 9787BC1F1D9318080030D311 /* Others */, - 976C1DCC1E2FFFF3005EDEC4 /* old */, - 976C1DCD1E30000E005EDEC4 /* SettingsController.swift */, + 976C1DD11E3000F1005EDEC4 /* SettingController.swift */, ); path = Setting; sourceTree = ""; @@ -632,8 +613,7 @@ 973A5C911DEA3F5600C7804C /* CoreDataTableBaseController.swift */, 970E7F7F1DA0305000741290 /* WelcomeController.swift */, ); - name = Others; - path = ../Others; + path = Others; sourceTree = ""; }; 978C587A1C1CCC9C0077AE47 /* Storyboards */ = { @@ -643,7 +623,8 @@ 97C601DB1D7F15C400362D4F /* Bookmark.storyboard */, 97C005D51D64B3B0004352E8 /* Library.storyboard */, 97F03CE11D2440470040D26E /* Search.storyboard */, - 975227CB1D0227E8001D1DDE /* Setting.storyboard */, + 976C1DCF1E3000B6005EDEC4 /* Setting.storyboard */, + 975227CB1D0227E8001D1DDE /* Settings.storyboard */, 9734E54D1D289D060061C39B /* Welcome.storyboard */, ); name = Storyboards; @@ -658,6 +639,7 @@ 972B007D1C35DBAB00B5FDC5 /* Main */, 97E108221C5D5A0D00E27FD3 /* Search */, 9771DC4B1C37278E009ECFF0 /* Setting */, + 9787BC1F1D9318080030D311 /* Others */, ); name = Controllers; path = Controller; @@ -1005,7 +987,7 @@ 97E850CB1D2DA5B300A9F688 /* About.html in Resources */, 97C601DC1D7F15C400362D4F /* Bookmark.storyboard in Resources */, 975227CD1D0227E8001D1DDE /* Main.storyboard in Resources */, - 975227CE1D0227E8001D1DDE /* Setting.storyboard in Resources */, + 976C1DD01E3000B6005EDEC4 /* Setting.storyboard in Resources */, 971A10801D022F74007FC62C /* Pic_I.png in Resources */, 97C005D61D64B3B0004352E8 /* Library.storyboard in Resources */, 971A107F1D022F74007FC62C /* ImportBookLearnMore.html in Resources */, @@ -1092,12 +1074,10 @@ buildActionMask = 2147483647; files = ( 9757C74C1E106958008A9469 /* BackgroundDownload.swift in Sources */, - 970E7F771D9DBEA900741290 /* SettingController.swift in Sources */, 973A5C951DEA6DD000C7804C /* URLResponseCache.swift in Sources */, 973207A51DD1984700EDD3DC /* SearchScopeAndHistoryController.swift in Sources */, 973207A21DD1983D00EDD3DC /* BookDetailController.swift in Sources */, 973208231DD19C7600EDD3DC /* DownloadProgress.swift in Sources */, - 976C1DCE1E30000E005EDEC4 /* SettingsController.swift in Sources */, 97A1FD161D6F71CE00A80EE2 /* DirectoryMonitor.swift in Sources */, 9726591D1D90A64600D1DFFB /* Notifications.swift in Sources */, 971A102C1D022AD5007FC62C /* BarButtonItems.swift in Sources */, @@ -1129,6 +1109,7 @@ 97D0E9931DDA487E0029530E /* SearchBaseController.swift in Sources */, 97A1FD321D6F723D00A80EE2 /* resourceTools.cpp in Sources */, 97A1FD451D6F728200A80EE2 /* StringTools.swift in Sources */, + 976C1DD21E3000F1005EDEC4 /* SettingController.swift in Sources */, 97D681411D6F712800E5FA99 /* DownloadTask+CoreDataProperties.swift in Sources */, 97D681391D6F711A00E5FA99 /* DownloadTask.swift in Sources */, 977B954D1DD4C40400F6F62B /* ScanLocalBook.swift in Sources */, @@ -1161,10 +1142,8 @@ 973207A11DD1983D00EDD3DC /* LocalBooksController.swift in Sources */, 977AE7F91DD8F22400F1E581 /* SearchBar.swift in Sources */, 97ED50111DD257D00089E9B6 /* Kiwix.xcdatamodeld in Sources */, - 973DD4281D36E3E4009D45DB /* SettingDetailController.swift in Sources */, 973207A41DD1983D00EDD3DC /* EmptyTableConfigExtension.swift in Sources */, 97A127C91D777CF100FB204D /* RecentSearchController.swift in Sources */, - 970E7F7B1DA0069600741290 /* FontSizeController.swift in Sources */, 97599AE21E28193D00BA15EF /* BookmarkCollectionController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0;