Skip to content
This repository was archived by the owner on Aug 12, 2022. It is now read-only.

Commit 56f1b51

Browse files
Merge pull request #65 from readium/feature/positionList
Use `Publication.positionList` for the current location
2 parents 79e0be2 + 4746a94 commit 56f1b51

23 files changed

+2031
-1734
lines changed

Cartfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
github "readium/r2-shared-swift" == 1.3.2
1+
github "readium/r2-shared-swift" == 1.3.3

Cartfile.resolved

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
github "readium/r2-shared-swift" "1.3.2"
1+
github "readium/r2-shared-swift" "1.3.3"

r2-navigator-swift.xcodeproj/project.pbxproj

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,25 @@
1212
CA26EF7E22803FE90011653E /* VisualNavigator.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA26EF7D22803FE90011653E /* VisualNavigator.swift */; };
1313
CA479DC3226493570053445E /* UIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA479DC2226493570053445E /* UIView.swift */; };
1414
CA479DC52264AEA20053445E /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA479DC42264AEA20053445E /* UIColor.swift */; };
15-
CA94291122BBD3F100305CDB /* fxl-wrapper.html in Resources */ = {isa = PBXBuildFile; fileRef = CA94290E22BBD3F100305CDB /* fxl-wrapper.html */; };
15+
CA90372122D8C94C00D4C86F /* fxl-spread-one.html in Resources */ = {isa = PBXBuildFile; fileRef = CA90371F22D8C94C00D4C86F /* fxl-spread-one.html */; };
16+
CA90372222D8C94C00D4C86F /* fxl-spread-two.html in Resources */ = {isa = PBXBuildFile; fileRef = CA90372022D8C94C00D4C86F /* fxl-spread-two.html */; };
1617
CA94292122BCF97700305CDB /* Static in Resources */ = {isa = PBXBuildFile; fileRef = CA94292022BCF97700305CDB /* Static */; };
1718
CA94293022BD2D2F00305CDB /* Scripts in Resources */ = {isa = PBXBuildFile; fileRef = CA94292F22BD2D2F00305CDB /* Scripts */; };
1819
CAB9086B22492D4C00711C3F /* Navigator.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAB9086A22492D4C00711C3F /* Navigator.swift */; };
1920
CAC2A6D72292E4BA000AA2A7 /* WebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAC2A6D62292E4BA000AA2A7 /* WebView.swift */; };
2021
CACE84F82254BE5F00E19E8B /* PDFDocumentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CACE84F72254BE5F00E19E8B /* PDFDocumentView.swift */; };
2122
CACE84FB2254BFEE00E19E8B /* EditingAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = CACE84FA2254BFEE00E19E8B /* EditingAction.swift */; };
22-
CACE851F225CDE3400E19E8B /* FixedDocumentWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CACE851E225CDE3300E19E8B /* FixedDocumentWebView.swift */; };
23-
CACE8521225CDFB000E19E8B /* ReflowableDocumentWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CACE8520225CDFB000E19E8B /* ReflowableDocumentWebView.swift */; };
23+
CACE851F225CDE3400E19E8B /* EPUBFixedSpreadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CACE851E225CDE3300E19E8B /* EPUBFixedSpreadView.swift */; };
24+
CACE8521225CDFB000E19E8B /* EPUBReflowableSpreadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CACE8520225CDFB000E19E8B /* EPUBReflowableSpreadView.swift */; };
2425
CAD178B622B3B553004E6812 /* R2NavigatorLocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAD178B522B3B553004E6812 /* R2NavigatorLocalizedString.swift */; };
2526
CAD178BA22B3B5B6004E6812 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CAD178BC22B3B5B6004E6812 /* Localizable.strings */; };
2627
CAEACA222272EFBD00476340 /* ImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAEACA212272EFBD00476340 /* ImageViewController.swift */; };
28+
CAF1E3F122DC98C200E807EA /* EPUBSpread.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAF1E3F022DC98C200E807EA /* EPUBSpread.swift */; };
29+
CAF1E3F522DF23F400E807EA /* PaginationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAF1E3F422DF23F400E807EA /* PaginationView.swift */; };
2730
F341C2711F506ED5005E6758 /* UserSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = F341C2701F506ED5005E6758 /* UserSettings.swift */; };
2831
F3E7D3D41F4D83B000DF166D /* r2-navigator-swift.h in Headers */ = {isa = PBXBuildFile; fileRef = F3E7D3C61F4D83B000DF166D /* r2-navigator-swift.h */; settings = {ATTRIBUTES = (Public, ); }; };
29-
F3E7D3DE1F4D845B00DF166D /* BinaryLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3E7D3DD1F4D845B00DF166D /* BinaryLocation.swift */; };
30-
F3E7D3E01F4D847E00DF166D /* Disjunction.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3E7D3DF1F4D847E00DF166D /* Disjunction.swift */; };
3132
F3E7D3E21F4D84A000DF166D /* EPUBNavigatorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3E7D3E11F4D84A000DF166D /* EPUBNavigatorViewController.swift */; };
32-
F3E7D3E41F4D84DC00DF166D /* TriptychView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3E7D3E31F4D84DC00DF166D /* TriptychView.swift */; };
33-
F3E7D3E61F4D84EF00DF166D /* DocumentWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3E7D3E51F4D84EF00DF166D /* DocumentWebView.swift */; };
33+
F3E7D3E61F4D84EF00DF166D /* EPUBSpreadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3E7D3E51F4D84EF00DF166D /* EPUBSpreadView.swift */; };
3434
F3E7D42E1F4EE0FE00DF166D /* CBZNavigatorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3E7D42D1F4EE0FE00DF166D /* CBZNavigatorViewController.swift */; };
3535
/* End PBXBuildFile section */
3636

