Просмотр исходного кода

fix: 同步窗口背景色与 Compose 主题背景色,优化背景色更新逻辑

5151561 3 месяцев назад
Родитель
Сommit
834102e3f1
1 измененных файлов с 7 добавлено и 2 удалено
  1. 7 2
      app/src/main/java/io/legado/app/base/BaseComposeActivity.kt

+ 7 - 2
app/src/main/java/io/legado/app/base/BaseComposeActivity.kt

@@ -85,7 +85,8 @@ abstract class BaseComposeActivity(
         } catch (_: Exception) {}
         } catch (_: Exception) {}
     }
     }
 
 
-    private var hasWindowBgImage = false
+    protected var hasWindowBgImage = false
+    private var lastWindowBgColor: Int? = null
 
 
     /**
     /**
      * 窗口背景色与 Compose 主题背景色同步。
      * 窗口背景色与 Compose 主题背景色同步。
@@ -102,7 +103,11 @@ abstract class BaseComposeActivity(
         }
         }
         SideEffect {
         SideEffect {
             if (!hasWindowBgImage) {
             if (!hasWindowBgImage) {
-                window.setBackgroundDrawable(backgroundColor.toArgb().toDrawable())
+                val colorInt = backgroundColor.toArgb()
+                if (lastWindowBgColor != colorInt) {
+                    window.setBackgroundDrawable(colorInt.toDrawable())
+                    lastWindowBgColor = colorInt
+                }
             }
             }
         }
         }
     }
     }