Search Inclusion selection + Main combined interface

This commit is contained in:
Chris Li 2016-06-20 14:59:33 -04:00
parent 89ff059ff8
commit cd134e785e
19 changed files with 186 additions and 118 deletions

View File

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "success.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "success-1.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -10,7 +10,7 @@ import UIKit
import CoreData import CoreData
import DZNEmptyDataSet import DZNEmptyDataSet
class LibraryDownloadTBVC: UITableViewController, NSFetchedResultsControllerDelegate, BookTableCellDelegate, DownloadProgressReporting, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate { class LibraryDownloadTBVC: UITableViewController, NSFetchedResultsControllerDelegate, TableCellDelegate, DownloadProgressReporting, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
// MARK: - Override // MARK: - Override
@ -38,9 +38,9 @@ class LibraryDownloadTBVC: UITableViewController, NSFetchedResultsControllerDele
Network.sharedInstance.delegate = nil Network.sharedInstance.delegate = nil
} }
// MARK: - BookTableCellDelegate // MARK: - TableCellDelegate
func didTapOnAccessoryViewForCell(cell: BookTableCell) { func didTapOnAccessoryViewForCell(cell: UITableViewCell) {
guard let indexPath = tableView.indexPathForCell(cell), guard let indexPath = tableView.indexPathForCell(cell),
let downloadTask = fetchedResultController.objectAtIndexPath(indexPath) as? DownloadTask, let downloadTask = fetchedResultController.objectAtIndexPath(indexPath) as? DownloadTask,
let book = downloadTask.book else {return} let book = downloadTask.book else {return}

View File

@ -11,7 +11,7 @@ import CoreData
import DZNEmptyDataSet import DZNEmptyDataSet
import DateTools import DateTools
class LibraryOnlineTBVC: UITableViewController, NSFetchedResultsControllerDelegate, BookTableCellDelegate, LTBarButtonItemDelegate, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate { class LibraryOnlineTBVC: UITableViewController, NSFetchedResultsControllerDelegate, TableCellDelegate, LTBarButtonItemDelegate, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
var booksShowingDetail = Set<Book>() var booksShowingDetail = Set<Book>()
var messsageLabelRefreshTimer: NSTimer? var messsageLabelRefreshTimer: NSTimer?
@ -44,9 +44,9 @@ class LibraryOnlineTBVC: UITableViewController, NSFetchedResultsControllerDelega
} }
// MARK: - BookTableCellDelegate // MARK: - TableCellDelegate
func didTapOnAccessoryViewForCell(cell: BookTableCell) { func didTapOnAccessoryViewForCell(cell: UITableViewCell) {
guard let indexPath = tableView.indexPathForCell(cell), guard let indexPath = tableView.indexPathForCell(cell),
let book = fetchedResultController.objectAtIndexPath(indexPath) as? Book else {return} let book = fetchedResultController.objectAtIndexPath(indexPath) as? Book else {return}
switch book.spaceState { switch book.spaceState {

View File

@ -55,17 +55,35 @@ class LangLocalCVC: UIViewController, UICollectionViewDataSource, UICollectionVi
return CGSizeMake(size.width + 30, height) return CGSizeMake(size.width + 30, height)
} }
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
let numberOfItems = collectionView.numberOfItemsInSection(section)
var width: CGFloat = 0
for item in 0..<numberOfItems {
let size = self.collectionView(collectionView, layout: collectionViewLayout, sizeForItemAtIndexPath: NSIndexPath(forItem: item, inSection: section))
width += size.width
}
width += 10.0 * CGFloat(numberOfItems - 1)
let hInset = max((collectionView.frame.width - width) / 2, 0)
return UIEdgeInsetsMake(0, hInset, 0, hInset)
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat {
return 10
}
// MARK: - Fetched Result Controller // MARK: - Fetched Result Controller
var blockOperation = NSBlockOperation() var blockOperation = NSBlockOperation()
let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
lazy var fetchedResultController: NSFetchedResultsController = { lazy var fetchedResultController: NSFetchedResultsController = {
let fetchRequest = NSFetchRequest(entityName: "Language") let fetchRequest = NSFetchRequest(entityName: "Language")
fetchRequest.fetchBatchSize = 20
let descriptor = NSSortDescriptor(key: "name", ascending: true) let descriptor = NSSortDescriptor(key: "name", ascending: true)
let predicate = NSPredicate(format: "books.isLocal CONTAINS true") let predicate = NSPredicate(format: "books.isLocal CONTAINS true")
fetchRequest.sortDescriptors = [descriptor] fetchRequest.sortDescriptors = [descriptor]
fetchRequest.predicate = predicate fetchRequest.predicate = predicate
fetchRequest.fetchBatchSize = 20
fetchRequest.fetchLimit = 5 fetchRequest.fetchLimit = 5
let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext, sectionNameKeyPath: nil, cacheName: "LangLocalFRC") let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext, sectionNameKeyPath: nil, cacheName: "LangLocalFRC")
fetchedResultsController.delegate = self fetchedResultsController.delegate = self

View File

@ -9,7 +9,7 @@
import UIKit import UIKit
import CoreData import CoreData
class SearchScopeSelectTBVC: UITableViewController, NSFetchedResultsControllerDelegate { class SearchScopeSelectTBVC: UITableViewController, TableCellDelegate, NSFetchedResultsControllerDelegate {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
@ -24,11 +24,19 @@ class SearchScopeSelectTBVC: UITableViewController, NSFetchedResultsControllerDe
let titleDescriptor = NSSortDescriptor(key: "title", ascending: true) let titleDescriptor = NSSortDescriptor(key: "title", ascending: true)
fetchRequest.sortDescriptors = [langDescriptor, titleDescriptor] fetchRequest.sortDescriptors = [langDescriptor, titleDescriptor]
fetchRequest.predicate = NSPredicate(format: "isLocal == true") fetchRequest.predicate = NSPredicate(format: "isLocal == true")
let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext, sectionNameKeyPath: nil, cacheName: "ScopeFRC") let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext, sectionNameKeyPath: "language.name", cacheName: "ScopeFRC")
fetchedResultsController.delegate = self fetchedResultsController.delegate = self
fetchedResultsController.performFetch(deleteCache: false) fetchedResultsController.performFetch(deleteCache: false)
return fetchedResultsController return fetchedResultsController
}() }()
// MARK: - Table Cell Delegate
func didTapOnAccessoryViewForCell(cell: UITableViewCell) {
guard let indexPath = tableView.indexPathForCell(cell),
let book = fetchedResultController.objectAtIndexPath(indexPath) as? Book else {return}
book.includeInSearch = !book.includeInSearch
}
// MARK: - Table view data source // MARK: - Table view data source
@ -49,24 +57,22 @@ class SearchScopeSelectTBVC: UITableViewController, NSFetchedResultsControllerDe
func configureCell(cell: UITableViewCell, atIndexPath indexPath: NSIndexPath) { func configureCell(cell: UITableViewCell, atIndexPath indexPath: NSIndexPath) {
guard let book = fetchedResultController.objectAtIndexPath(indexPath) as? Book else {return} guard let book = fetchedResultController.objectAtIndexPath(indexPath) as? Book else {return}
guard let cell = cell as? BasicBookCell else {return} guard let cell = cell as? CheckMarkBookCell else {return}
cell.delegate = self
cell.titleLabel.text = book.title cell.titleLabel.text = book.title
cell.subtitleLabel.text = book.detailedDescription cell.subtitleLabel.text = book.detailedDescription
cell.favIcon.image = UIImage(data: book.favIcon ?? NSData()) cell.favIcon.image = UIImage(data: book.favIcon ?? NSData())
cell.hasPic = book.hasPic cell.hasPic = book.hasPic
cell.hasIndex = book.hasIndex cell.hasIndex = book.hasIndex
cell.isChecked = book.includeInSearch
cell.accessoryType = book.includeInSearch ? .Checkmark : .None
} }
override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? { override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
if section == 0 { guard tableView.numberOfSections > 1 else {return nil}
return NSLocalizedString("Books included in search", comment: "Search Scope Control") guard let languageName = fetchedResultController.sections?[section].name else {return nil}
} else { return languageName
return ""
}
} }
// MARK: Table view delegate // MARK: Table view delegate
@ -83,8 +89,10 @@ class SearchScopeSelectTBVC: UITableViewController, NSFetchedResultsControllerDe
} }
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
guard let book = fetchedResultController.objectAtIndexPath(indexPath) as? Book else {return} guard let mainVC = parentViewController?.parentViewController as? MainVC,
book.includeInSearch = !book.includeInSearch let book = fetchedResultController.objectAtIndexPath(indexPath) as? Book else {return}
mainVC.hideSearch()
mainVC.loadMainPage(book)
tableView.deselectRowAtIndexPath(indexPath, animated: true) tableView.deselectRowAtIndexPath(indexPath, animated: true)
} }

