Lazy load Properties::isDrawingEnabled.

Properties::isDrawingEnabled can unexpectedly return true
even if the system property debug.hwui.drawing_enabled is false,
if its called before RenderThread is created.

This commit changes the underlying logic to lazy load the
debug.hwui.drawing_enabled prop value.

Bug: 193920054
Test: call HardwareRendererCompat.isDrawingEnabled()) from a new test
Change-Id: Ib69577745c26595ed3964a4341086138dd5d34b0
(cherry picked from commit 8e1ab42f51c501949211746c46a02a7564ebf292)
diff --git a/libs/hwui/Properties.cpp b/libs/hwui/Properties.cpp
index 18fab8e..c804418 100644
--- a/libs/hwui/Properties.cpp
+++ b/libs/hwui/Properties.cpp
@@ -88,8 +88,7 @@
 
 StretchEffectBehavior Properties::stretchEffectBehavior = StretchEffectBehavior::ShaderHWUI;
 
-bool Properties::drawingEnabled = true;
-OverrideDrawingEnabled Properties::overrideDrawingEnabled = OverrideDrawingEnabled::Default;
+DrawingEnabled Properties::drawingEnabled = DrawingEnabled::NotInitialized;
 
 bool Properties::load() {
     bool prevDebugLayersUpdates = debugLayersUpdates;
@@ -144,10 +143,8 @@
 
     enableWebViewOverlays = base::GetBoolProperty(PROPERTY_WEBVIEW_OVERLAYS_ENABLED, false);
 
-    drawingEnabled = base::GetBoolProperty(PROPERTY_DRAWING_ENABLED, true);
-    if (!drawingEnabled) {
-        enableRTAnimations = false;
-    }
+    // call isDrawingEnabled to force loading of the property
+    isDrawingEnabled();
 
     return (prevDebugLayersUpdates != debugLayersUpdates) || (prevDebugOverdraw != debugOverdraw);
 }
@@ -219,16 +216,17 @@
 }
 
 void Properties::setDrawingEnabled(bool newDrawingEnabled) {
-    overrideDrawingEnabled =
-            newDrawingEnabled ? OverrideDrawingEnabled::On : OverrideDrawingEnabled::Off;
+    drawingEnabled = newDrawingEnabled ? DrawingEnabled::On : DrawingEnabled::Off;
     enableRTAnimations = newDrawingEnabled;
 }
 
 bool Properties::isDrawingEnabled() {
-    if (overrideDrawingEnabled == OverrideDrawingEnabled::Default) {
-        return drawingEnabled;
+    if (drawingEnabled == DrawingEnabled::NotInitialized) {
+        bool drawingEnabledProp = base::GetBoolProperty(PROPERTY_DRAWING_ENABLED, true);
+        drawingEnabled = drawingEnabledProp ? DrawingEnabled::On : DrawingEnabled::Off;
+        enableRTAnimations = drawingEnabledProp;
     }
-    return overrideDrawingEnabled == OverrideDrawingEnabled::On;
+    return drawingEnabled == DrawingEnabled::On;
 }
 
 }  // namespace uirenderer