Files
ReadViewSDK/ReadViewDemo/ReadViewDemoUITests/Helpers/AccessibilityIdentifiers.swift
T
shenlei 3e60bf1869 修复阅读器资源、朗读与持久化稳定性
阅读器在多会话朗读、加密 EPUB 资源、并发打开同一本书和多 UserDefaults 容器等场景下,存在旧异步结果覆盖新状态、锁屏控制串会话、大型明文资源被误拒绝、解压半成品被复用及标注跨容器混用的风险;同时高亮、书签、搜索和设置面板的空状态与自动化可访问性入口不完整。\n\n本次为朗读会话引入代次和当前 utterance 校验,远程控制改为仅响应当前会话并按自身 token 清理;加密资源 provider 先判定是否实际返回解密数据,明文大资源继续流式读取;解压缓存串行化以避免并发复用未完成目录。书签与高亮迁移至受保护文件,按 UserDefaults 容器隔离命名空间,保留标准容器旧文件兼容并确保新副本成功落盘后才删除历史数据。\n\n同步调整缓存淘汰、FoundationModels 弱链接、搜索/标注/设置面板交互与 UI 测试,并更新 Pod 生成配置及 API、风险文档。已执行 git diff --check 和 ReadViewDemo Debug Simulator 构建,结果为 BUILD SUCCEEDED。
2026-07-30 20:52:21 +09:00

91 lines
5.0 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import Foundation
enum IDs {
static let demoStatus = "demo.status"
static let demoBooksTable = "demo.books.table"
static func demoBook(_ index: Int) -> String { "demo.book.\(index)" }
static let demoReaderState = "demo.reader.state"
static let readerBack = "epub.reader.back"
static let readerTitle = "epub.reader.title"
static let readerTopToolbar = "epub.reader.topToolbar"
static let readerBottomToolbar = "epub.reader.bottomToolbar"
static let readerContent = "epub.reader.content"
static let readerPaging = "epub.reader.paging"
static let readerBookmark = "epub.reader.bookmark"
static let readerToc = "epub.reader.toc"
static let readerBookmarks = "epub.reader.bookmarks"
static let readerHighlights = "epub.reader.highlights"
static let readerSettings = "epub.reader.settings"
static let readerTocPanel = "epub.reader.toc.panel"
static let readerTocTable = "epub.reader.toc.table"
static let readerTocNavBar = "epub.reader.toc.navbar"
static let readerBookmarksPanel = "epub.reader.bookmarks.panel"
static let readerBookmarksTable = "epub.reader.bookmarks.table"
static let readerBookmarksNavBar = "epub.reader.bookmarks.navbar"
static let readerSelectionText = "epub.reader.selection.text"
static let readerSelectionHighlight = "epub.reader.selection.高亮"
static let readerContentView = "epub.reader.content.view"
static let readerLoadingSpinner = "epub.reader.loadingSpinner"
static let readerHighlightsPanel = "epub.reader.highlights.panel"
static let readerHighlightsTable = "epub.reader.highlights.table"
static let readerHighlightsFilter = "epub.reader.highlights.filter"
static let readerHighlightsEmptyLabel = "epub.reader.highlights.empty"
static let readerHighlightsNavBar = "epub.reader.highlights.navbar"
static let readerBookmarksEmptyLabel = "epub.reader.bookmarks.empty"
static let readerNoteText = "epub.reader.note.text"
static let readerNoteActions = "epub.reader.note.actions"
static let readerNoteReturn = "epub.reader.note.return"
static let readerNoteOpen = "epub.reader.note.open"
// MARK: - Image PDF text selection and annotations
/// PDF demo currently retains the legacy EPUB content identifier for compatibility.
/// The text layer is the precise, image-coordinate based interaction surface.
static let pdfTextLayer = "pdf.reader.text.layer"
static let pdfOCRStatus = "pdf.reader.ocr.status"
/// PDF 选区菜单与 EPUB 相同,使用系统编辑菜单,按菜单项标题(复制/划线/注释)定位。
static let pdfSelectionMenuCopy = "复制"
static let pdfSelectionMenuHighlight = "划线"
static let pdfSelectionMenuAnnotate = "注释"
static let pdfCopyStatus = "pdf.reader.copy.status"
static let pdfAnnotations = "pdf.reader.annotations"
static let pdfAnnotationsPanel = "pdf.reader.annotations.panel"
static let pdfAnnotationsTable = "pdf.reader.annotations.table"
static let pdfAnnotationsFilter = "pdf.reader.annotations.filter"
static let pdfAnnotationsEmpty = "pdf.reader.annotations.empty"
static func pdfAnnotationRow(_ id: String) -> String { "pdf.reader.annotations.row.\(id)" }
static let pdfAnnotationEditor = "pdf.reader.annotation.editor"
static let pdfAnnotationInput = "pdf.reader.annotation.input"
static let pdfAnnotationSave = "pdf.reader.annotation.save"
static let pdfAnnotationCancel = "pdf.reader.annotation.cancel"
static let pdfDrawing = "pdf.reader.drawing"
static let pdfDrawingToolbar = "pdf.reader.drawing.toolbar"
static let pdfDrawingPen = "pdf.reader.drawing.pen"
static let pdfDrawingEraser = "pdf.reader.drawing.eraser"
static let readerSearch = "epub.reader.search"
static let searchBar = "epub.reader.search.bar"
static let searchField = "epub.reader.search.field"
static let searchPrevious = "epub.reader.search.previous"
static let searchNext = "epub.reader.search.next"
static let searchClose = "epub.reader.search.close"
static let searchCount = "epub.reader.search.count"
/// EPUB 设置面板是固定高度的 pill 面板,没有 scrollView;这是它的根视图。
static let settingsPanel = "epub.reader.settings.panel"
/// 只有 PDF 设置面板才有 scrollView`RDPDFReaderSettingsPanelViewController`)。
static let settingsScroll = "epub.reader.settings.scroll"
static let settingsBrightness = "epub.reader.settings.brightness"
/// 字号是滑块;SDK 从未提供 font.increase / font.decrease 按钮
static let settingsFontSize = "epub.reader.settings.font.size"
static let settingsFontValue = "epub.reader.settings.font.value"
static let settingsFontChoice = "epub.reader.settings.font.choice"
static let settingsLineHeight = "epub.reader.settings.lineHeight"
static let settingsDisplayType = "epub.reader.settings.displayType"
static let settingsDone = "epub.reader.settings.done"
static func settingsTheme(_ index: Int) -> String { "epub.reader.settings.theme.\(index)" }
}