Loading services/core/java/com/android/server/wm/DisplayAreaPolicy.java +16 −7 Original line number Original line Diff line number Diff line Loading @@ -53,6 +53,12 @@ import java.util.List; * Policy that manages {@link DisplayArea}. * Policy that manages {@link DisplayArea}. */ */ public abstract class DisplayAreaPolicy { 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; protected final WindowManagerService mWmService; /** /** Loading Loading @@ -161,14 +167,17 @@ public abstract class DisplayAreaPolicy { TYPE_STATUS_BAR, TYPE_NOTIFICATION_SHADE, TYPE_WALLPAPER) TYPE_STATUS_BAR, TYPE_NOTIFICATION_SHADE, TYPE_WALLPAPER) .build()); .build()); } } rootHierarchy if (USE_DISPLAY_AREA_FOR_FULLSCREEN_MAGNIFICATION) { .addFeature(new Feature.Builder(wmService.mPolicy, "FullscreenMagnification", rootHierarchy.addFeature( new Feature.Builder(wmService.mPolicy, "FullscreenMagnification", FEATURE_FULLSCREEN_MAGNIFICATION) FEATURE_FULLSCREEN_MAGNIFICATION) .all() .all() .except(TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, TYPE_INPUT_METHOD, .except(TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, TYPE_INPUT_METHOD, TYPE_INPUT_METHOD_DIALOG, TYPE_MAGNIFICATION_OVERLAY, TYPE_INPUT_METHOD_DIALOG, TYPE_MAGNIFICATION_OVERLAY, TYPE_NAVIGATION_BAR, TYPE_NAVIGATION_BAR_PANEL) TYPE_NAVIGATION_BAR, TYPE_NAVIGATION_BAR_PANEL) .build()) .build()); } rootHierarchy .addFeature(new Feature.Builder(wmService.mPolicy, "ImePlaceholder", .addFeature(new Feature.Builder(wmService.mPolicy, "ImePlaceholder", FEATURE_IME_PLACEHOLDER) FEATURE_IME_PLACEHOLDER) .and(TYPE_INPUT_METHOD, TYPE_INPUT_METHOD_DIALOG) .and(TYPE_INPUT_METHOD, TYPE_INPUT_METHOD_DIALOG) Loading services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java +5 −17 Original line number Original line Diff line number Diff line Loading @@ -202,7 +202,7 @@ public class DisplayAreaPolicyBuilderTest { } } @Test @Test public void testBuilder_defaultPolicy_hasWindowedMagnificationFeature() { public void testBuilder_defaultPolicy_hasMagnificationFeature() { final DisplayAreaPolicy.Provider defaultProvider = DisplayAreaPolicy.Provider.fromResources( final DisplayAreaPolicy.Provider defaultProvider = DisplayAreaPolicy.Provider.fromResources( resourcesWithProvider("")); resourcesWithProvider("")); final DisplayAreaPolicyBuilder.Result defaultPolicy = final DisplayAreaPolicyBuilder.Result defaultPolicy = Loading @@ -210,28 +210,16 @@ public class DisplayAreaPolicyBuilderTest { mRoot, mImeContainer); mRoot, mImeContainer); final List<Feature> features = defaultPolicy.getFeatures(); final List<Feature> features = defaultPolicy.getFeatures(); boolean hasWindowedMagnificationFeature = false; 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; boolean hasFullscreenMagnificationFeature = false; for (Feature feature : features) { for (Feature feature : features) { hasWindowedMagnificationFeature |= feature.getId() == FEATURE_WINDOWED_MAGNIFICATION; hasFullscreenMagnificationFeature |= hasFullscreenMagnificationFeature |= feature.getId() == FEATURE_FULLSCREEN_MAGNIFICATION; feature.getId() == FEATURE_FULLSCREEN_MAGNIFICATION; } } assertThat(hasFullscreenMagnificationFeature).isTrue(); assertThat(hasWindowedMagnificationFeature).isTrue(); assertThat(hasFullscreenMagnificationFeature).isEqualTo( DisplayAreaPolicy.USE_DISPLAY_AREA_FOR_FULLSCREEN_MAGNIFICATION); } } @Test @Test Loading Loading
services/core/java/com/android/server/wm/DisplayAreaPolicy.java +16 −7 Original line number Original line Diff line number Diff line Loading @@ -53,6 +53,12 @@ import java.util.List; * Policy that manages {@link DisplayArea}. * Policy that manages {@link DisplayArea}. */ */ public abstract class DisplayAreaPolicy { 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; protected final WindowManagerService mWmService; /** /** Loading Loading @@ -161,14 +167,17 @@ public abstract class DisplayAreaPolicy { TYPE_STATUS_BAR, TYPE_NOTIFICATION_SHADE, TYPE_WALLPAPER) TYPE_STATUS_BAR, TYPE_NOTIFICATION_SHADE, TYPE_WALLPAPER) .build()); .build()); } } rootHierarchy if (USE_DISPLAY_AREA_FOR_FULLSCREEN_MAGNIFICATION) { .addFeature(new Feature.Builder(wmService.mPolicy, "FullscreenMagnification", rootHierarchy.addFeature( new Feature.Builder(wmService.mPolicy, "FullscreenMagnification", FEATURE_FULLSCREEN_MAGNIFICATION) FEATURE_FULLSCREEN_MAGNIFICATION) .all() .all() .except(TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, TYPE_INPUT_METHOD, .except(TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, TYPE_INPUT_METHOD, TYPE_INPUT_METHOD_DIALOG, TYPE_MAGNIFICATION_OVERLAY, TYPE_INPUT_METHOD_DIALOG, TYPE_MAGNIFICATION_OVERLAY, TYPE_NAVIGATION_BAR, TYPE_NAVIGATION_BAR_PANEL) TYPE_NAVIGATION_BAR, TYPE_NAVIGATION_BAR_PANEL) .build()) .build()); } rootHierarchy .addFeature(new Feature.Builder(wmService.mPolicy, "ImePlaceholder", .addFeature(new Feature.Builder(wmService.mPolicy, "ImePlaceholder", FEATURE_IME_PLACEHOLDER) FEATURE_IME_PLACEHOLDER) .and(TYPE_INPUT_METHOD, TYPE_INPUT_METHOD_DIALOG) .and(TYPE_INPUT_METHOD, TYPE_INPUT_METHOD_DIALOG) Loading
services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java +5 −17 Original line number Original line Diff line number Diff line Loading @@ -202,7 +202,7 @@ public class DisplayAreaPolicyBuilderTest { } } @Test @Test public void testBuilder_defaultPolicy_hasWindowedMagnificationFeature() { public void testBuilder_defaultPolicy_hasMagnificationFeature() { final DisplayAreaPolicy.Provider defaultProvider = DisplayAreaPolicy.Provider.fromResources( final DisplayAreaPolicy.Provider defaultProvider = DisplayAreaPolicy.Provider.fromResources( resourcesWithProvider("")); resourcesWithProvider("")); final DisplayAreaPolicyBuilder.Result defaultPolicy = final DisplayAreaPolicyBuilder.Result defaultPolicy = Loading @@ -210,28 +210,16 @@ public class DisplayAreaPolicyBuilderTest { mRoot, mImeContainer); mRoot, mImeContainer); final List<Feature> features = defaultPolicy.getFeatures(); final List<Feature> features = defaultPolicy.getFeatures(); boolean hasWindowedMagnificationFeature = false; 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; boolean hasFullscreenMagnificationFeature = false; for (Feature feature : features) { for (Feature feature : features) { hasWindowedMagnificationFeature |= feature.getId() == FEATURE_WINDOWED_MAGNIFICATION; hasFullscreenMagnificationFeature |= hasFullscreenMagnificationFeature |= feature.getId() == FEATURE_FULLSCREEN_MAGNIFICATION; feature.getId() == FEATURE_FULLSCREEN_MAGNIFICATION; } } assertThat(hasFullscreenMagnificationFeature).isTrue(); assertThat(hasWindowedMagnificationFeature).isTrue(); assertThat(hasFullscreenMagnificationFeature).isEqualTo( DisplayAreaPolicy.USE_DISPLAY_AREA_FOR_FULLSCREEN_MAGNIFICATION); } } @Test @Test Loading