Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipSizeSpecHandler.java +14 −4 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.android.wm.shell.pip.PipUtils.dpToPx; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.Point; import android.graphics.PointF; Loading Loading @@ -366,11 +367,8 @@ public class PipSizeSpecHandler { mContext = context; mPipDisplayLayoutState = pipDisplayLayoutState; boolean enablePipSizeLargeScreen = SystemProperties .getBoolean("persist.wm.debug.enable_pip_size_large_screen", true); // choose between two implementations of size spec logic if (enablePipSizeLargeScreen) { if (supportsPipSizeLargeScreen()) { mSizeSpecSourceImpl = new SizeSpecLargeScreenOptimizedImpl(); } else { mSizeSpecSourceImpl = new SizeSpecDefaultImpl(); Loading Loading @@ -515,6 +513,18 @@ public class PipSizeSpecHandler { } } @VisibleForTesting boolean supportsPipSizeLargeScreen() { // TODO(b/271468706): switch Tv to having a dedicated SizeSpecSource once the SizeSpecSource // can be injected return SystemProperties .getBoolean("persist.wm.debug.enable_pip_size_large_screen", true) && !isTv(); } private boolean isTv() { return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK); } /** Dumps internal state. */ public void dump(PrintWriter pw, String prefix) { final String innerPrefix = prefix + " "; Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipSizeSpecHandlerTest.java +14 −5 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.wm.shell.pip.phone; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.when; Loading Loading @@ -76,7 +75,7 @@ public class PipSizeSpecHandlerTest extends ShellTestCase { @Mock private Resources mResources; private PipDisplayLayoutState mPipDisplayLayoutState; private PipSizeSpecHandler mPipSizeSpecHandler; private TestPipSizeSpecHandler mPipSizeSpecHandler; /** * Sets up static Mockito session for SystemProperties and mocks necessary static methods. Loading @@ -84,8 +83,6 @@ public class PipSizeSpecHandlerTest extends ShellTestCase { private static void setUpStaticSystemPropertiesSession() { sStaticMockitoSession = mockitoSession() .mockStatic(SystemProperties.class).startMocking(); // make sure the feature flag is on when(SystemProperties.getBoolean(anyString(), anyBoolean())).thenReturn(true); when(SystemProperties.get(anyString(), anyString())).thenAnswer(invocation -> { String property = invocation.getArgument(0); if (property.equals("com.android.wm.shell.pip.phone.def_percentage")) { Loading Loading @@ -161,7 +158,7 @@ public class PipSizeSpecHandlerTest extends ShellTestCase { mPipDisplayLayoutState.setDisplayLayout(displayLayout); setUpStaticSystemPropertiesSession(); mPipSizeSpecHandler = new PipSizeSpecHandler(mContext, mPipDisplayLayoutState); mPipSizeSpecHandler = new TestPipSizeSpecHandler(mContext, mPipDisplayLayoutState); // no overridden min edge size by default mPipSizeSpecHandler.setOverrideMinSize(null); Loading Loading @@ -214,4 +211,16 @@ public class PipSizeSpecHandlerTest extends ShellTestCase { Assert.assertEquals(expectedSize, actualSize); } static class TestPipSizeSpecHandler extends PipSizeSpecHandler { TestPipSizeSpecHandler(Context context, PipDisplayLayoutState displayLayoutState) { super(context, displayLayoutState); } @Override boolean supportsPipSizeLargeScreen() { return true; } } } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipSizeSpecHandler.java +14 −4 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.android.wm.shell.pip.PipUtils.dpToPx; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.Point; import android.graphics.PointF; Loading Loading @@ -366,11 +367,8 @@ public class PipSizeSpecHandler { mContext = context; mPipDisplayLayoutState = pipDisplayLayoutState; boolean enablePipSizeLargeScreen = SystemProperties .getBoolean("persist.wm.debug.enable_pip_size_large_screen", true); // choose between two implementations of size spec logic if (enablePipSizeLargeScreen) { if (supportsPipSizeLargeScreen()) { mSizeSpecSourceImpl = new SizeSpecLargeScreenOptimizedImpl(); } else { mSizeSpecSourceImpl = new SizeSpecDefaultImpl(); Loading Loading @@ -515,6 +513,18 @@ public class PipSizeSpecHandler { } } @VisibleForTesting boolean supportsPipSizeLargeScreen() { // TODO(b/271468706): switch Tv to having a dedicated SizeSpecSource once the SizeSpecSource // can be injected return SystemProperties .getBoolean("persist.wm.debug.enable_pip_size_large_screen", true) && !isTv(); } private boolean isTv() { return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK); } /** Dumps internal state. */ public void dump(PrintWriter pw, String prefix) { final String innerPrefix = prefix + " "; Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipSizeSpecHandlerTest.java +14 −5 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.wm.shell.pip.phone; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.when; Loading Loading @@ -76,7 +75,7 @@ public class PipSizeSpecHandlerTest extends ShellTestCase { @Mock private Resources mResources; private PipDisplayLayoutState mPipDisplayLayoutState; private PipSizeSpecHandler mPipSizeSpecHandler; private TestPipSizeSpecHandler mPipSizeSpecHandler; /** * Sets up static Mockito session for SystemProperties and mocks necessary static methods. Loading @@ -84,8 +83,6 @@ public class PipSizeSpecHandlerTest extends ShellTestCase { private static void setUpStaticSystemPropertiesSession() { sStaticMockitoSession = mockitoSession() .mockStatic(SystemProperties.class).startMocking(); // make sure the feature flag is on when(SystemProperties.getBoolean(anyString(), anyBoolean())).thenReturn(true); when(SystemProperties.get(anyString(), anyString())).thenAnswer(invocation -> { String property = invocation.getArgument(0); if (property.equals("com.android.wm.shell.pip.phone.def_percentage")) { Loading Loading @@ -161,7 +158,7 @@ public class PipSizeSpecHandlerTest extends ShellTestCase { mPipDisplayLayoutState.setDisplayLayout(displayLayout); setUpStaticSystemPropertiesSession(); mPipSizeSpecHandler = new PipSizeSpecHandler(mContext, mPipDisplayLayoutState); mPipSizeSpecHandler = new TestPipSizeSpecHandler(mContext, mPipDisplayLayoutState); // no overridden min edge size by default mPipSizeSpecHandler.setOverrideMinSize(null); Loading Loading @@ -214,4 +211,16 @@ public class PipSizeSpecHandlerTest extends ShellTestCase { Assert.assertEquals(expectedSize, actualSize); } static class TestPipSizeSpecHandler extends PipSizeSpecHandler { TestPipSizeSpecHandler(Context context, PipDisplayLayoutState displayLayoutState) { super(context, displayLayoutState); } @Override boolean supportsPipSizeLargeScreen() { return true; } } }