@@ -40,29 +40,29 @@
4040
CA26EF7D22803FE90011653E /* VisualNavigator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VisualNavigator.swift; sourceTree = "<group>"; };
4141
CA479DC2226493570053445E /* UIView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIView.swift; sourceTree = "<group>"; };
4242
CA479DC42264AEA20053445E /* UIColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = "<group>"; };
43-
CA94290E22BBD3F100305CDB /* fxl-wrapper.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "fxl-wrapper.html"; sourceTree = "<group>"; };
43+
CA90371F22D8C94C00D4C86F /* fxl-spread-one.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "fxl-spread-one.html"; sourceTree = "<group>"; };
44+
CA90372022D8C94C00D4C86F /* fxl-spread-two.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "fxl-spread-two.html"; sourceTree = "<group>"; };
4445
CA94292022BCF97700305CDB /* Static */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Static; sourceTree = "<group>"; };
4546
CA94292F22BD2D2F00305CDB /* Scripts */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Scripts; sourceTree = "<group>"; };
4647
CAB9086A22492D4C00711C3F /* Navigator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Navigator.swift; sourceTree = "<group>"; };
4748
CAC2A6D62292E4BA000AA2A7 /* WebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebView.swift; sourceTree = "<group>"; };
4849
CACE84F72254BE5F00E19E8B /* PDFDocumentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFDocumentView.swift; sourceTree = "<group>"; };
4950
CACE84FA2254BFEE00E19E8B /* EditingAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditingAction.swift; sourceTree = "<group>"; };
50-
CACE851E225CDE3300E19E8B /* FixedDocumentWebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FixedDocumentWebView.swift; sourceTree = "<group>"; };
51-
CACE8520225CDFB000E19E8B /* ReflowableDocumentWebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReflowableDocumentWebView.swift; sourceTree = "<group>"; };
51+
CACE851E225CDE3300E19E8B /* EPUBFixedSpreadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EPUBFixedSpreadView.swift; sourceTree = "<group>"; };
52+
CACE8520225CDFB000E19E8B /* EPUBReflowableSpreadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EPUBReflowableSpreadView.swift; sourceTree = "<group>"; };
5253
CAD178B522B3B553004E6812 /* R2NavigatorLocalizedString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = R2NavigatorLocalizedString.swift; sourceTree = "<group>"; };
5354
CAD178BB22B3B5B6004E6812 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
5455
CAEACA212272EFBD00476340 /* ImageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageViewController.swift; sourceTree = "<group>"; };
56+
CAF1E3F022DC98C200E807EA /* EPUBSpread.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EPUBSpread.swift; sourceTree = "<group>"; };
57+
CAF1E3F422DF23F400E807EA /* PaginationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaginationView.swift; sourceTree = "<group>"; };
5558
F341C2701F506ED5005E6758 /* UserSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserSettings.swift; sourceTree = "<group>"; };
5659
F3E7D3C31F4D83B000DF166D /* R2Navigator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = R2Navigator.framework; sourceTree = BUILT_PRODUCTS_DIR; };
5760
F3E7D3C61F4D83B000DF166D /* r2-navigator-swift.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "r2-navigator-swift.h"; sourceTree = "<group>"; };
5861
F3E7D3C71F4D83B000DF166D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
5962
F3E7D3D11F4D83B000DF166D /* r2_navigator_swiftTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = r2_navigator_swiftTests.swift; sourceTree = "<group>"; };
6063
F3E7D3D31F4D83B000DF166D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
61-
F3E7D3DD1F4D845B00DF166D /* BinaryLocation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BinaryLocation.swift; sourceTree = "<group>"; };
62-
F3E7D3DF1F4D847E00DF166D /* Disjunction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Disjunction.swift; sourceTree = "<group>"; };
6364
F3E7D3E11F4D84A000DF166D /* EPUBNavigatorViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EPUBNavigatorViewController.swift; sourceTree = "<group>"; };
64-
F3E7D3E31F4D84DC00DF166D /* TriptychView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TriptychView.swift; sourceTree = "<group>"; };
65-
F3E7D3E51F4D84EF00DF166D /* DocumentWebView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DocumentWebView.swift; sourceTree = "<group>"; };
65+
F3E7D3E51F4D84EF00DF166D /* EPUBSpreadView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EPUBSpreadView.swift; sourceTree = "<group>"; };
6666
F3E7D42D1F4EE0FE00DF166D /* CBZNavigatorViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CBZNavigatorViewController.swift; sourceTree = "<group>"; };
6767
/* End PBXFileReference section */
6868

