Setting basic setup

This commit is contained in:
Chris Li 2017-01-18 15:07:10 -05:00
parent d119cdf640
commit 6d8888dde2
13 changed files with 584 additions and 446 deletions

View File

@ -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()

View File

@ -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

View File

@ -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()
}

View File

@ -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")}
}

View File

@ -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")}
}

View File

@ -1,275 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11760" systemVersion="16B2555" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="ixe-Ss-2Pz">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="16C68" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="jvC-Yd-X5i">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11755"/>
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--Navigation Controller-->
<scene sceneID="rWS-RR-1rQ">
<!--Setting Controller-->
<scene sceneID="sMB-nQ-E1N">
<objects>
<navigationController id="ixe-Ss-2Pz" sceneMemberID="viewController">
<navigationBar key="navigationBar" contentMode="scaleToFill" id="mrr-zX-K3e">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="ukf-An-bHv" kind="relationship" relationship="rootViewController" id="3Xf-fy-tPU"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="AB1-CG-VjA" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-693" y="1223"/>
</scene>
<!--SettingTBVC-->
<scene sceneID="AlF-dM-FGj">
<objects>
<tableViewController id="ukf-An-bHv" customClass="SettingTBVC" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="s9U-ND-2nd">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="Cell" textLabel="9Ns-UR-jPN" detailTextLabel="HK0-cz-Vt2" style="IBUITableViewCellStyleValue1" id="k5X-4C-cbS">
<rect key="frame" x="0.0" y="56" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="k5X-4C-cbS" id="7sQ-Il-tyB">
<rect key="frame" x="0.0" y="0.0" width="342" height="43"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="9Ns-UR-jPN">
<rect key="frame" x="15" y="12" width="32" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="HK0-cz-Vt2">
<rect key="frame" x="298" y="12" width="42" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.55686274509803924" green="0.55686274509803924" blue="0.57647058823529407" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
</prototypes>
<connections>
<outlet property="dataSource" destination="ukf-An-bHv" id="sSr-lc-Xmp"/>
<outlet property="delegate" destination="ukf-An-bHv" id="1Re-rD-gBf"/>
</connections>
</tableView>
<navigationItem key="navigationItem" id="O1i-5x-hjG">
<barButtonItem key="leftBarButtonItem" image="Cross" id="adR-Dl-inI">
<connections>
<action selector="dismissButtonTapped:" destination="ukf-An-bHv" id="Nol-jX-zCU"/>
</connections>
</barButtonItem>
</navigationItem>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="h5i-dV-ulp" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="111" y="1223"/>
</scene>
<!--Setting Detail Controller-->
<scene sceneID="gNU-f4-Nck">
<objects>
<tableViewController storyboardIdentifier="SettingDetailController" id="14N-Ku-Bzo" customClass="SettingDetailController" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="iqT-QJ-NiQ">
<tableViewController id="QH6-y5-o00" customClass="SettingController" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="TFK-6p-Kdc">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="Cell" id="HbU-X6-hd3">
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="Cell" id="K6f-F5-Ibr">
<rect key="frame" x="0.0" y="56" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="HbU-X6-hd3" id="7F9-VQ-e7x">
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="K6f-F5-Ibr" id="VlD-vh-hfO">
<rect key="frame" x="0.0" y="0.0" width="375" height="43"/>
<autoresizingMask key="autoresizingMask"/>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CenterTextCell" textLabel="hMn-IP-zaI" style="IBUITableViewCellStyleDefault" id="n4x-mW-vx6">
<rect key="frame" x="0.0" y="100" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="n4x-mW-vx6" id="V35-DL-d1b">
<rect key="frame" x="0.0" y="0.0" width="375" height="43"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Title" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="hMn-IP-zaI">
<rect key="frame" x="15" y="0.0" width="345" height="43"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
<color key="textColor" red="0.90807330610000003" green="0.29807889459999998" blue="0.135635227" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
</prototypes>
<connections>
<outlet property="dataSource" destination="14N-Ku-Bzo" id="PY8-3N-NrW"/>
<outlet property="delegate" destination="14N-Ku-Bzo" id="yv7-cs-NNP"/>
<outlet property="dataSource" destination="QH6-y5-o00" id="7cs-gB-JDK"/>
<outlet property="delegate" destination="QH6-y5-o00" id="3pE-zm-lTe"/>
</connections>
</tableView>
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
<navigationItem key="navigationItem" id="aBF-jV-Oat">
<barButtonItem key="leftBarButtonItem" image="Cross" id="xh4-NR-IQA">
<connections>
<action selector="dismissButtonTapped:" destination="QH6-y5-o00" id="JV6-lf-cwX"/>
</connections>
</barButtonItem>
</navigationItem>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Szm-cS-BNH" userLabel="First Responder" sceneMemberID="firstResponder"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="LCZ-ZZ-jd2" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1562" y="1223"/>
<point key="canvasLocation" x="1040.8" y="224.4377811094453"/>
</scene>
<!--Font Size Controller-->
<scene sceneID="ppG-nb-eq1">
<!--Navigation Controller-->
<scene sceneID="y2e-Kj-oGf">
<objects>
<tableViewController storyboardIdentifier="FontSizeController" id="PfB-ub-Ykr" customClass="FontSizeController" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" dataMode="static" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="5ku-oq-d7H">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<sections>
<tableViewSection id="rF1-Lx-SEk">
<cells>
<tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="SliderCell" rowHeight="72" id="SLa-Ba-CP7">
<rect key="frame" x="0.0" y="35" width="375" height="72"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="SLa-Ba-CP7" id="wae-rZ-Yje">
<rect key="frame" x="0.0" y="0.0" width="375" height="71"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="85%" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5JF-1m-Xbn">
<rect key="frame" x="8" y="16.5" width="56" height="14.5"/>
<constraints>
<constraint firstAttribute="width" constant="56" id="g2p-Xe-qum"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="115%" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FrC-M5-5Hi">
<rect key="frame" x="258" y="8" width="109" height="31"/>
<constraints>
<constraint firstAttribute="width" constant="109" id="1hC-sS-8rq"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="100" minValue="85" maxValue="115" translatesAutoresizingMaskIntoConstraints="NO" id="Jjc-6Z-vmt">
<rect key="frame" x="24" y="33" width="327" height="31"/>
<connections>
<action selector="sliderTouchUpInside:" destination="PfB-ub-Ykr" eventType="touchUpInside" id="byq-SJ-TrM"/>
</connections>
</slider>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="100%" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vFR-A1-K8v">
<rect key="frame" x="154.5" y="15" width="66" height="17"/>
<constraints>
<constraint firstAttribute="width" constant="66" id="6a4-7S-NHg"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="leading" secondItem="wae-rZ-Yje" secondAttribute="leadingMargin" id="53K-sP-q4A"/>
<constraint firstAttribute="bottomMargin" secondItem="Jjc-6Z-vmt" secondAttribute="bottom" constant="-7.5" id="8zw-sf-eA9"/>
<constraint firstAttribute="centerX" secondItem="vFR-A1-K8v" secondAttribute="centerX" id="9So-R1-ov3"/>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="trailing" secondItem="wae-rZ-Yje" secondAttribute="trailingMargin" id="CdK-Ho-rrd"/>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="top" secondItem="wae-rZ-Yje" secondAttribute="topMargin" constant="5" id="Ivv-a6-E2q"/>
<constraint firstItem="5JF-1m-Xbn" firstAttribute="leading" secondItem="wae-rZ-Yje" secondAttribute="leadingMargin" id="JvB-Yv-sLg"/>
<constraint firstItem="vFR-A1-K8v" firstAttribute="top" secondItem="wae-rZ-Yje" secondAttribute="topMargin" constant="7" id="LeW-aa-Qhc"/>
<constraint firstAttribute="bottomMargin" secondItem="Jjc-6Z-vmt" secondAttribute="bottom" constant="0.5" id="Oc3-hb-bnX"/>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="leading" secondItem="wae-rZ-Yje" secondAttribute="leadingMargin" id="Rcy-lP-R4S"/>
<constraint firstItem="FrC-M5-5Hi" firstAttribute="top" secondItem="wae-rZ-Yje" secondAttribute="topMargin" id="Ryy-1J-ZfK"/>
<constraint firstAttribute="bottomMargin" secondItem="Jjc-6Z-vmt" secondAttribute="bottom" constant="3.5" id="S6C-BA-jWk"/>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="trailing" secondItem="wae-rZ-Yje" secondAttribute="trailingMargin" id="Sf4-2C-wD4"/>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="leading" secondItem="wae-rZ-Yje" secondAttribute="leadingMargin" id="Sh9-Om-Jm1"/>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="trailing" secondItem="wae-rZ-Yje" secondAttribute="trailingMargin" id="TuC-Xa-biD"/>
<constraint firstItem="FrC-M5-5Hi" firstAttribute="trailing" secondItem="wae-rZ-Yje" secondAttribute="trailingMargin" id="W96-Zh-jKb"/>
<constraint firstAttribute="centerX" secondItem="Jjc-6Z-vmt" secondAttribute="centerX" id="We9-zf-Yga"/>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="leading" secondItem="wae-rZ-Yje" secondAttribute="leadingMargin" constant="18" id="Z9p-rd-VEI"/>
<constraint firstAttribute="bottomMargin" secondItem="Jjc-6Z-vmt" secondAttribute="bottom" constant="-9.5" id="baI-Ke-Gt2"/>
<constraint firstItem="vFR-A1-K8v" firstAttribute="centerY" secondItem="5JF-1m-Xbn" secondAttribute="centerY" id="emI-YG-JIA"/>
<constraint firstItem="5JF-1m-Xbn" firstAttribute="centerY" secondItem="FrC-M5-5Hi" secondAttribute="centerY" id="hc6-j1-O0J"/>
<constraint firstAttribute="trailingMargin" secondItem="Jjc-6Z-vmt" secondAttribute="trailing" constant="18" id="lb8-Rf-hn1"/>
<constraint firstAttribute="centerY" secondItem="Jjc-6Z-vmt" secondAttribute="centerY" constant="-0.75" id="z4Q-Y8-aKv"/>
</constraints>
<variation key="default">
<mask key="constraints">
<exclude reference="53K-sP-q4A"/>
<exclude reference="8zw-sf-eA9"/>
<exclude reference="CdK-Ho-rrd"/>
<exclude reference="Ivv-a6-E2q"/>
<exclude reference="Rcy-lP-R4S"/>
<exclude reference="S6C-BA-jWk"/>
<exclude reference="Sf4-2C-wD4"/>
<exclude reference="Sh9-Om-Jm1"/>
<exclude reference="TuC-Xa-biD"/>
<exclude reference="We9-zf-Yga"/>
<exclude reference="baI-Ke-Gt2"/>
<exclude reference="z4Q-Y8-aKv"/>
</mask>
</variation>
</tableViewCellContentView>
</tableViewCell>
</cells>
</tableViewSection>
</sections>
<connections>
<outlet property="dataSource" destination="PfB-ub-Ykr" id="2q8-TX-Uo7"/>
<outlet property="delegate" destination="PfB-ub-Ykr" id="MlX-I2-DCD"/>
</connections>
</tableView>
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
<navigationController automaticallyAdjustsScrollViewInsets="NO" id="jvC-Yd-X5i" sceneMemberID="viewController">
<toolbarItems/>
<navigationBar key="navigationBar" contentMode="scaleToFill" id="x2i-fk-ewZ">
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<nil name="viewControllers"/>
<connections>
<outlet property="slider" destination="Jjc-6Z-vmt" id="TOV-gS-OkD"/>
<segue destination="QH6-y5-o00" kind="relationship" relationship="rootViewController" id="pzG-xe-RQ8"/>
</connections>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="nRf-7x-ELg" userLabel="First Responder" sceneMemberID="firstResponder"/>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="sqn-pX-ScY" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="858" y="1223"/>
</scene>
<!--Web View Controller Old-->
<scene sceneID="ovP-iw-7D0">
<objects>
<viewController storyboardIdentifier="WebViewControllerOld" automaticallyAdjustsScrollViewInsets="NO" id="Ua4-kV-xc7" customClass="WebViewControllerOld" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="0oM-Rx-OPo"/>
<viewControllerLayoutGuide type="bottom" id="Dof-V3-6P5"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="IWt-pE-0vK">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<webView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xHD-1m-bRe">
<rect key="frame" x="-4" y="64" width="383" height="603"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</webView>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="xHD-1m-bRe" firstAttribute="leading" secondItem="IWt-pE-0vK" secondAttribute="leadingMargin" constant="-20" id="8GP-7p-Bvn"/>
<constraint firstItem="xHD-1m-bRe" firstAttribute="top" secondItem="0oM-Rx-OPo" secondAttribute="bottom" id="dBS-LZ-3KV"/>
<constraint firstAttribute="trailingMargin" secondItem="xHD-1m-bRe" secondAttribute="trailing" constant="-20" id="xNI-H4-PXu"/>
<constraint firstItem="Dof-V3-6P5" firstAttribute="top" secondItem="xHD-1m-bRe" secondAttribute="bottom" id="xcW-R6-o8D"/>
</constraints>
</view>
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
<connections>
<outlet property="webView" destination="xHD-1m-bRe" id="w45-FL-Wu3"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="oLJ-aA-Gy7" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="2252" y="1223"/>
<point key="canvasLocation" x="101.59999999999999" y="224.4377811094453"/>
</scene>
</scenes>
<resources>
<image name="Cross" width="21" height="21"/>
<image name="Cross" width="16" height="16"/>
</resources>
</document>

