diff --git a/app/src/main/java/io/legato/kazusa/lib/prefs/ThemeCardPreference.kt b/app/src/main/java/io/legato/kazusa/lib/prefs/ThemeCardPreference.kt index eb7d525f8..666aeea7d 100644 --- a/app/src/main/java/io/legato/kazusa/lib/prefs/ThemeCardPreference.kt +++ b/app/src/main/java/io/legato/kazusa/lib/prefs/ThemeCardPreference.kt @@ -19,6 +19,7 @@ import com.google.android.material.card.MaterialCardView import io.legato.kazusa.R import io.legato.kazusa.constant.EventBus import io.legato.kazusa.constant.PreferKey +import io.legato.kazusa.lib.dialogs.alert import io.legato.kazusa.utils.getPrefString import io.legato.kazusa.utils.postEvent import io.legato.kazusa.utils.restart @@ -96,11 +97,20 @@ class ThemeCardPreference(context: Context, attrs: AttributeSet) : Preference(co val isDynamicSwitch = (oldValue == "11" || value == "11") Handler(Looper.getMainLooper()).postDelayed({ if (isDynamicSwitch) { - context.restart() + context.alert(context.getString(R.string.restart_required_message)) { + okButton { + Handler(Looper.getMainLooper()).postDelayed({ + context.restart() + }, 100) + } + cancelButton { + context.toastOnUi(R.string.restart_later_message) + } + } } else { postEvent(EventBus.RECREATE, "") } - }, 300) + }, 100) } } } diff --git a/app/src/main/java/io/legato/kazusa/ui/config/ThemeConfigFragment.kt b/app/src/main/java/io/legato/kazusa/ui/config/ThemeConfigFragment.kt index b9009797c..dbb447631 100644 --- a/app/src/main/java/io/legato/kazusa/ui/config/ThemeConfigFragment.kt +++ b/app/src/main/java/io/legato/kazusa/ui/config/ThemeConfigFragment.kt @@ -179,16 +179,12 @@ class ThemeConfigFragment : PreferenceFragmentCompat(), //recreateActivities() } - PreferKey.customMode -> { - Handler(Looper.getMainLooper()).postDelayed({ - requireContext().restart() - }, 300) - } + PreferKey.customMode -> handleRestartRequired() PreferKey.pureBlack -> { Handler(Looper.getMainLooper()).postDelayed({ recreateActivities() - }, 300) + }, 100) } PreferKey.cPrimary -> { @@ -201,7 +197,7 @@ class ThemeConfigFragment : PreferenceFragmentCompat(), .build()) Handler(Looper.getMainLooper()).postDelayed({ recreateActivities() - }, 300) + }, 100) } PreferKey.cBackground, @@ -220,10 +216,7 @@ class ThemeConfigFragment : PreferenceFragmentCompat(), //recreateActivities() } - PreferKey.colorImage -> - Handler(Looper.getMainLooper()).postDelayed({ - requireContext().restart() - }, 100) + PreferKey.colorImage -> handleRestartRequired() PreferKey.bgImage, PreferKey.bgImageN -> { @@ -346,6 +339,18 @@ class ThemeConfigFragment : PreferenceFragmentCompat(), } } + private fun handleRestartRequired() { + alert(getString(R.string.restart_required_message)) { + okButton { + Handler(Looper.getMainLooper()).postDelayed({ + requireContext().restart() + }, 100) + } + cancelButton { + toastOnUi(R.string.restart_later_message) + } + } + } private fun alertImageBlurring(preferKey: String, success: () -> Unit) { alert(R.string.background_image_blurring) { diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index bc4c70166..ecc724f16 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -1296,4 +1296,7 @@ 使用图片生成主题颜色 若需使用种子颜色,请取消种子图片选择 点击以删除或更改 + 切换至自定义主题或调整自定义设置时,部分选项需要重启。 + 此更改需要重启应用才能生效,是否立即重启? + 更改将在下次启动应用时生效 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0179950cb..5ce75af79 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1297,4 +1297,7 @@ 使用图片生成主题颜色 若需使用种子颜色,请取消种子图片选择 Click to delete or change + 切换至自定义主题或调整自定义设置时,部分选项需要重启。 + 修改该选项需要重启 + 稍后重启 diff --git a/app/src/main/res/xml/pref_config_theme.xml b/app/src/main/res/xml/pref_config_theme.xml index 02e6c54e8..75508b4f6 100644 --- a/app/src/main/res/xml/pref_config_theme.xml +++ b/app/src/main/res/xml/pref_config_theme.xml @@ -24,6 +24,12 @@ android:entryValues="@array/themes_value" android:defaultValue="0" /> + +