@@ -92,6 +92,8 @@
9292
children = (
9393
CA479DC2226493570053445E /* UIView.swift */,
9494
CA479DC42264AEA20053445E /* UIColor.swift */,
95+
CAF1E3F422DF23F400E807EA /* PaginationView.swift */,
96+
CAC2A6D62292E4BA000AA2A7 /* WebView.swift */,
9597
CAD178B522B3B553004E6812 /* R2NavigatorLocalizedString.swift */,
9698
);
9799
path = Toolkit;
@@ -101,13 +103,10 @@
101103
isa = PBXGroup;
102104
children = (
103105
F3E7D3E11F4D84A000DF166D /* EPUBNavigatorViewController.swift */,
104-
F3E7D3E31F4D84DC00DF166D /* TriptychView.swift */,
105-
CAC2A6D62292E4BA000AA2A7 /* WebView.swift */,
106-
F3E7D3E51F4D84EF00DF166D /* DocumentWebView.swift */,
107-
CACE851E225CDE3300E19E8B /* FixedDocumentWebView.swift */,
108-
CACE8520225CDFB000E19E8B /* ReflowableDocumentWebView.swift */,
109-
F3E7D3DD1F4D845B00DF166D /* BinaryLocation.swift */,
110-
F3E7D3DF1F4D847E00DF166D /* Disjunction.swift */,
106+
CAF1E3F022DC98C200E807EA /* EPUBSpread.swift */,
107+
F3E7D3E51F4D84EF00DF166D /* EPUBSpreadView.swift */,
108+
CACE851E225CDE3300E19E8B /* EPUBFixedSpreadView.swift */,
109+
CACE8520225CDFB000E19E8B /* EPUBReflowableSpreadView.swift */,
111110
F341C2701F506ED5005E6758 /* UserSettings.swift */,
112111
CAA9A38B226F407B00BE1D6A /* Resources */,
113112
);
@@ -117,7 +116,8 @@
117116
CAA9A38B226F407B00BE1D6A /* Resources */ = {
118117
isa = PBXGroup;
119118
children = (
120-
CA94290E22BBD3F100305CDB /* fxl-wrapper.html */,
119+
CA90371F22D8C94C00D4C86F /* fxl-spread-one.html */,
120+
CA90372022D8C94C00D4C86F /* fxl-spread-two.html */,
121121
CA94292F22BD2D2F00305CDB /* Scripts */,
122122
CA94292022BCF97700305CDB /* Static */,
123123
);
@@ -264,10 +264,11 @@
264264
isa = PBXResourcesBuildPhase;
265265
buildActionMask = 2147483647;
266266
files = (
267-
CA94291122BBD3F100305CDB /* fxl-wrapper.html in Resources */,
268267
CA94292122BCF97700305CDB /* Static in Resources */,
269268
CAD178BA22B3B5B6004E6812 /* Localizable.strings in Resources */,
270269
CA94293022BD2D2F00305CDB /* Scripts in Resources */,
270+
CA90372122D8C94C00D4C86F /* fxl-spread-one.html in Resources */,
271+
CA90372222D8C94C00D4C86F /* fxl-spread-two.html in Resources */,
271272
);
272273
runOnlyForDeploymentPostprocessing = 0;
273274
};
@@ -280,23 +281,22 @@
280281
files = (
281282
F3E7D3E21F4D84A000DF166D /* EPUBNavigatorViewController.swift in Sources */,
282283
CA26EF7E22803FE90011653E /* VisualNavigator.swift in Sources */,
284+
CAF1E3F522DF23F400E807EA /* PaginationView.swift in Sources */,
285+
CAF1E3F122DC98C200E807EA /* EPUBSpread.swift in Sources */,
283286
CAB9086B22492D4C00711C3F /* Navigator.swift in Sources */,
284287
CA0B3AC3222EE555006D9363 /* PDFNavigatorViewController.swift in Sources */,
285-
F3E7D3E61F4D84EF00DF166D /* DocumentWebView.swift in Sources */,
288+
F3E7D3E61F4D84EF00DF166D /* EPUBSpreadView.swift in Sources */,
286289
F3E7D42E1F4EE0FE00DF166D /* CBZNavigatorViewController.swift in Sources */,
287290
CA479DC52264AEA20053445E /* UIColor.swift in Sources */,
288291
CAD178B622B3B553004E6812 /* R2NavigatorLocalizedString.swift in Sources */,
289-
F3E7D3E01F4D847E00DF166D /* Disjunction.swift in Sources */,
290292
CAEACA222272EFBD00476340 /* ImageViewController.swift in Sources */,
291293
CACE84FB2254BFEE00E19E8B /* EditingAction.swift in Sources */,
292294
F341C2711F506ED5005E6758 /* UserSettings.swift in Sources */,
293-
CACE851F225CDE3400E19E8B /* FixedDocumentWebView.swift in Sources */,
294-
F3E7D3DE1F4D845B00DF166D /* BinaryLocation.swift in Sources */,
295+
CACE851F225CDE3400E19E8B /* EPUBFixedSpreadView.swift in Sources */,
295296
CA479DC3226493570053445E /* UIView.swift in Sources */,
296297
CACE84F82254BE5F00E19E8B /* PDFDocumentView.swift in Sources */,
297298
CAC2A6D72292E4BA000AA2A7 /* WebView.swift in Sources */,
298-
F3E7D3E41F4D84DC00DF166D /* TriptychView.swift in Sources */,
299-
CACE8521225CDFB000E19E8B /* ReflowableDocumentWebView.swift in Sources */,
299+
CACE8521225CDFB000E19E8B /* EPUBReflowableSpreadView.swift in Sources */,
300300
);
301301
runOnlyForDeploymentPostprocessing = 0;
302302
};