View File

@ -0,0 +1,322 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="16C68" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="ZKc-e6-nIH">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--Navigation Controller-->
<scene sceneID="rWS-RR-1rQ">
<objects>
<navigationController id="ixe-Ss-2Pz" sceneMemberID="viewController">
<navigationBar key="navigationBar" contentMode="scaleToFill" id="mrr-zX-K3e">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="ukf-An-bHv" kind="relationship" relationship="rootViewController" id="3Xf-fy-tPU"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="AB1-CG-VjA" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-693" y="1223"/>
</scene>
<!--SettingTBVC-->
<scene sceneID="AlF-dM-FGj">
<objects>
<tableViewController id="ukf-An-bHv" customClass="SettingTBVC" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="s9U-ND-2nd">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="Cell" textLabel="9Ns-UR-jPN" detailTextLabel="HK0-cz-Vt2" style="IBUITableViewCellStyleValue1" id="k5X-4C-cbS">
<rect key="frame" x="0.0" y="56" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="k5X-4C-cbS" id="7sQ-Il-tyB">
<rect key="frame" x="0.0" y="0.0" width="342" height="43"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="9Ns-UR-jPN">
<rect key="frame" x="15" y="12" width="32" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="HK0-cz-Vt2">
<rect key="frame" x="298" y="12" width="42" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.55686274509803924" green="0.55686274509803924" blue="0.57647058823529407" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
</prototypes>
<connections>
<outlet property="dataSource" destination="ukf-An-bHv" id="sSr-lc-Xmp"/>
<outlet property="delegate" destination="ukf-An-bHv" id="1Re-rD-gBf"/>
</connections>
</tableView>
<navigationItem key="navigationItem" id="O1i-5x-hjG">
<barButtonItem key="leftBarButtonItem" image="Cross" id="adR-Dl-inI">
<connections>
<action selector="dismissButtonTapped:" destination="ukf-An-bHv" id="Nol-jX-zCU"/>
</connections>
</barButtonItem>
</navigationItem>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="h5i-dV-ulp" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="111" y="1223"/>
</scene>
<!--Navigation Controller-->
<scene sceneID="URO-wr-v9R">
<objects>
<navigationController id="ZKc-e6-nIH" sceneMemberID="viewController">
<navigationBar key="navigationBar" contentMode="scaleToFill" id="KVe-zJ-eoi">
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="n5a-zF-XJi" kind="relationship" relationship="rootViewController" id="bYs-0z-Wdg"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="tec-gV-cEP" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-694" y="1951"/>
</scene>
<!--Setting Detail Controller-->
<scene sceneID="gNU-f4-Nck">
<objects>
<tableViewController storyboardIdentifier="SettingDetailController" id="14N-Ku-Bzo" customClass="SettingDetailController" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="iqT-QJ-NiQ">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="Cell" id="HbU-X6-hd3">
<rect key="frame" x="0.0" y="56" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="HbU-X6-hd3" id="7F9-VQ-e7x">
<rect key="frame" x="0.0" y="0.0" width="375" height="43"/>
<autoresizingMask key="autoresizingMask"/>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CenterTextCell" textLabel="hMn-IP-zaI" style="IBUITableViewCellStyleDefault" id="n4x-mW-vx6">
<rect key="frame" x="0.0" y="100" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="n4x-mW-vx6" id="V35-DL-d1b">
<rect key="frame" x="0.0" y="0.0" width="375" height="43"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Title" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="hMn-IP-zaI">
<rect key="frame" x="15" y="0.0" width="345" height="43"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
<color key="textColor" red="0.90807330610000003" green="0.29807889459999998" blue="0.135635227" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
</prototypes>
<connections>
<outlet property="dataSource" destination="14N-Ku-Bzo" id="PY8-3N-NrW"/>
<outlet property="delegate" destination="14N-Ku-Bzo" id="yv7-cs-NNP"/>
</connections>
</tableView>
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Szm-cS-BNH" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1562" y="1223"/>
</scene>
<!--Font Size Controller-->
<scene sceneID="ppG-nb-eq1">
<objects>
<tableViewController storyboardIdentifier="FontSizeController" id="PfB-ub-Ykr" customClass="FontSizeController" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" dataMode="static" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="5ku-oq-d7H">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<sections>
<tableViewSection id="rF1-Lx-SEk">
<cells>
<tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="SliderCell" rowHeight="72" id="SLa-Ba-CP7">
<rect key="frame" x="0.0" y="35" width="375" height="72"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="SLa-Ba-CP7" id="wae-rZ-Yje">
<rect key="frame" x="0.0" y="0.0" width="375" height="71"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="85%" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5JF-1m-Xbn">
<rect key="frame" x="8" y="16.5" width="56" height="14.5"/>
<constraints>
<constraint firstAttribute="width" constant="56" id="g2p-Xe-qum"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="115%" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FrC-M5-5Hi">
<rect key="frame" x="258" y="8" width="109" height="31"/>
<constraints>
<constraint firstAttribute="width" constant="109" id="1hC-sS-8rq"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="100" minValue="85" maxValue="115" translatesAutoresizingMaskIntoConstraints="NO" id="Jjc-6Z-vmt">
<rect key="frame" x="24" y="33" width="327" height="31"/>
<connections>
<action selector="sliderTouchUpInside:" destination="PfB-ub-Ykr" eventType="touchUpInside" id="byq-SJ-TrM"/>
</connections>
</slider>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="100%" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vFR-A1-K8v">
<rect key="frame" x="154.5" y="15" width="66" height="17"/>
<constraints>
<constraint firstAttribute="width" constant="66" id="6a4-7S-NHg"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="leading" secondItem="wae-rZ-Yje" secondAttribute="leadingMargin" id="53K-sP-q4A"/>
<constraint firstAttribute="bottomMargin" secondItem="Jjc-6Z-vmt" secondAttribute="bottom" constant="-7.5" id="8zw-sf-eA9"/>
<constraint firstAttribute="centerX" secondItem="vFR-A1-K8v" secondAttribute="centerX" id="9So-R1-ov3"/>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="trailing" secondItem="wae-rZ-Yje" secondAttribute="trailingMargin" id="CdK-Ho-rrd"/>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="top" secondItem="wae-rZ-Yje" secondAttribute="topMargin" constant="5" id="Ivv-a6-E2q"/>
<constraint firstItem="5JF-1m-Xbn" firstAttribute="leading" secondItem="wae-rZ-Yje" secondAttribute="leadingMargin" id="JvB-Yv-sLg"/>
<constraint firstItem="vFR-A1-K8v" firstAttribute="top" secondItem="wae-rZ-Yje" secondAttribute="topMargin" constant="7" id="LeW-aa-Qhc"/>
<constraint firstAttribute="bottomMargin" secondItem="Jjc-6Z-vmt" secondAttribute="bottom" constant="0.5" id="Oc3-hb-bnX"/>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="leading" secondItem="wae-rZ-Yje" secondAttribute="leadingMargin" id="Rcy-lP-R4S"/>
<constraint firstItem="FrC-M5-5Hi" firstAttribute="top" secondItem="wae-rZ-Yje" secondAttribute="topMargin" id="Ryy-1J-ZfK"/>
<constraint firstAttribute="bottomMargin" secondItem="Jjc-6Z-vmt" secondAttribute="bottom" constant="3.5" id="S6C-BA-jWk"/>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="trailing" secondItem="wae-rZ-Yje" secondAttribute="trailingMargin" id="Sf4-2C-wD4"/>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="leading" secondItem="wae-rZ-Yje" secondAttribute="leadingMargin" id="Sh9-Om-Jm1"/>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="trailing" secondItem="wae-rZ-Yje" secondAttribute="trailingMargin" id="TuC-Xa-biD"/>
<constraint firstItem="FrC-M5-5Hi" firstAttribute="trailing" secondItem="wae-rZ-Yje" secondAttribute="trailingMargin" id="W96-Zh-jKb"/>
<constraint firstAttribute="centerX" secondItem="Jjc-6Z-vmt" secondAttribute="centerX" id="We9-zf-Yga"/>
<constraint firstItem="Jjc-6Z-vmt" firstAttribute="leading" secondItem="wae-rZ-Yje" secondAttribute="leadingMargin" constant="18" id="Z9p-rd-VEI"/>
<constraint firstAttribute="bottomMargin" secondItem="Jjc-6Z-vmt" secondAttribute="bottom" constant="-9.5" id="baI-Ke-Gt2"/>
<constraint firstItem="vFR-A1-K8v" firstAttribute="centerY" secondItem="5JF-1m-Xbn" secondAttribute="centerY" id="emI-YG-JIA"/>
<constraint firstItem="5JF-1m-Xbn" firstAttribute="centerY" secondItem="FrC-M5-5Hi" secondAttribute="centerY" id="hc6-j1-O0J"/>
<constraint firstAttribute="trailingMargin" secondItem="Jjc-6Z-vmt" secondAttribute="trailing" constant="18" id="lb8-Rf-hn1"/>
<constraint firstAttribute="centerY" secondItem="Jjc-6Z-vmt" secondAttribute="centerY" constant="-0.75" id="z4Q-Y8-aKv"/>
</constraints>
<variation key="default">
<mask key="constraints">
<exclude reference="53K-sP-q4A"/>
<exclude reference="8zw-sf-eA9"/>
<exclude reference="CdK-Ho-rrd"/>
<exclude reference="Ivv-a6-E2q"/>
<exclude reference="Rcy-lP-R4S"/>
<exclude reference="S6C-BA-jWk"/>
<exclude reference="Sf4-2C-wD4"/>
<exclude reference="Sh9-Om-Jm1"/>
<exclude reference="TuC-Xa-biD"/>
<exclude reference="We9-zf-Yga"/>
<exclude reference="baI-Ke-Gt2"/>
<exclude reference="z4Q-Y8-aKv"/>
</mask>
</variation>
</tableViewCellContentView>
</tableViewCell>
</cells>
</tableViewSection>
</sections>
<connections>
<outlet property="dataSource" destination="PfB-ub-Ykr" id="2q8-TX-Uo7"/>
<outlet property="delegate" destination="PfB-ub-Ykr" id="MlX-I2-DCD"/>
</connections>
</tableView>
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
<connections>
<outlet property="slider" destination="Jjc-6Z-vmt" id="TOV-gS-OkD"/>
</connections>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="nRf-7x-ELg" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="858" y="1223"/>
</scene>
<!--Table View Controller-->
<scene sceneID="LAT-io-xJo">
<objects>
<tableViewController id="n5a-zF-XJi" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="7YT-lL-VBI">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="5si-za-Ec3">
<rect key="frame" x="0.0" y="28" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="5si-za-Ec3" id="NWd-0E-hJR">
<rect key="frame" x="0.0" y="0.0" width="375" height="43"/>
<autoresizingMask key="autoresizingMask"/>
</tableViewCellContentView>
</tableViewCell>
</prototypes>
<connections>
<outlet property="dataSource" destination="n5a-zF-XJi" id="OLB-Bf-erK"/>
<outlet property="delegate" destination="n5a-zF-XJi" id="16q-x8-nbu"/>
</connections>
</tableView>
<navigationItem key="navigationItem" id="qnw-Ud-PCp">
<barButtonItem key="leftBarButtonItem" image="Cross" id="fhD-zX-r9V"/>
</navigationItem>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dHY-q8-NkA" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="110" y="1951"/>
</scene>
<!--Web View Controller Old-->
<scene sceneID="ovP-iw-7D0">
<objects>
<viewController storyboardIdentifier="WebViewControllerOld" automaticallyAdjustsScrollViewInsets="NO" id="Ua4-kV-xc7" customClass="WebViewControllerOld" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="0oM-Rx-OPo"/>
<viewControllerLayoutGuide type="bottom" id="Dof-V3-6P5"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="IWt-pE-0vK">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<webView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xHD-1m-bRe">
<rect key="frame" x="-4" y="64" width="383" height="603"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</webView>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="xHD-1m-bRe" firstAttribute="leading" secondItem="IWt-pE-0vK" secondAttribute="leadingMargin" constant="-20" id="8GP-7p-Bvn"/>
<constraint firstItem="xHD-1m-bRe" firstAttribute="top" secondItem="0oM-Rx-OPo" secondAttribute="bottom" id="dBS-LZ-3KV"/>
<constraint firstAttribute="trailingMargin" secondItem="xHD-1m-bRe" secondAttribute="trailing" constant="-20" id="xNI-H4-PXu"/>
<constraint firstItem="Dof-V3-6P5" firstAttribute="top" secondItem="xHD-1m-bRe" secondAttribute="bottom" id="xcW-R6-o8D"/>
</constraints>
</view>
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
<connections>
<outlet property="webView" destination="xHD-1m-bRe" id="w45-FL-Wu3"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="oLJ-aA-Gy7" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="2252" y="1223"/>
</scene>
</scenes>
<resources>
<image name="Cross" width="21" height="21"/>
</resources>
</document>

