4c088448c35df1d7bbbdb61c51d4b7af5d31841f
* 初始版本 * refactor(reader): MVI architecture + menu settings overhaul MVI/UDF Architecture: - Add ReadBookContract: UiState, Intent, Effect, Sheet, Dialog, ConfigUpdate - Refactor ReadBookViewModel with onIntent() entry point - Add ReadBookScreen/ReadBookRouteScreen stateless composables - Add ReadBookColorTheme for reader-specific theme override - Add ReadConfigContract for read config screen MVI ReadStyleSheet Decomposition: - Split ReadStyleSheet into SystemMenuPage, TextTitleSheet, HeaderFooterPage, TitleBarIconSheet, GlobalThemePage - Each page owns its tab state, color picker, and config mutations Data Layer (DataStore-backed Repositories): - Add ReadSettingsRepository with ReadPreferences flow - Add MangaSettingsRepository with MangaPreferences flow - Add ReadAloudSettingsRepository for TTS settings - Add ReadStyleRepository (file I/O for read style configs) - Add ReadBookStyleConfigRepository (repository boundary) - Add ReadStyleResolver for background/theme resolution - Remove legacy ReadTipConfig (merged into ReadBookConfig) - Register all new repositories in Koin appModule Menu Settings: - Add unified border settings (width, color, colorNight) for both top and bottom bars with drawWithCache + drawPath - Add ColorModePill with light/dark toggle and '+' icon for no-color state in TinySettingItems - Add TinyClearColorModeSettingItem for border color config - Add menu color customization (bg, accent, container) with day/night variants and seed color mode - Add bottom bar layout settings (corner radius, margins) - Add custom icon support for menu buttons and title bar icons - Add title bar icon position setting Config Pipeline: - Consolidate all ReadBookConfig mutations into typed ConfigUpdate sealed interface with legacy UP_CONFIG code mapping - Add resolvedMenuBorderColor (auto day/night switching) - Add 20 new PreferKey constants for menu settings - Update manga config dialogs to use MangaSettingsRepository - Update ReadConfigViewModel with DataStore flow observation * feat(reader): add liquid glass menu bars and floating bottom bar - Integrate com.kyant.backdrop 2.0.0 for liquid glass blur/vibrancy effects on reading menu top bar and bottom bar (Android 13+) - Add floating bottom bar toggle replacing manual margin sliders - Extract ReadMenuConfig data class for proper MVI state management of all menu configuration properties - Enable edge-to-edge in BaseComposeActivity, remove manual navigation bar color management across base classes and controller - Fix fullScreen() to use setDecorFitsSystemWindows(false) * Refactor series button rendering * 实现液态玻璃 * 优化液态玻璃 * @ fix(reader): fix MVI behavior issues and improve sheet lifecycle Behavior fixes: - Fix AddSourceAsNewBook empty implementation — wire intent to addToBookshelf - Fix content edit loading stuck on null chapter/content — use onFinally - Fix cannot save empty content — remove isEmpty guard, use title as loaded proxy - Fix bookmark not opening — use openReadMenuRoute instead of dead activeSheet path - Fix chapter source sheet persists — animate dismiss via show param before removal - Fix chapter source reopens to TOC — reset showToc in initData - Fix SaveChapterContent saves to wrong chapter — carry chapterIndex in intent - Fix chapter source search runs after dismiss — cancel searchJob in dispose - Fix "go to background" button in ReadAloud — use CloseReadBook intent Architecture improvements: - ReadMenuConfig uses ImmutableMap for Compose stability - Fix stale remember in ReadBookMenuBar title bar icons - Move icon picker file IO from composable to ViewModel - Route launcher results through MVI intents instead of direct calls - Fix ChangeChapterSource effect collector key — use viewModel not Unit - Make ReadAloudConfigSheet UDF-compliant — stateless with intents - Remove main menu buttons from AutoRead and ReadAloud sheets @ * @ refactor(reader): use Material Icons and ConfirmDismissButtonsRow - TitleBarIconSheet: replace drawable resources with Icons library, use ConfirmDismissButtonsRow for save/cancel buttons - SystemMenuPage MenuCustomIconSheet: same icon and button treatment - ReadBookMenuBar: update ToolButtonDef/TitleBarIconDef to use ImageVector instead of drawable resource Int - Use AutoMirrored variants for List and HelpOutline icons @ * feat: 优化液态玻璃 * feat: 优化液态玻璃 * fix(AppLogSheet): 从本地文件读取日志,替代内存列表 * @ feat(reader): highlight rules, theme refactor & MVI improvements - Add HighlightRule entity, DAO, and config/edit sheets - Add ThemeConfigStore, remove OldThemeConfig - Refactor ReadBookContract/ViewModel/Screen for deeper MVI - Add CharStyle for text rendering, refactor TextLine/TextChapterLayout - Add SectionTitle, TinySettingItems UI components - Remove legacy XML layouts (regex_color_config) - Update database schema to v90 - Various sheet and widget refinements @ * @ fix: address PR review feedback - ReadStyleRepository: fix copy-paste bug (bgStrNight→bgStr) + add bgTypeNight import - BgImageSpan: replace Bitmap.createScaledBitmap with BitmapShader matrix scaling - HighlightRule: use UUID.randomUUID() instead of System.currentTimeMillis() - ChangeSourceSearchUseCase: guard against empty chapters list @ * @fix: remove residual regexColorRules references after merge - ChangeSourceSearchUseCase: adapt filter lambda to new 3-param signature - TextChapterLayout: remove globalRegexResult field, preApplyRegexColorRules call, and the entire regexColorRules fullTextBuilder block @ * fix: 图标间距
Legado with MD3
📖 介绍
Legado with MD3 是基于开源项目 阅读 (Legado) 开发的 Material Design 3 风格重构版本。
本项目在对 UI 进行重绘的基础上,加入了多项分支独有功能,并正在逐步从传统 View 迁移至 Jetpack Compose 框架,目标是提供更加现代、流畅且一致的阅读体验。
Caution
注意事项: 由于使用 Monet 引擎重构了主题系统,官方版本的主题在此版本中不再可用。
Android 12 以下设备: 暂时无法使用自定义主题与动态取色功能。此限制将在 Jetpack Compose 迁移完成后得到解决(由于开发者精力有限,迁移过程将持续较长时间)。
✨ 分支特性
相比于官方版本,本项目具有以下独有特性:
- 全新主题: 全新 Material Design 3 设计界面,支持 预测性返回手势 与 共享元素动画。
- 阅读界面: 更加个性化的阅读界面与菜单配置。
- 阅读记录: 提供详尽的阅读记录,支持 时间轴 与 章节维度 统计。
- 体验增强: 更健全的 漫画阅读 、 有声书 与 发现 等界面体验。
- 书架布局: 更多的书架布局选择,针对 平板端 进行了专门的界面优化。
- 实用功能: 新增书籍备注、智能伴生分组(自动归类已读/未读),支持手柄上下翻页。
🛠️ 核心功能
- 多格式支持: 支持本地 TXT、EPUB 阅读,智能扫描本地文件。
- 高度自定义: 切换字体、背景、行距、段距、加粗、简繁转换等。
- 净化替换: 强力去除广告,替换正文内容。
- 翻页模式: 覆盖、仿真、滑动、滚动等多种模式随心切换。
- 完全开源: 无广告,持续迭代优化。
❤️ 致谢
感谢以下优秀开源项目提供的灵感与技术支持:
- gedoor/legado (这个项目最吊的老爹)
- Luoyacheng/legado (提供了更多的扩展功能)
- komikku-app/komikku (提供了界面灵感与一些 Compose 的优秀控件)
- FoedusProgramme/Gramophone (提供了界面灵感与 View 系统的封面取色方法)
- jordond/MaterialKolor (基于 Jetpack Compose 优秀的取色实现)
- Calvin-LL/Reorderable (基于 Jetpack Compose 优秀的拖动排序实现)
- 以及更多开源项目...
⚠️ 免责声明
项目内容不代表原作者立场,与原项目作者不存在任何隶属或授权关系。
Languages
Kotlin
88.6%
Java
7.2%
HTML
1.2%
CSS
1.1%
Vue
0.9%
Other
0.9%