View File

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

View File

@ -255,6 +255,7 @@
<!--Search Local BooksCVC--> <!--Search Local BooksCVC-->
<scene sceneID="tv8-MB-WTH"> <scene sceneID="tv8-MB-WTH">
<objects> <objects>
<placeholder placeholderIdentifier="IBFirstResponder" id="ja4-Ik-XIR" userLabel="First Responder" sceneMemberID="firstResponder"/>
<viewController storyboardIdentifier="SearchLocalBooksCVC" id="AuN-RP-iDn" customClass="SearchLocalBooksCVC" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController"> <viewController storyboardIdentifier="SearchLocalBooksCVC" id="AuN-RP-iDn" customClass="SearchLocalBooksCVC" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides> <layoutGuides>
<viewControllerLayoutGuide type="top" id="Tky-oO-aD1"/> <viewControllerLayoutGuide type="top" id="Tky-oO-aD1"/>
@ -359,7 +360,6 @@
<outlet property="collectionView" destination="E2T-US-f5Z" id="DgE-V1-W8m"/> <outlet property="collectionView" destination="E2T-US-f5Z" id="DgE-V1-W8m"/>
</connections> </connections>
</viewController> </viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="ja4-Ik-XIR" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects> </objects>
<point key="canvasLocation" x="3985" y="-979"/> <point key="canvasLocation" x="3985" y="-979"/>
</scene> </scene>
@ -370,24 +370,17 @@
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="5uZ-E9-jau"> <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="5uZ-E9-jau">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/> <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="calibratedRGB"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<containerView key="tableHeaderView" opaque="NO" contentMode="scaleToFill" id="pjd-fK-JNs">
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<connections>
<segue destination="x8e-ps-NUY" kind="embed" id="4Hi-ul-aCg"/>
</connections>
</containerView>
<prototypes> <prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="Cell" id="QXK-je-ISm" customClass="BasicBookCell" customModule="Kiwix"> <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="Cell" id="QXK-je-ISm" customClass="CheckMarkBookCell" customModule="Kiwix">
<rect key="frame" x="0.0" y="72" width="600" height="44"/> <rect key="frame" x="0.0" y="28" width="600" height="44"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="QXK-je-ISm" id="bj5-Xo-SR6"> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="QXK-je-ISm" id="bj5-Xo-SR6">
<rect key="frame" x="0.0" y="0.0" width="600" height="43.5"/> <rect key="frame" x="0.0" y="0.0" width="600" height="43.5"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="tailTruncation" minimumFontSize="8" adjustsLetterSpacingToFitWidth="YES" translatesAutoresizingMaskIntoConstraints="NO" id="g8b-RO-czj"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="tailTruncation" minimumFontSize="8" adjustsLetterSpacingToFitWidth="YES" translatesAutoresizingMaskIntoConstraints="NO" id="g8b-RO-czj">
<rect key="frame" x="59" y="6" width="533" height="20"/> <rect key="frame" x="59" y="6" width="501" height="20"/>
<constraints> <constraints>
<constraint firstAttribute="height" constant="19.5" id="Q5R-Kr-GZZ"/> <constraint firstAttribute="height" constant="19.5" id="Q5R-Kr-GZZ"/>
</constraints> </constraints>
@ -403,7 +396,7 @@
</constraints> </constraints>
</imageView> </imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lna-QC-TaS"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lna-QC-TaS">
<rect key="frame" x="59" y="26" width="533" height="12"/> <rect key="frame" x="59" y="26" width="501" height="12"/>
<fontDescription key="fontDescription" type="system" pointSize="11"/> <fontDescription key="fontDescription" type="system" pointSize="11"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
@ -443,6 +436,14 @@
</mask> </mask>
</variation> </variation>
</view> </view>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Check" highlightedImage="CheckBlue" translatesAutoresizingMaskIntoConstraints="NO" id="DBc-uZ-XJ7" customClass="LargeHitZoneImageView" customModule="Kiwix" customModuleProvider="target">
<rect key="frame" x="568" y="10" width="24" height="24"/>
<color key="tintColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" constant="24" id="1cX-LF-tWy"/>
<constraint firstAttribute="width" constant="24" id="EiB-qo-N6J"/>
</constraints>
</imageView>
</subviews> </subviews>
<constraints> <constraints>
<constraint firstItem="PGj-Uz-NTF" firstAttribute="leading" secondItem="bxk-BM-3An" secondAttribute="trailing" constant="4" id="3B6-jN-jbK"/> <constraint firstItem="PGj-Uz-NTF" firstAttribute="leading" secondItem="bxk-BM-3An" secondAttribute="trailing" constant="4" id="3B6-jN-jbK"/>
@ -451,16 +452,20 @@
<constraint firstItem="PGj-Uz-NTF" firstAttribute="height" secondItem="bj5-Xo-SR6" secondAttribute="height" multiplier="0.09" id="9ds-vD-nqD"/> <constraint firstItem="PGj-Uz-NTF" firstAttribute="height" secondItem="bj5-Xo-SR6" secondAttribute="height" multiplier="0.09" id="9ds-vD-nqD"/>
<constraint firstItem="TmV-G9-g51" firstAttribute="top" secondItem="g8b-RO-czj" secondAttribute="top" id="AcV-0E-WGd"/> <constraint firstItem="TmV-G9-g51" firstAttribute="top" secondItem="g8b-RO-czj" secondAttribute="top" id="AcV-0E-WGd"/>
<constraint firstAttribute="bottomMargin" secondItem="Lna-QC-TaS" secondAttribute="bottom" constant="-2.5" id="BQQ-R5-5fd"/> <constraint firstAttribute="bottomMargin" secondItem="Lna-QC-TaS" secondAttribute="bottom" constant="-2.5" id="BQQ-R5-5fd"/>
<constraint firstItem="DBc-uZ-XJ7" firstAttribute="leading" secondItem="g8b-RO-czj" secondAttribute="trailing" constant="8" id="HIF-JG-enG"/>
<constraint firstItem="9y6-m2-QTb" firstAttribute="top" secondItem="PGj-Uz-NTF" secondAttribute="bottom" id="LrR-7P-oLk"/> <constraint firstItem="9y6-m2-QTb" firstAttribute="top" secondItem="PGj-Uz-NTF" secondAttribute="bottom" id="LrR-7P-oLk"/>
<constraint firstItem="TmV-G9-g51" firstAttribute="leading" secondItem="bxk-BM-3An" secondAttribute="trailing" constant="4" id="RKY-EX-UIm"/> <constraint firstItem="TmV-G9-g51" firstAttribute="leading" secondItem="bxk-BM-3An" secondAttribute="trailing" constant="4" id="RKY-EX-UIm"/>
<constraint firstItem="bxk-BM-3An" firstAttribute="leading" secondItem="bj5-Xo-SR6" secondAttribute="leadingMargin" constant="-2" id="TaI-4N-dRQ"/> <constraint firstItem="bxk-BM-3An" firstAttribute="leading" secondItem="bj5-Xo-SR6" secondAttribute="leadingMargin" constant="-2" id="TaI-4N-dRQ"/>
<constraint firstItem="bxk-BM-3An" firstAttribute="centerY" secondItem="bj5-Xo-SR6" secondAttribute="centerY" id="ZNz-3g-dex"/> <constraint firstItem="bxk-BM-3An" firstAttribute="centerY" secondItem="bj5-Xo-SR6" secondAttribute="centerY" id="ZNz-3g-dex"/>
<constraint firstAttribute="trailingMargin" secondItem="DBc-uZ-XJ7" secondAttribute="trailing" id="cJt-JY-sHw"/>
<constraint firstItem="PGj-Uz-NTF" firstAttribute="centerY" secondItem="bj5-Xo-SR6" secondAttribute="centerY" id="fAh-oJ-ziK"/> <constraint firstItem="PGj-Uz-NTF" firstAttribute="centerY" secondItem="bj5-Xo-SR6" secondAttribute="centerY" id="fAh-oJ-ziK"/>
<constraint firstItem="PGj-Uz-NTF" firstAttribute="top" secondItem="TmV-G9-g51" secondAttribute="bottom" id="jK9-II-eaW"/> <constraint firstItem="PGj-Uz-NTF" firstAttribute="top" secondItem="TmV-G9-g51" secondAttribute="bottom" id="jK9-II-eaW"/>
<constraint firstItem="Lna-QC-TaS" firstAttribute="leading" secondItem="9y6-m2-QTb" secondAttribute="trailing" constant="4" id="kfr-yj-Ics"/> <constraint firstItem="Lna-QC-TaS" firstAttribute="leading" secondItem="9y6-m2-QTb" secondAttribute="trailing" constant="4" id="kfr-yj-Ics"/>
<constraint firstItem="Lna-QC-TaS" firstAttribute="top" secondItem="g8b-RO-czj" secondAttribute="bottom" id="oog-7o-e6U"/> <constraint firstItem="Lna-QC-TaS" firstAttribute="top" secondItem="g8b-RO-czj" secondAttribute="bottom" id="oog-7o-e6U"/>
<constraint firstItem="DBc-uZ-XJ7" firstAttribute="centerY" secondItem="bj5-Xo-SR6" secondAttribute="centerY" id="sDT-gW-28b"/>
<constraint firstItem="g8b-RO-czj" firstAttribute="leading" secondItem="TmV-G9-g51" secondAttribute="trailing" constant="4" id="sRF-jC-X66"/> <constraint firstItem="g8b-RO-czj" firstAttribute="leading" secondItem="TmV-G9-g51" secondAttribute="trailing" constant="4" id="sRF-jC-X66"/>
<constraint firstItem="9y6-m2-QTb" firstAttribute="top" secondItem="Lna-QC-TaS" secondAttribute="top" id="uBT-QM-ups"/> <constraint firstItem="9y6-m2-QTb" firstAttribute="top" secondItem="Lna-QC-TaS" secondAttribute="top" id="uBT-QM-ups"/>
<constraint firstItem="DBc-uZ-XJ7" firstAttribute="leading" secondItem="Lna-QC-TaS" secondAttribute="trailing" constant="8" id="zBV-hr-nJW"/>
</constraints> </constraints>
<variation key="default"> <variation key="default">
<mask key="constraints"> <mask key="constraints">
@ -472,15 +477,18 @@
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<constraints> <constraints>
<constraint firstItem="bxk-BM-3An" firstAttribute="top" secondItem="QXK-je-ISm" secondAttribute="top" constant="6" id="NHP-qf-G8F"/> <constraint firstItem="bxk-BM-3An" firstAttribute="top" secondItem="QXK-je-ISm" secondAttribute="top" constant="6" id="NHP-qf-G8F"/>
<constraint firstAttribute="trailing" secondItem="Lna-QC-TaS" secondAttribute="trailing" constant="8" id="RP5-NQ-eSs"/> <constraint firstAttribute="trailing" secondItem="Lna-QC-TaS" secondAttribute="trailing" constant="30" id="RP5-NQ-eSs"/>
<constraint firstAttribute="trailing" secondItem="g8b-RO-czj" secondAttribute="trailing" constant="8" id="ij7-SU-k1Q"/> <constraint firstAttribute="trailing" secondItem="g8b-RO-czj" secondAttribute="trailing" constant="30" id="ij7-SU-k1Q"/>
</constraints> </constraints>
<variation key="default"> <variation key="default">
<mask key="constraints"> <mask key="constraints">
<exclude reference="NHP-qf-G8F"/> <exclude reference="NHP-qf-G8F"/>
<exclude reference="ij7-SU-k1Q"/>
<exclude reference="RP5-NQ-eSs"/>
</mask> </mask>
</variation> </variation>
<connections> <connections>
<outlet property="accessoryImageView" destination="DBc-uZ-XJ7" id="Il3-71-PF9"/>
<outlet property="favIcon" destination="bxk-BM-3An" id="iHS-PU-xLX"/> <outlet property="favIcon" destination="bxk-BM-3An" id="iHS-PU-xLX"/>
<outlet property="hasIndexIndicator" destination="9y6-m2-QTb" id="7MF-et-ko3"/> <outlet property="hasIndexIndicator" destination="9y6-m2-QTb" id="7MF-et-ko3"/>
<outlet property="hasPicIndicator" destination="TmV-G9-g51" id="kKT-Lj-Ze1"/> <outlet property="hasPicIndicator" destination="TmV-G9-g51" id="kKT-Lj-Ze1"/>
@ -502,6 +510,7 @@
<!--Search HistoryTBVC--> <!--Search HistoryTBVC-->
<scene sceneID="9Nv-K7-Ksi"> <scene sceneID="9Nv-K7-Ksi">
<objects> <objects>
<placeholder placeholderIdentifier="IBFirstResponder" id="Gge-hI-22O" userLabel="First Responder" sceneMemberID="firstResponder"/>
<tableViewController storyboardIdentifier="SearchHistoryTBVC" id="c60-LS-VO8" customClass="SearchHistoryTBVC" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController"> <tableViewController storyboardIdentifier="SearchHistoryTBVC" id="c60-LS-VO8" customClass="SearchHistoryTBVC" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="JbJ-2B-1Mr"> <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="JbJ-2B-1Mr">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/> <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
@ -533,7 +542,6 @@
</connections> </connections>
</tableView> </tableView>
</tableViewController> </tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Gge-hI-22O" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects> </objects>
<point key="canvasLocation" x="4643" y="-979"/> <point key="canvasLocation" x="4643" y="-979"/>
</scene> </scene>
@ -978,6 +986,7 @@
<!--Search Tab Controller--> <!--Search Tab Controller-->
<scene sceneID="ELM-OI-Gks"> <scene sceneID="ELM-OI-Gks">
<objects> <objects>
<placeholder placeholderIdentifier="IBFirstResponder" id="wva-Fk-hmb" userLabel="First Responder" sceneMemberID="firstResponder"/>
<viewController id="9gZ-CS-CgY" customClass="SearchTabController" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController"> <viewController id="9gZ-CS-CgY" customClass="SearchTabController" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides> <layoutGuides>
<viewControllerLayoutGuide type="top" id="X4e-wR-a2C"/> <viewControllerLayoutGuide type="top" id="X4e-wR-a2C"/>
@ -1098,7 +1107,6 @@
<outlet property="tabsContainer" destination="IhM-7L-w7W" id="PLg-qS-ecM"/> <outlet property="tabsContainer" destination="IhM-7L-w7W" id="PLg-qS-ecM"/>
</connections> </connections>
</viewController> </viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="wva-Fk-hmb" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects> </objects>
<point key="canvasLocation" x="3329" y="-979"/> <point key="canvasLocation" x="3329" y="-979"/>
</scene> </scene>
@ -1107,11 +1115,11 @@
<objects> <objects>
<viewController id="x8e-ps-NUY" customClass="LangLocalCVC" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController"> <viewController id="x8e-ps-NUY" customClass="LangLocalCVC" customModule="Kiwix" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="HQ0-6h-SSN"> <view key="view" contentMode="scaleToFill" id="HQ0-6h-SSN">
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/> <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="oLp-jV-WAb"> <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="oLp-jV-WAb">
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/> <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="SEj-84-HqB"> <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="SEj-84-HqB">
<size key="itemSize" width="102" height="42"/> <size key="itemSize" width="102" height="42"/>
@ -1121,7 +1129,7 @@
</collectionViewFlowLayout> </collectionViewFlowLayout>
<cells> <cells>
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="Cell" id="yvP-cy-f4q" customClass="LocalLangCell" customModule="Kiwix" customModuleProvider="target"> <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="Cell" id="yvP-cy-f4q" customClass="LocalLangCell" customModule="Kiwix" customModuleProvider="target">
<rect key="frame" x="0.0" y="1" width="102" height="42"/> <rect key="frame" x="0.0" y="0.0" width="102" height="42"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
<rect key="frame" x="0.0" y="0.0" width="102" height="42"/> <rect key="frame" x="0.0" y="0.0" width="102" height="42"/>
@ -1167,6 +1175,8 @@
</scene> </scene>
</scenes> </scenes>
<resources> <resources>
<image name="Check" width="21" height="21"/>
<image name="CheckBlue" width="21" height="21"/>
<image name="DownArrow" width="21" height="21"/> <image name="DownArrow" width="21" height="21"/>
<image name="History" width="21" height="21"/> <image name="History" width="21" height="21"/>
<image name="MainPage" width="21" height="21"/> <image name="MainPage" width="21" height="21"/>

