Disable unused display area features

The amount of DisplayArea keeps growing.
Currently there are 51 areas by default.

The FEATURE_FULLSCREEN_MAGNIFICATION wasn't used for 4 years.
By disabling it, the amount is reduced from 51 to 38, which reduces
the overhead of traversal, configuration propagation and memory usage.

Bug: 154719717
Flag: EXEMPT skip unused initialization.
Test: atest WmTests:DisplayAreaPolicyBuilderTest# \
            testBuilder_defaultPolicy_hasMagnificationFeature
Change-Id: Ib24ebe737aec271b9cf2e01425d01bc071a3c91d

diff --git a/services/core/java/com/android/server/wm/DisplayAreaPolicy.java b/services/core/java/com/android/server/wm/DisplayAreaPolicy.java
index 5bec442..4b30a43 100644
--- a/services/core/java/com/android/server/wm/DisplayAreaPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayAreaPolicy.java
@@ -53,6 +53,12 @@
  * Policy that manages {@link DisplayArea}.
  */
 public abstract class DisplayAreaPolicy {
+    /**
+     * No corresponding use case yet (see b/154719717). The current implementation still uses
+     * {@link WindowState#shouldMagnify}.
+     */
+    static final boolean USE_DISPLAY_AREA_FOR_FULLSCREEN_MAGNIFICATION = false;
+
     protected final WindowManagerService mWmService;
 
     /**
@@ -161,14 +167,17 @@
                                         TYPE_STATUS_BAR, TYPE_NOTIFICATION_SHADE, TYPE_WALLPAPER)
                                 .build());
             }
+            if (USE_DISPLAY_AREA_FOR_FULLSCREEN_MAGNIFICATION) {
+                rootHierarchy.addFeature(
+                        new Feature.Builder(wmService.mPolicy, "FullscreenMagnification",
+                                FEATURE_FULLSCREEN_MAGNIFICATION)
+                                .all()
+                                .except(TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, TYPE_INPUT_METHOD,
+                                        TYPE_INPUT_METHOD_DIALOG, TYPE_MAGNIFICATION_OVERLAY,
+                                        TYPE_NAVIGATION_BAR, TYPE_NAVIGATION_BAR_PANEL)
+                                .build());
+            }
             rootHierarchy
-                    .addFeature(new Feature.Builder(wmService.mPolicy, "FullscreenMagnification",
-                            FEATURE_FULLSCREEN_MAGNIFICATION)
-                            .all()
-                            .except(TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, TYPE_INPUT_METHOD,
-                                    TYPE_INPUT_METHOD_DIALOG, TYPE_MAGNIFICATION_OVERLAY,
-                                    TYPE_NAVIGATION_BAR, TYPE_NAVIGATION_BAR_PANEL)
-                            .build())
                     .addFeature(new Feature.Builder(wmService.mPolicy, "ImePlaceholder",
                             FEATURE_IME_PLACEHOLDER)
                             .and(TYPE_INPUT_METHOD, TYPE_INPUT_METHOD_DIALOG)
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java b/services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java
index 22e411e..3f3b24a 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java
@@ -202,7 +202,7 @@
     }
 
     @Test
-    public void testBuilder_defaultPolicy_hasWindowedMagnificationFeature() {
+    public void testBuilder_defaultPolicy_hasMagnificationFeature() {
         final DisplayAreaPolicy.Provider defaultProvider = DisplayAreaPolicy.Provider.fromResources(
                 resourcesWithProvider(""));
         final DisplayAreaPolicyBuilder.Result defaultPolicy =
@@ -210,28 +210,16 @@
                         mRoot, mImeContainer);
         final List<Feature> features = defaultPolicy.getFeatures();
         boolean hasWindowedMagnificationFeature = false;
-        for (Feature feature : features) {
-            hasWindowedMagnificationFeature |= feature.getId() == FEATURE_WINDOWED_MAGNIFICATION;
-        }
-
-        assertThat(hasWindowedMagnificationFeature).isTrue();
-    }
-
-    @Test
-    public void testBuilder_defaultPolicy_hasFullscreenMagnificationFeature() {
-        final DisplayAreaPolicy.Provider defaultProvider = DisplayAreaPolicy.Provider.fromResources(
-                resourcesWithProvider(""));
-        final DisplayAreaPolicyBuilder.Result defaultPolicy =
-                (DisplayAreaPolicyBuilder.Result) defaultProvider.instantiate(mWms, mDisplayContent,
-                        mRoot, mImeContainer);
-        final List<Feature> features = defaultPolicy.getFeatures();
         boolean hasFullscreenMagnificationFeature = false;
         for (Feature feature : features) {
+            hasWindowedMagnificationFeature |= feature.getId() == FEATURE_WINDOWED_MAGNIFICATION;
             hasFullscreenMagnificationFeature |=
                     feature.getId() == FEATURE_FULLSCREEN_MAGNIFICATION;
         }
 
-        assertThat(hasFullscreenMagnificationFeature).isTrue();
+        assertThat(hasWindowedMagnificationFeature).isTrue();
+        assertThat(hasFullscreenMagnificationFeature).isEqualTo(
+                DisplayAreaPolicy.USE_DISPLAY_AREA_FOR_FULLSCREEN_MAGNIFICATION);
     }
 
     @Test