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 459fe11ea..eb7d525f8 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
@@ -18,8 +18,12 @@ import androidx.recyclerview.widget.RecyclerView
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.utils.getPrefString
import io.legato.kazusa.utils.postEvent
import io.legato.kazusa.utils.restart
+import io.legato.kazusa.utils.toastOnUi
+import splitties.init.appCtx
@SuppressLint("ResourceType")
class ThemeCardPreference(context: Context, attrs: AttributeSet) : Preference(context, attrs) {
@@ -76,6 +80,14 @@ class ThemeCardPreference(context: Context, attrs: AttributeSet) : Preference(co
holder.card.setOnClickListener {
if (value != currentValue) {
+ if (value == "12") {
+ val hasLightBg = !appCtx.getPrefString(PreferKey.bgImage).isNullOrEmpty()
+ val hasDarkBg = !appCtx.getPrefString(PreferKey.bgImageN).isNullOrEmpty()
+ if (!hasLightBg || !hasDarkBg) {
+ context.toastOnUi(R.string.transparent_theme_alarm)
+ return@setOnClickListener
+ }
+ }
val oldValue = currentValue
currentValue = value
persistString(value)
diff --git a/app/src/main/res/xml/pref_config_theme.xml b/app/src/main/res/xml/pref_config_theme.xml
index e4d014960..416574da0 100644
--- a/app/src/main/res/xml/pref_config_theme.xml
+++ b/app/src/main/res/xml/pref_config_theme.xml
@@ -24,12 +24,6 @@
android:entryValues="@array/themes_value"
android:defaultValue="0" />
-
-