View File

@ -1,19 +0,0 @@
//
// SearchResultCell.swift
// Kiwix
//
// Created by Chris Li on 8/13/15.
// Copyright © 2015 Chris Li. All rights reserved.
//
import UIKit
class ArticleCell: UITableViewCell {
@IBOutlet weak var favIcon: UIImageView!
@IBOutlet weak var hasPicIndicator: UIView!
@IBOutlet weak var titleLabel: UILabel!
}
class ArticleSnippetCell: ArticleCell {
@IBOutlet weak var snippetLabel: UILabel!
}

View File

@ -1,23 +0,0 @@
//
// BookCollectionCell.swift
// Kiwix
//
// Created by Chris Li on 1/31/16.
// Copyright © 2016 Chris. All rights reserved.
//
import UIKit
class BookCollectionCell: UICollectionViewCell, UIGestureRecognizerDelegate {
@IBOutlet weak var favIcon: UIImageView!
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var languageLabel: UILabel!
@IBOutlet weak var dateLabel: UILabel!
override func awakeFromNib() {
favIcon.layer.cornerRadius = 4.0
favIcon.layer.masksToBounds = true
}
}

View File

@ -17,3 +17,16 @@ class LocalLangCell: UICollectionViewCell {
backgroundColor = UIColor.themeColor backgroundColor = UIColor.themeColor
} }
} }
class BookCollectionCell: UICollectionViewCell, UIGestureRecognizerDelegate {
@IBOutlet weak var favIcon: UIImageView!
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var languageLabel: UILabel!
@IBOutlet weak var dateLabel: UILabel!
override func awakeFromNib() {
favIcon.layer.cornerRadius = 4.0
favIcon.layer.masksToBounds = true
}
}