r2-navigator-swift/CBZ/CBZNavigatorViewController.swift

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@ open class CBZNavigatorViewController: UIViewController, VisualNavigator, Loggab
2323

2424
private let publication: Publication
2525
private let initialIndex: Int
26-
private let positionList: [Locator]
27-
26+
2827
private let pageViewController: UIPageViewController
2928

3029
public init(publication: Publication, initialLocation: Locator? = nil) {
@@ -41,19 +40,6 @@ open class CBZNavigatorViewController: UIViewController, VisualNavigator, Loggab
4140
navigationOrientation: .horizontal
4241
)
4342

44-
let pageCount = publication.readingOrder.count
45-
self.positionList = publication.readingOrder.enumerated().map { index, link in
46-
Locator(
47-
href: link.href,
48-
type: link.type ?? "",
49-
title: link.title,
50-
locations: Locations(
51-
progression: Double(index) / Double(pageCount),
52-
position: index + 1
53-
)
54-
)
55-
}
56-
5743
super.init(nibName: nil, bundle: nil)
5844

5945
automaticallyAdjustsScrollViewInsets = false
@@ -82,13 +68,20 @@ open class CBZNavigatorViewController: UIViewController, VisualNavigator, Loggab
8268

8369
private var currentResourceIndex: Int {
8470
guard let imageViewController = pageViewController.viewControllers?.first as? ImageViewController,
85-
positionList.indices.contains(imageViewController.index) else
71+
publication.positionList.indices.contains(imageViewController.index) else
8672
{
8773
return initialIndex
8874
}
8975
return imageViewController.index
9076
}
9177

