Fix some force_dark prop behaviors
* Make it persist.hwui.force_dark so the dev option
survices reboots.
* Remove the internal super-override behavior it applied
using only the intended ViewRootImpl theme-aware behavior.
Fixes: 127350499
Fixes: 130354206
Test: set dev option, verified nothing went dark. Set dark
theme, verified non-dark apps were force-darked. Rebooted
and verified property still set.
Change-Id: I43adcbc25320669510fb03b162c98cbd14612f55
diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java
index 3d3d5dc..3bae4b8 100644
--- a/core/java/android/view/ThreadedRenderer.java
+++ b/core/java/android/view/ThreadedRenderer.java
@@ -177,7 +177,7 @@
* Forces smart-dark to be always on.
* @hide
*/
- public static final String DEBUG_FORCE_DARK = "debug.hwui.force_dark";
+ public static final String DEBUG_FORCE_DARK = "persist.hwui.force_dark";
public static int EGL_CONTEXT_PRIORITY_HIGH_IMG = 0x3101;
public static int EGL_CONTEXT_PRIORITY_MEDIUM_IMG = 0x3102;
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index e71c7ed..055e2e8 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -1191,7 +1191,7 @@
if (useAutoDark) {
boolean forceDarkAllowedDefault =
- SystemProperties.getBoolean("debug.hwui.force_dark", false);
+ SystemProperties.getBoolean(ThreadedRenderer.DEBUG_FORCE_DARK, false);
TypedArray a = mContext.obtainStyledAttributes(R.styleable.Theme);
useAutoDark = a.getBoolean(R.styleable.Theme_isLightTheme, true)
&& a.getBoolean(R.styleable.Theme_forceDarkAllowed, forceDarkAllowedDefault);
diff --git a/libs/hwui/Properties.cpp b/libs/hwui/Properties.cpp
index 19f509c..56d1821 100644
--- a/libs/hwui/Properties.cpp
+++ b/libs/hwui/Properties.cpp
@@ -58,8 +58,6 @@
bool Properties::filterOutTestOverhead = false;
bool Properties::disableVsync = false;
bool Properties::skpCaptureEnabled = false;
-bool Properties::forceDarkMode = false;
-bool Properties::enableForceDarkSupport = true;
bool Properties::enableRTAnimations = true;
bool Properties::runningInEmulator = false;
@@ -126,10 +124,6 @@
runningInEmulator = property_get_bool(PROPERTY_QEMU_KERNEL, false);
- forceDarkMode = property_get_bool(PROPERTY_FORCE_DARK, false);
-
- enableForceDarkSupport = property_get_bool(PROPERTY_ENABLE_FORCE_DARK, true);
-
defaultRenderAhead = std::max(-1, std::min(2, property_get_int(PROPERTY_RENDERAHEAD,
render_ahead().value_or(0))));
diff --git a/libs/hwui/Properties.h b/libs/hwui/Properties.h
index 3e91c63..22e15c7 100644
--- a/libs/hwui/Properties.h
+++ b/libs/hwui/Properties.h
@@ -163,10 +163,6 @@
*/
#define PROPERTY_QEMU_KERNEL "ro.kernel.qemu"
-#define PROPERTY_FORCE_DARK "debug.hwui.force_dark"
-
-#define PROPERTY_ENABLE_FORCE_DARK "debug.hwui.force_dark_enabled"
-
#define PROPERTY_RENDERAHEAD "debug.hwui.render_ahead"
///////////////////////////////////////////////////////////////////////////////
@@ -237,8 +233,6 @@
static bool disableVsync;
static bool skpCaptureEnabled;
- static bool forceDarkMode;
- static bool enableForceDarkSupport;
// For experimentation b/68769804
ANDROID_API static bool enableRTAnimations;
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h
index f9de002..982c087 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -191,15 +191,6 @@
void setForceDark(bool enable) { mUseForceDark = enable; }
bool useForceDark() {
- // The force-dark override has the highest priority, followed by the disable setting
- // for the feature as a whole, followed last by whether or not this context has had
- // force dark set (typically automatically done via UIMode)
- if (Properties::forceDarkMode) {
- return true;
- }
- if (!Properties::enableForceDarkSupport) {
- return false;
- }
return mUseForceDark;
}