View File

@ -8,8 +8,9 @@
import UIKit import UIKit
// MARK: - Normal Cells // MARK: - Book Cells
/* Book Cell With P & I indicator */
class BasicBookCell: UITableViewCell { class BasicBookCell: UITableViewCell {
private let hasPicIndicatorOrange = UIColor(red: 1, green: 0.5, blue: 0, alpha: 1) private let hasPicIndicatorOrange = UIColor(red: 1, green: 0.5, blue: 0, alpha: 1)
private let hasIndexIndicatorBlue = UIColor(red: 0.304706, green: 0.47158, blue: 1, alpha: 1) private let hasIndexIndicatorBlue = UIColor(red: 0.304706, green: 0.47158, blue: 1, alpha: 1)
@ -40,6 +41,28 @@ class BasicBookCell: UITableViewCell {
} }
} }
/* Book Cell With P & I indicator, a check mark on the right */
class CheckMarkBookCell: BasicBookCell {
@IBOutlet weak var accessoryImageView: LargeHitZoneImageView!
weak var delegate: TableCellDelegate?
override func awakeFromNib() {
super.awakeFromNib()
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(CheckMarkBookCell.handleTap))
accessoryImageView.addGestureRecognizer(tapGestureRecognizer)
}
var isChecked: Bool = false {
didSet {
accessoryImageView.highlighted = isChecked
}
}
func handleTap() {
self.delegate?.didTapOnAccessoryViewForCell(self)
}
}
class LocalBookCell: UITableViewCell { class LocalBookCell: UITableViewCell {
@IBOutlet weak var favIcon: UIImageView! @IBOutlet weak var favIcon: UIImageView!
@IBOutlet weak var titleLabel: UILabel! @IBOutlet weak var titleLabel: UILabel!
@ -72,7 +95,7 @@ class BookTableCell: UITableViewCell {
@IBOutlet weak var titleLabel: UILabel! @IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var subtitleLabel: UILabel! @IBOutlet weak var subtitleLabel: UILabel!
@IBOutlet weak var accessoryImageView: LargeHitZoneImageView! @IBOutlet weak var accessoryImageView: LargeHitZoneImageView!
weak var delegate: BookTableCellDelegate? weak var delegate: TableCellDelegate?
var accessoryImageTintColor: UIColor? { var accessoryImageTintColor: UIColor? {
didSet { didSet {
@ -113,8 +136,20 @@ class BookTableCell: UITableViewCell {
} }
} }
// MARK: - Article Cell
class ArticleCell: UITableViewCell {
@IBOutlet weak var favIcon: UIImageView!
@IBOutlet weak var hasPicIndicator: UIView!
@IBOutlet weak var titleLabel: UILabel!
}
class ArticleSnippetCell: ArticleCell {
@IBOutlet weak var snippetLabel: UILabel!
}
// MARK: - Protocol // MARK: - Protocol
protocol BookTableCellDelegate: class { protocol TableCellDelegate: class {
func didTapOnAccessoryViewForCell(cell: BookTableCell) func didTapOnAccessoryViewForCell(cell: UITableViewCell)
} }

View File

@ -66,10 +66,8 @@
971A101D1D0228E8007FC62C /* adjustlayoutiPad.js in Resources */ = {isa = PBXBuildFile; fileRef = 971A101A1D0228E8007FC62C /* adjustlayoutiPad.js */; }; 971A101D1D0228E8007FC62C /* adjustlayoutiPad.js in Resources */ = {isa = PBXBuildFile; fileRef = 971A101A1D0228E8007FC62C /* adjustlayoutiPad.js */; };
971A101E1D0228E8007FC62C /* adjustlayoutiPhone.js in Resources */ = {isa = PBXBuildFile; fileRef = 971A101B1D0228E8007FC62C /* adjustlayoutiPhone.js */; }; 971A101E1D0228E8007FC62C /* adjustlayoutiPhone.js in Resources */ = {isa = PBXBuildFile; fileRef = 971A101B1D0228E8007FC62C /* adjustlayoutiPhone.js */; };
971A101F1D0228E8007FC62C /* getTableOfContents.js in Resources */ = {isa = PBXBuildFile; fileRef = 971A101C1D0228E8007FC62C /* getTableOfContents.js */; }; 971A101F1D0228E8007FC62C /* getTableOfContents.js in Resources */ = {isa = PBXBuildFile; fileRef = 971A101C1D0228E8007FC62C /* getTableOfContents.js */; };
971A102B1D022AD5007FC62C /* ArticleCells.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10231D022AD5007FC62C /* ArticleCells.swift */; };
971A102C1D022AD5007FC62C /* BarButtonItems.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10241D022AD5007FC62C /* BarButtonItems.swift */; }; 971A102C1D022AD5007FC62C /* BarButtonItems.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10241D022AD5007FC62C /* BarButtonItems.swift */; };
971A102D1D022AD5007FC62C /* BookCollectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10251D022AD5007FC62C /* BookCollectionCell.swift */; }; 971A102E1D022AD5007FC62C /* TableViewCells.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10261D022AD5007FC62C /* TableViewCells.swift */; };
971A102E1D022AD5007FC62C /* BookTableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10261D022AD5007FC62C /* BookTableCell.swift */; };
971A102F1D022AD5007FC62C /* Logo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10271D022AD5007FC62C /* Logo.swift */; }; 971A102F1D022AD5007FC62C /* Logo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10271D022AD5007FC62C /* Logo.swift */; };
971A10301D022AD5007FC62C /* LTBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10281D022AD5007FC62C /* LTBarButtonItem.swift */; }; 971A10301D022AD5007FC62C /* LTBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10281D022AD5007FC62C /* LTBarButtonItem.swift */; };
971A10311D022AD5007FC62C /* RefreshHUD.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10291D022AD5007FC62C /* RefreshHUD.swift */; }; 971A10311D022AD5007FC62C /* RefreshHUD.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10291D022AD5007FC62C /* RefreshHUD.swift */; };
@ -85,9 +83,6 @@
971A10461D022CB2007FC62C /* SearchVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10451D022CB2007FC62C /* SearchVC.swift */; }; 971A10461D022CB2007FC62C /* SearchVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10451D022CB2007FC62C /* SearchVC.swift */; };
971A104A1D022CBE007FC62C /* SearchResultTBVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10471D022CBE007FC62C /* SearchResultTBVC.swift */; }; 971A104A1D022CBE007FC62C /* SearchResultTBVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10471D022CBE007FC62C /* SearchResultTBVC.swift */; };
971A104B1D022CBE007FC62C /* SearchScopeSelectTBVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10481D022CBE007FC62C /* SearchScopeSelectTBVC.swift */; }; 971A104B1D022CBE007FC62C /* SearchScopeSelectTBVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10481D022CBE007FC62C /* SearchScopeSelectTBVC.swift */; };
971A104C1D022CBE007FC62C /* SearchTabController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10491D022CBE007FC62C /* SearchTabController.swift */; };
971A104E1D022CD9007FC62C /* SearchLocalBooksCVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A104D1D022CD9007FC62C /* SearchLocalBooksCVC.swift */; };
971A10501D022CDF007FC62C /* SearchHistoryTBVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A104F1D022CDF007FC62C /* SearchHistoryTBVC.swift */; };
971A10521D022D9D007FC62C /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10511D022D9D007FC62C /* AppDelegate.swift */; }; 971A10521D022D9D007FC62C /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10511D022D9D007FC62C /* AppDelegate.swift */; };
971A10581D022DAD007FC62C /* LibraryDownloadTBVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10531D022DAD007FC62C /* LibraryDownloadTBVC.swift */; }; 971A10581D022DAD007FC62C /* LibraryDownloadTBVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10531D022DAD007FC62C /* LibraryDownloadTBVC.swift */; };
971A10591D022DAD007FC62C /* LibraryLocalBookDetailTBVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10541D022DAD007FC62C /* LibraryLocalBookDetailTBVC.swift */; }; 971A10591D022DAD007FC62C /* LibraryLocalBookDetailTBVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971A10541D022DAD007FC62C /* LibraryLocalBookDetailTBVC.swift */; };
@ -115,7 +110,6 @@
973BCCF31CEB3FA400F10B44 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 973BCCF21CEB3FA400F10B44 /* Assets.xcassets */; }; 973BCCF31CEB3FA400F10B44 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 973BCCF21CEB3FA400F10B44 /* Assets.xcassets */; };
973BCD011CEB3FA500F10B44 /* Kiwix_OSXTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973BCD001CEB3FA500F10B44 /* Kiwix_OSXTests.swift */; }; 973BCD011CEB3FA500F10B44 /* Kiwix_OSXTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973BCD001CEB3FA500F10B44 /* Kiwix_OSXTests.swift */; };
973BCD0C1CEB3FA500F10B44 /* Kiwix_OSXUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973BCD0B1CEB3FA500F10B44 /* Kiwix_OSXUITests.swift */; }; 973BCD0C1CEB3FA500F10B44 /* Kiwix_OSXUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973BCD0B1CEB3FA500F10B44 /* Kiwix_OSXUITests.swift */; };
973BCD191CEB402900F10B44 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 973BCD171CEB402900F10B44 /* Info.plist */; };
973BCD1A1CEB402900F10B44 /* KiwixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973BCD181CEB402900F10B44 /* KiwixTests.swift */; }; 973BCD1A1CEB402900F10B44 /* KiwixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973BCD181CEB402900F10B44 /* KiwixTests.swift */; };
973BCD1E1CEB403700F10B44 /* SnapshotAutomation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973BCD1C1CEB403700F10B44 /* SnapshotAutomation.swift */; }; 973BCD1E1CEB403700F10B44 /* SnapshotAutomation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973BCD1C1CEB403700F10B44 /* SnapshotAutomation.swift */; };
973C8D5C1C25F945007272F9 /* Preference.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973C8D5B1C25F945007272F9 /* Preference.swift */; }; 973C8D5C1C25F945007272F9 /* Preference.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973C8D5B1C25F945007272F9 /* Preference.swift */; };
@ -384,10 +378,8 @@
971A101B1D0228E8007FC62C /* adjustlayoutiPhone.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = adjustlayoutiPhone.js; sourceTree = "<group>"; }; 971A101B1D0228E8007FC62C /* adjustlayoutiPhone.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = adjustlayoutiPhone.js; sourceTree = "<group>"; };
971A101C1D0228E8007FC62C /* getTableOfContents.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = getTableOfContents.js; sourceTree = "<group>"; }; 971A101C1D0228E8007FC62C /* getTableOfContents.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = getTableOfContents.js; sourceTree = "<group>"; };
971A10201D022A34007FC62C /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Kiwix-iOS/Info.plist"; sourceTree = SOURCE_ROOT; }; 971A10201D022A34007FC62C /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Kiwix-iOS/Info.plist"; sourceTree = SOURCE_ROOT; };
971A10231D022AD5007FC62C /* ArticleCells.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArticleCells.swift; sourceTree = "<group>"; };
971A10241D022AD5007FC62C /* BarButtonItems.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarButtonItems.swift; sourceTree = "<group>"; }; 971A10241D022AD5007FC62C /* BarButtonItems.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarButtonItems.swift; sourceTree = "<group>"; };
971A10251D022AD5007FC62C /* BookCollectionCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BookCollectionCell.swift; sourceTree = "<group>"; }; 971A10261D022AD5007FC62C /* TableViewCells.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableViewCells.swift; sourceTree = "<group>"; };
971A10261D022AD5007FC62C /* BookTableCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BookTableCell.swift; sourceTree = "<group>"; };
971A10271D022AD5007FC62C /* Logo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Logo.swift; sourceTree = "<group>"; }; 971A10271D022AD5007FC62C /* Logo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Logo.swift; sourceTree = "<group>"; };
971A10281D022AD5007FC62C /* LTBarButtonItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LTBarButtonItem.swift; sourceTree = "<group>"; }; 971A10281D022AD5007FC62C /* LTBarButtonItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LTBarButtonItem.swift; sourceTree = "<group>"; };
971A10291D022AD5007FC62C /* RefreshHUD.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RefreshHUD.swift; sourceTree = "<group>"; }; 971A10291D022AD5007FC62C /* RefreshHUD.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RefreshHUD.swift; sourceTree = "<group>"; };
@ -403,9 +395,6 @@
971A10451D022CB2007FC62C /* SearchVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SearchVC.swift; path = "Kiwix-iOS/Controller/SearchVC.swift"; sourceTree = SOURCE_ROOT; }; 971A10451D022CB2007FC62C /* SearchVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SearchVC.swift; path = "Kiwix-iOS/Controller/SearchVC.swift"; sourceTree = SOURCE_ROOT; };
971A10471D022CBE007FC62C /* SearchResultTBVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SearchResultTBVC.swift; path = "Kiwix-iOS/Controller/SearchResultTBVC.swift"; sourceTree = SOURCE_ROOT; }; 971A10471D022CBE007FC62C /* SearchResultTBVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SearchResultTBVC.swift; path = "Kiwix-iOS/Controller/SearchResultTBVC.swift"; sourceTree = SOURCE_ROOT; };
971A10481D022CBE007FC62C /* SearchScopeSelectTBVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SearchScopeSelectTBVC.swift; path = "Kiwix-iOS/Controller/SearchScopeSelectTBVC.swift"; sourceTree = SOURCE_ROOT; }; 971A10481D022CBE007FC62C /* SearchScopeSelectTBVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SearchScopeSelectTBVC.swift; path = "Kiwix-iOS/Controller/SearchScopeSelectTBVC.swift"; sourceTree = SOURCE_ROOT; };
971A10491D022CBE007FC62C /* SearchTabController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SearchTabController.swift; path = "Kiwix-iOS/Controller/SearchTabController.swift"; sourceTree = SOURCE_ROOT; };
971A104D1D022CD9007FC62C /* SearchLocalBooksCVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SearchLocalBooksCVC.swift; path = "Kiwix-iOS/Controller/SearchLocalBooksCVC.swift"; sourceTree = SOURCE_ROOT; };
971A104F1D022CDF007FC62C /* SearchHistoryTBVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SearchHistoryTBVC.swift; path = "Kiwix-iOS/Controller/SearchHistoryTBVC.swift"; sourceTree = SOURCE_ROOT; };
971A10511D022D9D007FC62C /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; 971A10511D022D9D007FC62C /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
971A10531D022DAD007FC62C /* LibraryDownloadTBVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LibraryDownloadTBVC.swift; path = "Kiwix-iOS/Controller/LibraryDownloadTBVC.swift"; sourceTree = SOURCE_ROOT; }; 971A10531D022DAD007FC62C /* LibraryDownloadTBVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LibraryDownloadTBVC.swift; path = "Kiwix-iOS/Controller/LibraryDownloadTBVC.swift"; sourceTree = SOURCE_ROOT; };
971A10541D022DAD007FC62C /* LibraryLocalBookDetailTBVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LibraryLocalBookDetailTBVC.swift; path = "Kiwix-iOS/Controller/LibraryLocalBookDetailTBVC.swift"; sourceTree = SOURCE_ROOT; }; 971A10541D022DAD007FC62C /* LibraryLocalBookDetailTBVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LibraryLocalBookDetailTBVC.swift; path = "Kiwix-iOS/Controller/LibraryLocalBookDetailTBVC.swift"; sourceTree = SOURCE_ROOT; };
@ -544,6 +533,9 @@
97BA32A31CEBC29500339A47 /* RootWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RootWindowController.swift; path = "Kiwix-OSX/Controllers/RootWindowController.swift"; sourceTree = SOURCE_ROOT; }; 97BA32A31CEBC29500339A47 /* RootWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RootWindowController.swift; path = "Kiwix-OSX/Controllers/RootWindowController.swift"; sourceTree = SOURCE_ROOT; };
97D452BB1D16FF010033666F /* LangLocalCVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LangLocalCVC.swift; path = "Kiwix-iOS/Controller/Search/LangLocalCVC.swift"; sourceTree = SOURCE_ROOT; }; 97D452BB1D16FF010033666F /* LangLocalCVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LangLocalCVC.swift; path = "Kiwix-iOS/Controller/Search/LangLocalCVC.swift"; sourceTree = SOURCE_ROOT; };
97D452BD1D1723FF0033666F /* CollectionViewCells.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionViewCells.swift; sourceTree = "<group>"; }; 97D452BD1D1723FF0033666F /* CollectionViewCells.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionViewCells.swift; sourceTree = "<group>"; };
97D452BF1D1871E70033666F /* SearchHistoryTBVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SearchHistoryTBVC.swift; path = "Kiwix-iOS/Controller/Search/SearchHistoryTBVC.swift"; sourceTree = SOURCE_ROOT; };
97D452C01D1871E70033666F /* SearchLocalBooksCVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SearchLocalBooksCVC.swift; path = "Kiwix-iOS/Controller/Search/SearchLocalBooksCVC.swift"; sourceTree = SOURCE_ROOT; };
97D452C11D1871E70033666F /* SearchTabController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SearchTabController.swift; path = "Kiwix-iOS/Controller/Search/SearchTabController.swift"; sourceTree = SOURCE_ROOT; };
97DF23541CE807A1003E1E5A /* GlobalOperationQueue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalOperationQueue.swift; sourceTree = "<group>"; }; 97DF23541CE807A1003E1E5A /* GlobalOperationQueue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalOperationQueue.swift; sourceTree = "<group>"; };
97E609EF1D103DED00EBCB9D /* Kiwix-iOSWidget.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Kiwix-iOSWidget.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; 97E609EF1D103DED00EBCB9D /* Kiwix-iOSWidget.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Kiwix-iOSWidget.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
97E609F01D103DED00EBCB9D /* NotificationCenter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NotificationCenter.framework; path = System/Library/Frameworks/NotificationCenter.framework; sourceTree = SDKROOT; }; 97E609F01D103DED00EBCB9D /* NotificationCenter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NotificationCenter.framework; path = System/Library/Frameworks/NotificationCenter.framework; sourceTree = SDKROOT; };
@ -820,10 +812,8 @@
971A10221D022AD5007FC62C /* View */ = { 971A10221D022AD5007FC62C /* View */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
971A10231D022AD5007FC62C /* ArticleCells.swift */,
971A10241D022AD5007FC62C /* BarButtonItems.swift */, 971A10241D022AD5007FC62C /* BarButtonItems.swift */,
971A10251D022AD5007FC62C /* BookCollectionCell.swift */, 971A10261D022AD5007FC62C /* TableViewCells.swift */,
971A10261D022AD5007FC62C /* BookTableCell.swift */,
97D452BD1D1723FF0033666F /* CollectionViewCells.swift */, 97D452BD1D1723FF0033666F /* CollectionViewCells.swift */,
971A10271D022AD5007FC62C /* Logo.swift */, 971A10271D022AD5007FC62C /* Logo.swift */,
971A10281D022AD5007FC62C /* LTBarButtonItem.swift */, 971A10281D022AD5007FC62C /* LTBarButtonItem.swift */,
@ -978,15 +968,14 @@
name = Preference; name = Preference;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
9768957A1CB6A35E00F02686 /* Dashboard */ = { 9768957A1CB6A35E00F02686 /* Old */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
971A10491D022CBE007FC62C /* SearchTabController.swift */, 97D452BF1D1871E70033666F /* SearchHistoryTBVC.swift */,
971A104D1D022CD9007FC62C /* SearchLocalBooksCVC.swift */, 97D452C01D1871E70033666F /* SearchLocalBooksCVC.swift */,
971A104F1D022CDF007FC62C /* SearchHistoryTBVC.swift */, 97D452C11D1871E70033666F /* SearchTabController.swift */,
971A10481D022CBE007FC62C /* SearchScopeSelectTBVC.swift */,
); );
name = Dashboard; name = Old;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
9771DC4B1C37278E009ECFF0 /* Setting */ = { 9771DC4B1C37278E009ECFF0 /* Setting */ = {
@ -1262,8 +1251,9 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
971A10451D022CB2007FC62C /* SearchVC.swift */, 971A10451D022CB2007FC62C /* SearchVC.swift */,
9768957A1CB6A35E00F02686 /* Dashboard */, 971A10481D022CBE007FC62C /* SearchScopeSelectTBVC.swift */,
971A10471D022CBE007FC62C /* SearchResultTBVC.swift */, 971A10471D022CBE007FC62C /* SearchResultTBVC.swift */,
9768957A1CB6A35E00F02686 /* Old */,
); );
name = Search; name = Search;
sourceTree = "<group>"; sourceTree = "<group>";
@ -1445,7 +1435,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
LastSwiftUpdateCheck = 0730; LastSwiftUpdateCheck = 0730;
LastUpgradeCheck = 0720; LastUpgradeCheck = 0730;
ORGANIZATIONNAME = Chris; ORGANIZATIONNAME = Chris;
TargetAttributes = { TargetAttributes = {
973BCCE81CEB3FA400F10B44 = { 973BCCE81CEB3FA400F10B44 = {
@ -1557,7 +1547,6 @@
isa = PBXResourcesBuildPhase; isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
973BCD191CEB402900F10B44 /* Info.plist in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -1821,7 +1810,6 @@
979CB6C31D05C520005E1BA1 /* UIUserNotifications+Operations.swift in Sources */, 979CB6C31D05C520005E1BA1 /* UIUserNotifications+Operations.swift in Sources */,
971A10361D022B02007FC62C /* AboutVC.swift in Sources */, 971A10361D022B02007FC62C /* AboutVC.swift in Sources */,
971A102C1D022AD5007FC62C /* BarButtonItems.swift in Sources */, 971A102C1D022AD5007FC62C /* BarButtonItems.swift in Sources */,
971A10501D022CDF007FC62C /* SearchHistoryTBVC.swift in Sources */,
971A10301D022AD5007FC62C /* LTBarButtonItem.swift in Sources */, 971A10301D022AD5007FC62C /* LTBarButtonItem.swift in Sources */,
971A103F1D022C42007FC62C /* LibraryAutoRefreshTBVC.swift in Sources */, 971A103F1D022C42007FC62C /* LibraryAutoRefreshTBVC.swift in Sources */,
979CB67F1D05C44F005E1BA1 /* NetworkObserver.swift in Sources */, 979CB67F1D05C44F005E1BA1 /* NetworkObserver.swift in Sources */,
@ -1844,7 +1832,7 @@
970103FB1C6824FA00DC48F6 /* RefreshLibraryOperation.swift in Sources */, 970103FB1C6824FA00DC48F6 /* RefreshLibraryOperation.swift in Sources */,
971A10651D022E0A007FC62C /* MainVC.swift in Sources */, 971A10651D022E0A007FC62C /* MainVC.swift in Sources */,
971A106F1D022E62007FC62C /* DownloadProgress.swift in Sources */, 971A106F1D022E62007FC62C /* DownloadProgress.swift in Sources */,
971A102E1D022AD5007FC62C /* BookTableCell.swift in Sources */, 971A102E1D022AD5007FC62C /* TableViewCells.swift in Sources */,
979CB64F1D05C44F005E1BA1 /* LocationCapability-tvOS.swift in Sources */, 979CB64F1D05C44F005E1BA1 /* LocationCapability-tvOS.swift in Sources */,
979CB6591D05C44F005E1BA1 /* UserNotificationCapability.swift in Sources */, 979CB6591D05C44F005E1BA1 /* UserNotificationCapability.swift in Sources */,
97254FDF1C2644560056950B /* ZIMMultiReader.swift in Sources */, 97254FDF1C2644560056950B /* ZIMMultiReader.swift in Sources */,
@ -1863,7 +1851,6 @@
979CB65F1D05C44F005E1BA1 /* HealthCondition.swift in Sources */, 979CB65F1D05C44F005E1BA1 /* HealthCondition.swift in Sources */,
979CB6B51D05C520005E1BA1 /* GroupOperation.swift in Sources */, 979CB6B51D05C520005E1BA1 /* GroupOperation.swift in Sources */,
97B50C7F1CA1E4810010BD79 /* UIOperations.swift in Sources */, 97B50C7F1CA1E4810010BD79 /* UIOperations.swift in Sources */,
971A104E1D022CD9007FC62C /* SearchLocalBooksCVC.swift in Sources */,
977998741C1E0B7900B1DD5E /* Book+CoreDataProperties.swift in Sources */, 977998741C1E0B7900B1DD5E /* Book+CoreDataProperties.swift in Sources */,
979CB6871D05C44F005E1BA1 /* TimeoutObserver.swift in Sources */, 979CB6871D05C44F005E1BA1 /* TimeoutObserver.swift in Sources */,
971A10661D022E0A007FC62C /* MainVCLoading.swift in Sources */, 971A10661D022E0A007FC62C /* MainVCLoading.swift in Sources */,
@ -1875,7 +1862,6 @@
97E60A061D10504000EBCB9D /* LibraryBackupTBVC.swift in Sources */, 97E60A061D10504000EBCB9D /* LibraryBackupTBVC.swift in Sources */,
974570F41C2DABB500680E43 /* ZIMMultiReaderAPI.swift in Sources */, 974570F41C2DABB500680E43 /* ZIMMultiReaderAPI.swift in Sources */,
979CB6511D05C44F005E1BA1 /* PassbookCapability.swift in Sources */, 979CB6511D05C44F005E1BA1 /* PassbookCapability.swift in Sources */,
971A104C1D022CBE007FC62C /* SearchTabController.swift in Sources */,
971A105C1D022DAD007FC62C /* LibraryTabBarController.swift in Sources */, 971A105C1D022DAD007FC62C /* LibraryTabBarController.swift in Sources */,
971A10461D022CB2007FC62C /* SearchVC.swift in Sources */, 971A10461D022CB2007FC62C /* SearchVC.swift in Sources */,
9779987B1C1E1C9600B1DD5E /* Extensions.swift in Sources */, 9779987B1C1E1C9600B1DD5E /* Extensions.swift in Sources */,
@ -1892,7 +1878,6 @@
979CB6431D05C44F005E1BA1 /* CalendarCapability.swift in Sources */, 979CB6431D05C44F005E1BA1 /* CalendarCapability.swift in Sources */,
979CB6AD1D05C520005E1BA1 /* BlockOperation.swift in Sources */, 979CB6AD1D05C520005E1BA1 /* BlockOperation.swift in Sources */,
979CB6B11D05C520005E1BA1 /* DelayOperation.swift in Sources */, 979CB6B11D05C520005E1BA1 /* DelayOperation.swift in Sources */,
971A102B1D022AD5007FC62C /* ArticleCells.swift in Sources */,
973C8D5C1C25F945007272F9 /* Preference.swift in Sources */, 973C8D5C1C25F945007272F9 /* Preference.swift in Sources */,
979CB6B91D05C520005E1BA1 /* NSLock+Operations.swift in Sources */, 979CB6B91D05C520005E1BA1 /* NSLock+Operations.swift in Sources */,
975B90FE1CEB909100D13906 /* iOSExtensions.swift in Sources */, 975B90FE1CEB909100D13906 /* iOSExtensions.swift in Sources */,
@ -1920,7 +1905,6 @@
979CB6B31D05C520005E1BA1 /* Dictionary+Operations.swift in Sources */, 979CB6B31D05C520005E1BA1 /* Dictionary+Operations.swift in Sources */,
979CB64B1D05C44F005E1BA1 /* LocationCapability-iOS.swift in Sources */, 979CB64B1D05C44F005E1BA1 /* LocationCapability-iOS.swift in Sources */,
979CB6611D05C44F005E1BA1 /* LocationCondition.swift in Sources */, 979CB6611D05C44F005E1BA1 /* LocationCondition.swift in Sources */,
971A102D1D022AD5007FC62C /* BookCollectionCell.swift in Sources */,
971A10601D022DF2007FC62C /* LanguageTBVC.swift in Sources */, 971A10601D022DF2007FC62C /* LanguageTBVC.swift in Sources */,
971A106A1D022E15007FC62C /* BookmarkHUDVC.swift in Sources */, 971A106A1D022E15007FC62C /* BookmarkHUDVC.swift in Sources */,
971A106C1D022E50007FC62C /* Utilities.swift in Sources */, 971A106C1D022E50007FC62C /* Utilities.swift in Sources */,

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "0720" LastUpgradeVersion = "0730"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"