fix epub reader playback and trial navigation

This commit is contained in:
shen
2026-07-11 08:16:56 +08:00
parent d7fcda345d
commit 063a493b18
231 changed files with 435 additions and 36060 deletions
@@ -56,6 +56,17 @@ extension RDEPUBReaderController {
return readableContentPageCount + 1
}
func isReadableTableOfContentsLocation(_ location: RDEPUBLocation) -> Bool {
guard let policy = configuration.trialPolicy,
let readableChapterCount = policy.readableChapterCount else {
return true
}
guard let spineIndex = readerContext.normalizedSpineIndex(for: location) else {
return true
}
return spineIndex < readableChapterCount
}
/// 宿
func makeTrialWallPageView(reusableView: UIView?) -> UIView {
let container = (reusableView as? RDEPUBTrialWallContainerView) ?? RDEPUBTrialWallContainerView()
@@ -65,12 +76,19 @@ extension RDEPUBReaderController {
}
/// 宿
final class RDEPUBTrialWallContainerView: UIView {
final class RDEPUBTrialWallContainerView: UIView, RDEpubReaderCachePolicyProviding {
/// 宿 View
/// View
var shouldAvoidReaderPageCaching: Bool { true }
private weak var wallView: UIView?
func setWallView(_ view: UIView?) {
guard wallView !== view else { return }
// 使 View
if wallView === view, view?.superview === self {
return
}
wallView?.removeFromSuperview()
guard let view else { return }
view.translatesAutoresizingMaskIntoConstraints = false