From 1288d7da2e68dd5570d371e257638454d062429c Mon Sep 17 00:00:00 2001 From: HapeLee <1321903405@qq.com> Date: Mon, 20 Oct 2025 21:52:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BA=E4=BA=AE=E6=9A=97=E8=89=B2=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E6=B7=BB=E5=8A=A0=E5=BA=95=E9=83=A8=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legato/kazusa/ui/book/read/ReadMenu.kt | 26 +++++- .../read/config/ToolButtonConfigDialog.kt | 3 +- .../main/res/layout-land/view_read_menu.xml | 6 +- app/src/main/res/layout/item_tool_button.xml | 83 +++++++++++-------- app/src/main/res/layout/view_read_menu.xml | 21 ++--- app/src/main/res/values-zh/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 7 files changed, 86 insertions(+), 55 deletions(-) diff --git a/app/src/main/java/io/legato/kazusa/ui/book/read/ReadMenu.kt b/app/src/main/java/io/legato/kazusa/ui/book/read/ReadMenu.kt index 9df49e435..dd07dc873 100644 --- a/app/src/main/java/io/legato/kazusa/ui/book/read/ReadMenu.kt +++ b/app/src/main/java/io/legato/kazusa/ui/book/read/ReadMenu.kt @@ -23,6 +23,7 @@ import io.legato.kazusa.constant.PreferKey import io.legato.kazusa.databinding.ViewReadMenuBinding import io.legato.kazusa.help.config.AppConfig import io.legato.kazusa.help.config.LocalConfig +import io.legato.kazusa.help.config.ThemeConfig import io.legato.kazusa.help.coroutine.Coroutine import io.legato.kazusa.help.source.getSourceType import io.legato.kazusa.lib.dialogs.alert @@ -470,6 +471,7 @@ class ReadMenu @JvmOverloads constructor( contentDescription = btn.description tooltipText = btn.description strokeWidth = 0 + iconGravity = MaterialButton.ICON_GRAVITY_TEXT_START setOnClickListener { btn.onClick() } btn.onLongClick?.let { longAction -> setOnLongClickListener { @@ -478,8 +480,16 @@ class ReadMenu @JvmOverloads constructor( } } } - - group.addView(button) + group.addView(button, + MaterialButtonGroup.LayoutParams( + LayoutParams.WRAP_CONTENT, + LayoutParams.WRAP_CONTENT + ).apply { + weight = 1f + } + ) + val lp = button.layoutParams as MaterialButtonGroup.LayoutParams + lp.overflowText = btn.description buttonMap[btn.id] = button } } @@ -522,6 +532,18 @@ class ReadMenu @JvmOverloads constructor( iconRes = R.drawable.ic_bookmark, description = context.getString(R.string.bookmark), onClick = { runMenuOut { callBack.addBookmark() } } + ), + ToolButton( + id = "theme", + iconRes = if (AppConfig.isNightTheme) R.drawable.ic_daytime else R.drawable.ic_brightness, + description = context.getString(R.string.day_night_switch), + onClick = { + AppConfig.isNightTheme = !AppConfig.isNightTheme + ThemeConfig.applyDayNight(context) + buttonMap["theme"]?.setIconResource( + if (AppConfig.isNightTheme) R.drawable.ic_daytime else R.drawable.ic_brightness + ) + } ) ) } diff --git a/app/src/main/java/io/legato/kazusa/ui/book/read/config/ToolButtonConfigDialog.kt b/app/src/main/java/io/legato/kazusa/ui/book/read/config/ToolButtonConfigDialog.kt index ab74d601a..896d525e4 100644 --- a/app/src/main/java/io/legato/kazusa/ui/book/read/config/ToolButtonConfigDialog.kt +++ b/app/src/main/java/io/legato/kazusa/ui/book/read/config/ToolButtonConfigDialog.kt @@ -114,7 +114,7 @@ class ToolButtonConfigDialog : BaseBottomSheetDialogFragment(R.layout.dialog_too } private fun getAllButtonIds(): List { - return listOf("search", "auto_page", "catalog", "read_aloud", "setting", "addBookmark") + return listOf("search", "auto_page", "catalog", "read_aloud", "setting", "addBookmark", "theme") } private fun getButtonInfo(id: String): Pair { @@ -125,6 +125,7 @@ class ToolButtonConfigDialog : BaseBottomSheetDialogFragment(R.layout.dialog_too "read_aloud" -> R.drawable.ic_read_aloud to getString(R.string.read_aloud) "setting" -> R.drawable.ic_settings to getString(R.string.setting) "addBookmark" -> R.drawable.ic_bookmark to getString(R.string.bookmark) + "theme" -> R.drawable.ic_daytime to getString(R.string.day_night_switch) else -> R.drawable.ic_help to id } } diff --git a/app/src/main/res/layout-land/view_read_menu.xml b/app/src/main/res/layout-land/view_read_menu.xml index 60ea1e9c4..4b1da4775 100644 --- a/app/src/main/res/layout-land/view_read_menu.xml +++ b/app/src/main/res/layout-land/view_read_menu.xml @@ -183,14 +183,12 @@ android:id="@+id/bottom_view" android:layout_width="0dp" android:layout_height="wrap_content" + app:overflowMode="menu" android:layout_weight="2" android:importantForAccessibility="no" android:paddingVertical="8dp" - android:gravity="center" android:paddingHorizontal="16dp" - android:orientation="horizontal"> - - + android:orientation="horizontal"/> diff --git a/app/src/main/res/layout/item_tool_button.xml b/app/src/main/res/layout/item_tool_button.xml index a26640c73..0df3ef74e 100644 --- a/app/src/main/res/layout/item_tool_button.xml +++ b/app/src/main/res/layout/item_tool_button.xml @@ -1,45 +1,56 @@ - - - - + + android:clickable="true" + android:background="?attr/colorSurface" + android:foreground="?attr/selectableItemBackground" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="16dp" + android:paddingVertical="8dp"> - - + + - - + + - + + - + + + + diff --git a/app/src/main/res/layout/view_read_menu.xml b/app/src/main/res/layout/view_read_menu.xml index 8e9ba9650..7c6e32586 100644 --- a/app/src/main/res/layout/view_read_menu.xml +++ b/app/src/main/res/layout/view_read_menu.xml @@ -172,20 +172,17 @@ tools:ignore="TouchTargetSizeCheck"/> - + - - \ No newline at end of file diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index ff208f139..799ffe7cd 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -1300,4 +1300,5 @@ 此更改需要重启应用才能生效,是否立即重启? 更改将在下次启动应用时生效 选择书源分组 + 深浅色模式开关 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f19bcb339..8478aa313 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1301,4 +1301,5 @@ 修改该选项需要重启 稍后重启 选择书源分组 + 深浅色模式开关