View File

@ -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 = "<group>"; };
970A2A211DD562CB0078BB7C /* BookOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BookOperations.swift; sourceTree = "<group>"; };
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 = "<group>"; };
970E7F781DA003FA00741290 /* WebViewControllerOld.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebViewControllerOld.swift; sourceTree = "<group>"; };
970E7F7A1DA0069600741290 /* FontSizeController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FontSizeController.swift; sourceTree = "<group>"; };
970E7F7C1DA0305000741290 /* Alerts.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Alerts.swift; sourceTree = "<group>"; };
970E7F7F1DA0305000741290 /* WelcomeController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WelcomeController.swift; sourceTree = "<group>"; };
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 = "<group>"; };
973DD40D1D343F2F009D45DB /* libxapian.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libxapian.a; path = Kiwix/libkiwix/iOS/libxapian.a; sourceTree = "<group>"; };
973DD40E1D343F2F009D45DB /* libzim.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libzim.a; path = Kiwix/libkiwix/iOS/libzim.a; sourceTree = "<group>"; };
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 = "<group>"; };
9757C74B1E106958008A9469 /* BackgroundDownload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BackgroundDownload.swift; sourceTree = "<group>"; };
@ -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 = "<group>"; };
976B86D71DDA0C7E00FA7FD1 /* SearchContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchContainer.swift; sourceTree = "<group>"; };
976C1DCA1E2FD5FC005EDEC4 /* TableOfContentsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableOfContentsController.swift; sourceTree = "<group>"; };
976C1DCD1E30000E005EDEC4 /* SettingsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsController.swift; sourceTree = "<group>"; };
976C1DCF1E3000B6005EDEC4 /* Setting.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Setting.storyboard; sourceTree = "<group>"; };
976C1DD11E3000F1005EDEC4 /* SettingController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingController.swift; sourceTree = "<group>"; };
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 = "<group>"; };
9779C31B1D4575AE0064CC8E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@ -585,23 +579,10 @@
name = Others;
sourceTree = "<group>";
};
976C1DCC1E2FFFF3005EDEC4 /* old */ = {
isa = PBXGroup;
children = (
970E7F761D9DBEA900741290 /* SettingController.swift */,
970E7F7A1DA0069600741290 /* FontSizeController.swift */,
973DD4271D36E3E4009D45DB /* SettingDetailController.swift */,
970E7F781DA003FA00741290 /* WebViewControllerOld.swift */,
);
name = old;
sourceTree = "<group>";
};
9771DC4B1C37278E009ECFF0 /* Setting */ = {
isa = PBXGroup;
children = (
9787BC1F1D9318080030D311 /* Others */,
976C1DCC1E2FFFF3005EDEC4 /* old */,
976C1DCD1E30000E005EDEC4 /* SettingsController.swift */,
976C1DD11E3000F1005EDEC4 /* SettingController.swift */,
);
path = Setting;
sourceTree = "<group>";
@ -632,8 +613,7 @@
973A5C911DEA3F5600C7804C /* CoreDataTableBaseController.swift */,
970E7F7F1DA0305000741290 /* WelcomeController.swift */,
);
name = Others;
path = ../Others;
path = Others;
sourceTree = "<group>";
};
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;