78+
public var currentPosition: Locator? {
79+
guard publication.positionList.indices.contains(currentResourceIndex) else {
80+
return nil
81+
}
82+
return publication.positionList[currentResourceIndex]
83+
}
84+
9285
@discardableResult
9386
private func goToResourceAtIndex(_ index: Int, animated: Bool = false, completion: @escaping () -> Void = {}) -> Bool {
9487
guard let imageViewController = imageViewController(at: index) else {
@@ -106,10 +99,10 @@ open class CBZNavigatorViewController: UIViewController, VisualNavigator, Loggab
10699
return forward ? .forward : .reverse
107100
}()
108101
pageViewController.setViewControllers([imageViewController], direction: direction, animated: animated) { [weak self] _ in
109-
guard let `self` = self else {
102+
guard let self = self, let position = self.currentPosition else {
110103
return
111104
}
112-
self.delegate?.navigator(self, locationDidChange: self.positionList[self.currentResourceIndex])
105+
self.delegate?.navigator(self, locationDidChange: position)
113106
completion()
114107
}
115108
return true
@@ -136,9 +129,9 @@ open class CBZNavigatorViewController: UIViewController, VisualNavigator, Loggab
136129
public var readingProgression: ReadingProgression {
137130
return publication.contentLayout.readingProgression
138131
}
139-
132+
140133
public var currentLocation: Locator? {
141-
return positionList[currentResourceIndex]
134+
return currentPosition
142135
}
143136

144137
public func go(to locator: Locator, animated: Bool, completion: @escaping () -> Void) -> Bool {
@@ -200,8 +193,8 @@ extension CBZNavigatorViewController: UIPageViewControllerDataSource {
200193
extension CBZNavigatorViewController: UIPageViewControllerDelegate {
201194

202195
public func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
203-
if completed {
204-
delegate?.navigator(self, locationDidChange: positionList[currentResourceIndex])
196+
if completed, let position = currentPosition {
197+
delegate?.navigator(self, locationDidChange: position)
205198
}
206199
}
207200

r2-navigator-swift/EPUB/BinaryLocation.swift

Lines changed: 0 additions & 15 deletions
This file was deleted.

r2-navigator-swift/EPUB/Disjunction.swift

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)