feat(reader): radical UI simplification — only 5 tools, no overflow menu
- epubOverflowMenuSections: removed CUSTOMIZE_TOOLBAR, HIDDEN_TOOLS, TAP_TO_TURN, VOLUME_SCROLL, PAGE_TURN_ANIM, KEEP_SCREEN_ON, VISUAL_OPTIONS, AUTO_SCROLL, TTS_SETTINGS, BOOK_REPLACEMENTS, FILE_INFO - defaultReaderHiddenTools: hide everything except THEME, SLIDER, TOC, BOOKMARK, READING_MODE - defaultReaderToolOrder: only THEME, TOC, SLIDER (top bar) - defaultReaderBottomTools: only SLIDER, TOC (bottom bar) - loadHiddenTools: merge new defaults into saved prefs on upgrade - Result: reader shows only font/theme, navigation slider, chapters (TOC), bookmark, reading mode — like Myne/Book's Story - ':app:assembleOssDebug' passes, APK deployed.
This commit is contained in:
parent
bf964b3ee8
commit
9e0ac90613
2 changed files with 30 additions and 21 deletions
|
|
@ -275,39 +275,40 @@ internal fun epubOverflowMenuSections(
|
||||||
hasDeleteReflow: Boolean,
|
hasDeleteReflow: Boolean,
|
||||||
hasFileInfo: Boolean = true
|
hasFileInfo: Boolean = true
|
||||||
): List<EpubOverflowMenuSection> = buildList {
|
): List<EpubOverflowMenuSection> = buildList {
|
||||||
add(EpubOverflowMenuSection.CUSTOMIZE_TOOLBAR)
|
|
||||||
if (hasHiddenToolbarTools) add(EpubOverflowMenuSection.HIDDEN_TOOLS)
|
|
||||||
if (hasToggleReflow) add(EpubOverflowMenuSection.VIEW_ORIGINAL_PDF)
|
if (hasToggleReflow) add(EpubOverflowMenuSection.VIEW_ORIGINAL_PDF)
|
||||||
if (hasDeleteReflow) add(EpubOverflowMenuSection.DELETE_TEXT_VIEW)
|
if (hasDeleteReflow) add(EpubOverflowMenuSection.DELETE_TEXT_VIEW)
|
||||||
if (!hiddenTools.contains(ReaderTool.READING_MODE.name)) add(EpubOverflowMenuSection.READING_MODE)
|
if (!hiddenTools.contains(ReaderTool.READING_MODE.name)) add(EpubOverflowMenuSection.READING_MODE)
|
||||||
if (!hiddenTools.contains(ReaderTool.BOOKMARK.name)) add(EpubOverflowMenuSection.BOOKMARK)
|
if (!hiddenTools.contains(ReaderTool.BOOKMARK.name)) add(EpubOverflowMenuSection.BOOKMARK)
|
||||||
if (!hiddenTools.contains(ReaderTool.TAP_TO_TURN.name)) add(EpubOverflowMenuSection.TAP_TO_TURN)
|
|
||||||
if (!hiddenTools.contains(ReaderTool.VOLUME_SCROLL.name)) add(EpubOverflowMenuSection.VOLUME_SCROLL)
|
|
||||||
if (!hiddenTools.contains(ReaderTool.PAGE_TURN_ANIM.name)) add(EpubOverflowMenuSection.PAGE_TURN_ANIM)
|
|
||||||
if (!hiddenTools.contains(ReaderTool.KEEP_SCREEN_ON.name)) add(EpubOverflowMenuSection.KEEP_SCREEN_ON)
|
|
||||||
if (!hiddenTools.contains(ReaderTool.VISUAL_OPTIONS.name)) add(EpubOverflowMenuSection.VISUAL_OPTIONS)
|
|
||||||
if (!hiddenTools.contains(ReaderTool.AUTO_SCROLL.name)) add(EpubOverflowMenuSection.AUTO_SCROLL)
|
|
||||||
if (!hiddenTools.contains(ReaderTool.BOOK_REPLACEMENTS.name)) add(EpubOverflowMenuSection.BOOK_REPLACEMENTS)
|
|
||||||
if (
|
|
||||||
!hiddenTools.contains(ReaderTool.TTS_SETTINGS.name) ||
|
|
||||||
!hiddenTools.contains(ReaderTool.TTS_REPLACEMENTS.name)
|
|
||||||
) {
|
|
||||||
add(EpubOverflowMenuSection.TTS_SETTINGS)
|
|
||||||
}
|
|
||||||
if (hasFileInfo && !hiddenTools.contains(ReaderTool.FILE_INFO.name)) {
|
|
||||||
add(EpubOverflowMenuSection.FILE_INFO)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun defaultReaderHiddenTools(): Set<String> = setOf(
|
internal fun defaultReaderHiddenTools(): Set<String> = setOf(
|
||||||
ReaderTool.SCREEN_ORIENTATION.name,
|
ReaderTool.SCREEN_ORIENTATION.name,
|
||||||
ReaderTool.BRIGHTNESS.name
|
ReaderTool.BRIGHTNESS.name,
|
||||||
|
ReaderTool.DICTIONARY.name,
|
||||||
|
ReaderTool.FORMAT.name,
|
||||||
|
ReaderTool.SEARCH.name,
|
||||||
|
ReaderTool.AI_FEATURES.name,
|
||||||
|
ReaderTool.TTS_CONTROLS.name,
|
||||||
|
ReaderTool.FILE_INFO.name,
|
||||||
|
ReaderTool.TAP_TO_TURN.name,
|
||||||
|
ReaderTool.VOLUME_SCROLL.name,
|
||||||
|
ReaderTool.PAGE_TURN_ANIM.name,
|
||||||
|
ReaderTool.KEEP_SCREEN_ON.name,
|
||||||
|
ReaderTool.VISUAL_OPTIONS.name,
|
||||||
|
ReaderTool.AUTO_SCROLL.name,
|
||||||
|
ReaderTool.TTS_SETTINGS.name,
|
||||||
|
ReaderTool.TTS_REPLACEMENTS.name,
|
||||||
|
ReaderTool.BOOK_REPLACEMENTS.name,
|
||||||
)
|
)
|
||||||
|
|
||||||
internal fun defaultReaderToolOrder(): List<ReaderTool> = ReaderTool.entries.toList()
|
internal fun defaultReaderToolOrder(): List<ReaderTool> = listOf(
|
||||||
|
ReaderTool.THEME,
|
||||||
|
ReaderTool.TOC,
|
||||||
|
ReaderTool.SLIDER,
|
||||||
|
)
|
||||||
|
|
||||||
internal fun defaultReaderBottomTools(): Set<String> {
|
internal fun defaultReaderBottomTools(): Set<String> {
|
||||||
return ReaderTool.entries.filter { it.category == "Bottom Bar" }.map { it.name }.toSet()
|
return setOf(ReaderTool.SLIDER.name, ReaderTool.TOC.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun buildReaderToolbarItems(
|
internal fun buildReaderToolbarItems(
|
||||||
|
|
|
||||||
|
|
@ -380,6 +380,14 @@ private fun loadHiddenTools(context: Context): Set<String> {
|
||||||
return minimalHidden
|
return minimalHidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If saved tools don't include the new defaults, merge them in
|
||||||
|
val allShouldBeHidden = defaultReaderHiddenTools()
|
||||||
|
val merged = savedHiddenTools + allShouldBeHidden
|
||||||
|
if (merged != savedHiddenTools) {
|
||||||
|
prefs.edit { putStringSet(HIDDEN_TOOLS_KEY, merged) }
|
||||||
|
return merged
|
||||||
|
}
|
||||||
|
|
||||||
return savedHiddenTools
|
return savedHiddenTools
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue