From 1638966ba45b255cee98e12b0b6cdbb44f8a6f0b Mon Sep 17 00:00:00 2001 From: HapeLee <1321903405@qq.com> Date: Sat, 17 Jan 2026 16:49:36 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BC=98=E5=8C=96]=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E4=B8=80=E4=B8=AA=E9=A1=B5=E9=9D=A2=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E8=BF=87=E6=B8=A1=E5=8A=A8=E7=94=BB=E7=9A=84=E5=BC=80=E5=85=B3?= =?UTF-8?q?=20#557?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test.yml | 2 +- .../java/io/legado/app/constant/PreferKey.kt | 1 + .../io/legado/app/help/config/AppConfig.kt | 9 ++++++- .../app/ui/config/ThemeConfigFragment.kt | 26 +++++++++++++------ .../io/legado/app/ui/main/MainActivity.kt | 3 ++- app/src/main/res/values-zh-rCN/strings.xml | 6 +++-- app/src/main/res/values/strings.xml | 3 ++- app/src/main/res/xml/pref_config_theme.xml | 6 +++++ 8 files changed, 42 insertions(+), 14 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 025404de2..cdb924797 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -337,7 +337,7 @@ jobs: uses: softprops/action-gh-release@v2 with: tag_name: ${{ needs.prepare.outputs.versionL }} - name: ${{ needs.prepare.outputs.is_release == 'true' && format('正式版 {0}', needs.prepare.outputs.versionL) || format('测试版 {0}', needs.prepare.outputs.versionL) }} + name: ${{ needs.prepare.outputs.is_release == 'true' && format('Release {0}', needs.prepare.outputs.versionL) || format('Pre-release {0}', needs.prepare.outputs.versionL) }} body: ${{ steps.get_commits.outputs.release_body }} prerelease: ${{ needs.prepare.outputs.is_release != 'true' }} files: | diff --git a/app/src/main/java/io/legado/app/constant/PreferKey.kt b/app/src/main/java/io/legado/app/constant/PreferKey.kt index 2ba8f7307..506620186 100644 --- a/app/src/main/java/io/legado/app/constant/PreferKey.kt +++ b/app/src/main/java/io/legado/app/constant/PreferKey.kt @@ -46,6 +46,7 @@ object PreferKey { const val enableReview = "enableReview" const val showRss = "showRss" const val showStatusBar = "showStatusBar" + const val swipeAnimation = "swipeAnimation" const val bookshelfLayout = "bookshelfLayout" const val bookshelfLayoutModePortrait = "bookshelfLayoutPortrait" const val bookshelfLayoutModeLandscape = "bookshelf_layout_landscape" diff --git a/app/src/main/java/io/legado/app/help/config/AppConfig.kt b/app/src/main/java/io/legado/app/help/config/AppConfig.kt index 6711223fa..82bd9280d 100644 --- a/app/src/main/java/io/legado/app/help/config/AppConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/AppConfig.kt @@ -53,7 +53,9 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { var themeMode = appCtx.getPrefString(PreferKey.themeMode, "0") var AppTheme = appCtx.getPrefString(PreferKey.appTheme, "0") - var containerOpacity = appCtx.getPrefInt(PreferKey.containerOpacity, 100) + + var swipeAnimation = appCtx.getPrefBoolean(PreferKey.swipeAnimation, true) + var useDefaultCover = appCtx.getPrefBoolean(PreferKey.useDefaultCover, false) var optimizeRender = CanvasRecorderFactory.isSupport && appCtx.getPrefBoolean(PreferKey.optimizeRender, false) @@ -998,4 +1000,9 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { return str * 60 * 1000L } + var containerOpacity: Int + get() = appCtx.getPrefInt(PreferKey.containerOpacity, 100) + set(value) { + appCtx.putPrefInt(PreferKey.containerOpacity, value) + } } diff --git a/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt index 43185f933..bbf0b464e 100644 --- a/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt +++ b/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt @@ -181,7 +181,7 @@ class ThemeConfigFragment : PreferenceFragmentCompat(), } - PreferKey.paletteStyle, PreferKey.pureBlack, PreferKey.enableBlur -> { + PreferKey.paletteStyle, PreferKey.pureBlack, PreferKey.enableBlur, PreferKey.swipeAnimation -> { ThemeSyncer.syncAll() Handler(Looper.getMainLooper()).postDelayed({ recreateActivities() @@ -248,25 +248,35 @@ class ThemeConfigFragment : PreferenceFragmentCompat(), .setValue(10) .setCustomButton((R.string.btn_default_s)) { putPrefInt(PreferKey.fontScale, 0) - recreateActivities() + Handler(Looper.getMainLooper()).postDelayed({ + recreateActivities() + }, 100) } .show { putPrefInt(PreferKey.fontScale, it) - recreateActivities() + Handler(Looper.getMainLooper()).postDelayed({ + recreateActivities() + }, 100) } PreferKey.containerOpacity -> NumberPickerDialog(requireContext()) .setTitle(getString(R.string.container_opacity)) .setMaxValue(100) .setMinValue(0) - .setValue(100) + .setValue(AppConfig.containerOpacity) .setCustomButton((R.string.btn_default_s)) { - putPrefInt(PreferKey.containerOpacity, 100) - ThemeSyncer.syncContainerOpacity() + AppConfig.containerOpacity = 100 + Handler(Looper.getMainLooper()).postDelayed({ + ThemeSyncer.syncContainerOpacity() + upPreferenceSummary(PreferKey.containerOpacity) + }, 100) } .show { - putPrefInt(PreferKey.containerOpacity, it) - ThemeSyncer.syncContainerOpacity() + AppConfig.containerOpacity = it + Handler(Looper.getMainLooper()).postDelayed({ + ThemeSyncer.syncContainerOpacity() + upPreferenceSummary(PreferKey.containerOpacity) + }, 100) } PreferKey.bgImage -> selectBgAction(false) diff --git a/app/src/main/java/io/legado/app/ui/main/MainActivity.kt b/app/src/main/java/io/legado/app/ui/main/MainActivity.kt index 059c2815a..9b13128db 100644 --- a/app/src/main/java/io/legado/app/ui/main/MainActivity.kt +++ b/app/src/main/java/io/legado/app/ui/main/MainActivity.kt @@ -96,6 +96,7 @@ open class MainActivity : VMBaseActivity(), private val fragmentMap = hashMapOf() private var bottomMenuCount = 4 private val realPositions = arrayOf(idBookshelf, idExplore, idRss, idMy) + private val swipeAnimation = AppConfig.swipeAnimation private val adapter by lazy { TabFragmentPageAdapter(this) } @@ -181,7 +182,7 @@ open class MainActivity : VMBaseActivity(), R.id.menu_my_config -> realPositions.indexOf(idMy) else -> 0 } - binding.viewPagerMain.setCurrentItem(index, true) + binding.viewPagerMain.setCurrentItem(index, swipeAnimation) return true } diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 41469116f..8f1698c25 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1363,12 +1363,13 @@ 滑动进度条时震动 编辑备注 书籍备注 - 自动检查新备份 + 保存至本地 + 选择操作 强调 颜色样式 反转音量键翻页方向 调色板样式 - 这里的选项仅可以控制使用Compose重写的界面。 + 这里的选项仅可以控制使用Compose重写的界面。对于禁用的选项,会在日后实现时开放,现在仅作占位。 启用控件模糊 总是使用下划线表示强调文本 适配特殊样式 @@ -1380,4 +1381,5 @@ %d 音频缓存保留时间(分钟) 当前%d, 输入 0 代表退出即刻清理。 + 启用滑动时动画 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 798039028..651760092 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1373,7 +1373,7 @@ 颜色样式 反转音量键翻页方向 调色板样式 - 这里的选项仅可以控制使用Compose重写的界面。 + 这里的选项仅可以控制使用Compose重写的界面。对于禁用的选项,会在日后实现时开放,现在仅作占位。 启用控件模糊 总是使用下划线表示强调文本 适配特殊样式 @@ -1385,4 +1385,5 @@ %d 音频缓存保留时间(分钟) 当前%d, 输入 0 代表退出即刻清理。 + 启用滑动时动画 diff --git a/app/src/main/res/xml/pref_config_theme.xml b/app/src/main/res/xml/pref_config_theme.xml index 2f125cd60..a1280284d 100644 --- a/app/src/main/res/xml/pref_config_theme.xml +++ b/app/src/main/res/xml/pref_config_theme.xml @@ -144,6 +144,12 @@ android:title="@string/show_status" app:iconSpaceReserved="false" /> + +