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" />
+
+