From 176608b79781dff2e177a4b65face53a979d6b3f Mon Sep 17 00:00:00 2001 From: WhiredPlanck Date: Thu, 12 Dec 2024 15:45:40 +0800 Subject: [PATCH] refactor: improve user experience of settings pages --- .../trime/ui/fragments/AboutFragment.kt | 5 ---- .../trime/ui/fragments/ClipboardFragment.kt | 1 - .../trime/ui/fragments/KeyboardFragment.kt | 1 - .../trime/ui/fragments/LicenseFragment.kt | 1 - .../trime/ui/fragments/OtherFragment.kt | 1 - .../osfans/trime/ui/fragments/PrefFragment.kt | 3 +-- .../trime/ui/fragments/ProfileFragment.kt | 1 - ...ThemeColorFragment.kt => ThemeFragment.kt} | 3 +-- .../trime/ui/fragments/ToolkitFragment.kt | 1 - .../osfans/trime/ui/main/PrefMainActivity.kt | 6 +++++ app/src/main/res/navigation/pref_nav.xml | 26 +++++++++---------- app/src/main/res/values-zh-rCN/strings.xml | 18 ++++++------- app/src/main/res/values-zh-rTW/strings.xml | 18 ++++++------- app/src/main/res/values/strings.xml | 18 ++++++------- app/src/main/res/xml/about_preference.xml | 2 +- app/src/main/res/xml/keyboard_preference.xml | 2 +- app/src/main/res/xml/prefs.xml | 12 ++++----- 17 files changed, 56 insertions(+), 63 deletions(-) rename app/src/main/java/com/osfans/trime/ui/fragments/{ThemeColorFragment.kt => ThemeFragment.kt} (91%) diff --git a/app/src/main/java/com/osfans/trime/ui/fragments/AboutFragment.kt b/app/src/main/java/com/osfans/trime/ui/fragments/AboutFragment.kt index 9f43f4d52e..754fb91f89 100644 --- a/app/src/main/java/com/osfans/trime/ui/fragments/AboutFragment.kt +++ b/app/src/main/java/com/osfans/trime/ui/fragments/AboutFragment.kt @@ -71,11 +71,6 @@ class AboutFragment : PaddingPreferenceFragment() { } } - override fun onResume() { - super.onResume() - viewModel.setToolbarTitle(getString(R.string.pref_about)) - } - companion object { private val DASH_G_PATTERN = Regex("^(.*-g)([0-9a-f]+)(.*)$") private val COMMON_PATTERN = Regex("^([^-]*)(-.*)$") diff --git a/app/src/main/java/com/osfans/trime/ui/fragments/ClipboardFragment.kt b/app/src/main/java/com/osfans/trime/ui/fragments/ClipboardFragment.kt index 806c8f29a9..4db84052c3 100644 --- a/app/src/main/java/com/osfans/trime/ui/fragments/ClipboardFragment.kt +++ b/app/src/main/java/com/osfans/trime/ui/fragments/ClipboardFragment.kt @@ -22,7 +22,6 @@ class ClipboardFragment : PaddingPreferenceFragment() { override fun onResume() { super.onResume() - viewModel.setToolbarTitle(getString(R.string.clipboard)) viewModel.disableTopOptionsMenu() } } diff --git a/app/src/main/java/com/osfans/trime/ui/fragments/KeyboardFragment.kt b/app/src/main/java/com/osfans/trime/ui/fragments/KeyboardFragment.kt index 0725a864b1..c965af1967 100644 --- a/app/src/main/java/com/osfans/trime/ui/fragments/KeyboardFragment.kt +++ b/app/src/main/java/com/osfans/trime/ui/fragments/KeyboardFragment.kt @@ -54,7 +54,6 @@ class KeyboardFragment : override fun onResume() { super.onResume() - viewModel.setToolbarTitle(getString(R.string.pref_keyboard)) viewModel.disableTopOptionsMenu() preferenceScreen.sharedPreferences?.registerOnSharedPreferenceChangeListener(this) } diff --git a/app/src/main/java/com/osfans/trime/ui/fragments/LicenseFragment.kt b/app/src/main/java/com/osfans/trime/ui/fragments/LicenseFragment.kt index 31aaf69391..c200f88ce7 100644 --- a/app/src/main/java/com/osfans/trime/ui/fragments/LicenseFragment.kt +++ b/app/src/main/java/com/osfans/trime/ui/fragments/LicenseFragment.kt @@ -54,7 +54,6 @@ class LicenseFragment : PaddingPreferenceFragment() { override fun onResume() { super.onResume() - viewModel.setToolbarTitle(getString(R.string.about__license)) viewModel.disableTopOptionsMenu() } diff --git a/app/src/main/java/com/osfans/trime/ui/fragments/OtherFragment.kt b/app/src/main/java/com/osfans/trime/ui/fragments/OtherFragment.kt index 88ff04acf7..89e1bbdeed 100644 --- a/app/src/main/java/com/osfans/trime/ui/fragments/OtherFragment.kt +++ b/app/src/main/java/com/osfans/trime/ui/fragments/OtherFragment.kt @@ -40,7 +40,6 @@ class OtherFragment : PaddingPreferenceFragment() { override fun onResume() { super.onResume() - viewModel.setToolbarTitle(getString(R.string.pref_other)) viewModel.disableTopOptionsMenu() } diff --git a/app/src/main/java/com/osfans/trime/ui/fragments/PrefFragment.kt b/app/src/main/java/com/osfans/trime/ui/fragments/PrefFragment.kt index 028e556341..e51a98eae8 100644 --- a/app/src/main/java/com/osfans/trime/ui/fragments/PrefFragment.kt +++ b/app/src/main/java/com/osfans/trime/ui/fragments/PrefFragment.kt @@ -23,7 +23,6 @@ class PrefFragment : PaddingPreferenceFragment() { override fun onResume() { super.onResume() - viewModel.setToolbarTitle(getString(R.string.trime_app_name)) viewModel.enableTopOptionsMenu() } @@ -70,7 +69,7 @@ class PrefFragment : PaddingPreferenceFragment() { true } get("pref_theme_and_color")?.setOnPreferenceClickListener { - findNavController().navigate(R.id.action_prefFragment_to_themeColorFragment) + findNavController().navigate(R.id.action_prefFragment_to_themeFragment) true } get("pref_clipboard")?.setOnPreferenceClickListener { diff --git a/app/src/main/java/com/osfans/trime/ui/fragments/ProfileFragment.kt b/app/src/main/java/com/osfans/trime/ui/fragments/ProfileFragment.kt index e578c2ac55..0d4565b2c2 100644 --- a/app/src/main/java/com/osfans/trime/ui/fragments/ProfileFragment.kt +++ b/app/src/main/java/com/osfans/trime/ui/fragments/ProfileFragment.kt @@ -174,7 +174,6 @@ class ProfileFragment : override fun onResume() { super.onResume() - viewModel.setToolbarTitle(getString(R.string.pref_profile)) viewModel.disableTopOptionsMenu() preferenceScreen.sharedPreferences?.registerOnSharedPreferenceChangeListener(this) } diff --git a/app/src/main/java/com/osfans/trime/ui/fragments/ThemeColorFragment.kt b/app/src/main/java/com/osfans/trime/ui/fragments/ThemeFragment.kt similarity index 91% rename from app/src/main/java/com/osfans/trime/ui/fragments/ThemeColorFragment.kt rename to app/src/main/java/com/osfans/trime/ui/fragments/ThemeFragment.kt index a85f73538b..8794dde1b2 100644 --- a/app/src/main/java/com/osfans/trime/ui/fragments/ThemeColorFragment.kt +++ b/app/src/main/java/com/osfans/trime/ui/fragments/ThemeFragment.kt @@ -16,7 +16,7 @@ import com.osfans.trime.ui.main.settings.ColorPickerDialog import com.osfans.trime.ui.main.settings.ThemePickerDialog import kotlinx.coroutines.launch -class ThemeColorFragment : PaddingPreferenceFragment() { +class ThemeFragment : PaddingPreferenceFragment() { private val viewModel: MainViewModel by activityViewModels() override fun onCreatePreferences( @@ -38,7 +38,6 @@ class ThemeColorFragment : PaddingPreferenceFragment() { override fun onResume() { super.onResume() - viewModel.setToolbarTitle(getString(R.string.pref_theme_and_color)) viewModel.disableTopOptionsMenu() } } diff --git a/app/src/main/java/com/osfans/trime/ui/fragments/ToolkitFragment.kt b/app/src/main/java/com/osfans/trime/ui/fragments/ToolkitFragment.kt index 843072316d..db4e7dd349 100644 --- a/app/src/main/java/com/osfans/trime/ui/fragments/ToolkitFragment.kt +++ b/app/src/main/java/com/osfans/trime/ui/fragments/ToolkitFragment.kt @@ -54,7 +54,6 @@ class ToolkitFragment : PaddingPreferenceFragment() { override fun onResume() { super.onResume() - viewModel.setToolbarTitle(getString(R.string.pref_toolkit)) viewModel.disableTopOptionsMenu() } } diff --git a/app/src/main/java/com/osfans/trime/ui/main/PrefMainActivity.kt b/app/src/main/java/com/osfans/trime/ui/main/PrefMainActivity.kt index f665056195..bac9e160be 100644 --- a/app/src/main/java/com/osfans/trime/ui/main/PrefMainActivity.kt +++ b/app/src/main/java/com/osfans/trime/ui/main/PrefMainActivity.kt @@ -107,6 +107,12 @@ class PrefMainActivity : AppCompatActivity() { } navHostFragment.navController.addOnDestinationChangedListener { _, dest, _ -> dest.label?.let { viewModel.setToolbarTitle(it.toString()) } + binding.prefToolbar.toolbar.subtitle = + if (dest.id == R.id.prefFragment) { + getString(R.string.trime_app_slogan) + } else { + "" + } } supportActionBar?.setDisplayHomeAsUpEnabled(true) diff --git a/app/src/main/res/navigation/pref_nav.xml b/app/src/main/res/navigation/pref_nav.xml index 80430d05e8..503b90f903 100644 --- a/app/src/main/res/navigation/pref_nav.xml +++ b/app/src/main/res/navigation/pref_nav.xml @@ -14,7 +14,7 @@ SPDX-License-Identifier: GPL-3.0-or-later + android:label="@string/trime_app_name" > + android:label="@string/profile" /> + android:label="@string/keyboard" /> + android:id="@+id/themeFragment" + android:name="com.osfans.trime.ui.fragments.ThemeFragment" + android:label="@string/theme" /> + android:label="@string/others" /> + android:label="@string/toolkit" /> + android:label="@string/about" > + android:label="@string/license" /> + android:label="@string/clipboard" /> RIME版本 OpenCC版本 更新日志 - 许可证 + 许可证 贡献代码 微软平台PRIME输入法 隐私策略 @@ -64,7 +64,7 @@ SPDX-License-Identifier: GPL-3.0-or-later 设置 其他输入法 夜间模式 - 其他设置 + 其他 显示通知栏图标 退出时清除缓存 用户文件夹 @@ -146,7 +146,7 @@ SPDX-License-Identifier: GPL-3.0-or-later 点击空格时,忽略Shift的锁定状态 点击0-9时,忽略Shift的锁定状态 点击符号键时,忽略Shift的锁定状态 - 工具箱 + 工具箱 导出 跳到最后 清除画面 @@ -157,17 +157,17 @@ SPDX-License-Identifier: GPL-3.0-or-later 应用程序崩溃了 Logcat 进程已创建 抱歉,但我们提供了日志以供调查。 - 键盘设置 - 关于 - 主题与配色 - 配置管理 + 键盘 + 关于 + 主题 + 配置 存储 维护 正在加载 恢复默认设置 成功 失败 - 设定存储位置和修改同步设置等 + 设定存储位置和修改同步设置等 用默认的内置配置覆盖共享目录中的相同文件 备份配置文件和同步用户词典 删除 @@ -226,7 +226,7 @@ SPDX-License-Identifier: GPL-3.0-or-later 忘记该词 同步 设置后台同步时间 - 候选词窗口 + 候选窗口 候选词显示模式 常规 预编辑码 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index d5bc7990e6..4c47aab8a5 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -24,7 +24,7 @@ SPDX-License-Identifier: GPL-3.0-or-later RIME版本 OpenCC版本 更新日誌 - 許可證 + 許可證 貢獻代碼 Win10 PRIME輸入法平臺 隱私權政策 @@ -68,7 +68,7 @@ SPDX-License-Identifier: GPL-3.0-or-later 設定 其他輸入法 夜間模式 - 其他設置 + 其他 顯示通知欄圖標 離開時清理記憶體 使用者資料夾 @@ -158,13 +158,13 @@ SPDX-License-Identifier: GPL-3.0-or-later 清除所有紀錄檔 要清除有紀錄檔嗎?(此動作不能復原) 清除畫面 - 工具箱 + 工具箱 Logcat 行程已建立 - 關於 - 主題與配色 - 配置管理 - 設定儲存位置和修改同步設定等 - 鍵盤設定 + 關於 + 主題 + 配置 + 設定儲存位置和修改同步設定等 + 鍵盤 儲存 維護 正在載入 @@ -226,7 +226,7 @@ SPDX-License-Identifier: GPL-3.0-or-later 忘記該詞 同步 設定後台同步時間 - 候选词窗口 + 候选窗口 候選詞顯示模式 常規 預編輯碼 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b7a3004477..0a7edf4402 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -24,7 +24,7 @@ SPDX-License-Identifier: GPL-3.0-or-later Rime Version OpenCC Version Change Log - License + License Contribute Win10 PRIME Platform Privacy Policy @@ -68,7 +68,7 @@ SPDX-License-Identifier: GPL-3.0-or-later Preferences Other IMEs Night Mode - Others + Others Show icon in notification bar Free memory on quit User directory @@ -111,7 +111,7 @@ SPDX-License-Identifier: GPL-3.0-or-later System default Min travel for gesture Click candidatec - Trimes with Your Keystrokes + Rimes with Your Keystrokes on Android External storage permission is not available External storage permission is granted External storage permission was denied, deployment or reading schemas and config may not be available @@ -161,17 +161,17 @@ SPDX-License-Identifier: GPL-3.0-or-later Clear Screen Export Jump to Bottom - Toolkit - Profile - Keyboard settings - - About + Toolkit + Profile + Keyboard + Theme + About Storage Maintenance Loading success failure - Define storage locations and change sync settings, etc. + Define storage locations and change sync settings, etc. Delete Edit Collect diff --git a/app/src/main/res/xml/about_preference.xml b/app/src/main/res/xml/about_preference.xml index e1b7b422fd..424d998c9b 100644 --- a/app/src/main/res/xml/about_preference.xml +++ b/app/src/main/res/xml/about_preference.xml @@ -51,7 +51,7 @@ SPDX-License-Identifier: GPL-3.0-or-later app:iconSpaceReserved="false"> + android:title="@string/keyboard"> + android:summary="@string/profile_summary"/>