Loading services/core/java/com/android/server/wm/DisplayContent.java +2 −4 Original line number Diff line number Diff line Loading @@ -1713,9 +1713,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp } private int getMinimalTaskSizeDp() { final Context displayConfigurationContext = mAtmService.mContext.createConfigurationContext(getConfiguration()); final Resources res = displayConfigurationContext.getResources(); final Resources res = getDisplayUiContext().getResources(); final TypedValue value = new TypedValue(); res.getValue(R.dimen.default_minimal_size_resizable_task, value, true /* resolveRefs */); final int valueUnit = ((value.data >> COMPLEX_UNIT_SHIFT) & COMPLEX_UNIT_MASK); Loading Loading @@ -2716,6 +2714,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp if (mDisplayPolicy != null) { mDisplayPolicy.onConfigurationChanged(); mPinnedTaskController.onPostDisplayConfigurationChanged(); mMinSizeOfResizeableTaskDp = getMinimalTaskSizeDp(); } // Update IME parent if needed. updateImeParent(); Loading Loading @@ -2857,7 +2856,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp void onDisplayInfoChanged() { updateDisplayFrames(false /* notifyInsetsChange */); mMinSizeOfResizeableTaskDp = getMinimalTaskSizeDp(); mInputMonitor.layoutInputConsumers(mDisplayInfo.logicalWidth, mDisplayInfo.logicalHeight); mDisplayPolicy.onDisplayInfoChanged(mDisplayInfo); } Loading services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +4 −24 Original line number Diff line number Diff line Loading @@ -797,6 +797,7 @@ public class DisplayContentTests extends WindowTestsBase { final int baseDensity = 320; final float baseXDpi = 60; final float baseYDpi = 60; final int originalMinTaskSizeDp = displayContent.mMinSizeOfResizeableTaskDp; displayContent.mInitialDisplayWidth = baseWidth; displayContent.mInitialDisplayHeight = baseHeight; Loading @@ -814,6 +815,9 @@ public class DisplayContentTests extends WindowTestsBase { displayContent.setForcedDensity(forcedDensity, 0 /* userId */); verifySizes(displayContent, baseWidth, baseHeight, forcedDensity); // Verify that minimal task size (dp) doesn't change with density of display. assertEquals(originalMinTaskSizeDp, displayContent.mMinSizeOfResizeableTaskDp); // Verify that forcing resolution won't affect the already forced density. displayContent.setForcedSize(1800, 1200); verifySizes(displayContent, 1800, 1200, forcedDensity); Loading Loading @@ -1811,30 +1815,6 @@ public class DisplayContentTests extends WindowTestsBase { assertFalse(mDisplayContent.hasTopFixedRotationLaunchingApp()); } /** * Creates different types of displays, verifies that minimal task size doesn't change * with density of display. */ @Test public void testCalculatesDisplaySpecificMinTaskSizes() { DisplayContent defaultTestDisplay = new TestDisplayContent.Builder(mAtm, 1000, 2000).build(); final int defaultMinTaskSize = defaultTestDisplay.mMinSizeOfResizeableTaskDp; DisplayContent firstDisplay = new TestDisplayContent.Builder(mAtm, 1000, 2000) .setDensityDpi(300) .updateDisplayMetrics() .setDefaultMinTaskSizeDp(defaultMinTaskSize + 10) .build(); assertEquals(defaultMinTaskSize + 10, firstDisplay.mMinSizeOfResizeableTaskDp); DisplayContent secondDisplay = new TestDisplayContent.Builder(mAtm, 200, 200) .setDensityDpi(320) .updateDisplayMetrics() .setDefaultMinTaskSizeDp(defaultMinTaskSize + 20) .build(); assertEquals(defaultMinTaskSize + 20, secondDisplay.mMinSizeOfResizeableTaskDp); } @Test public void testRecentsNotRotatingWithFixedRotation() { unblockDisplayRotation(mDisplayContent); Loading services/tests/wmtests/src/com/android/server/wm/TestDisplayContent.java +1 −44 Original line number Diff line number Diff line Loading @@ -30,30 +30,18 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock; import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Insets; import android.graphics.Rect; import android.hardware.display.DisplayManagerGlobal; import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.Display; import android.view.DisplayCutout; import android.view.DisplayInfo; import com.android.server.wm.DisplayWindowSettings.SettingsProvider.SettingsEntry; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; class TestDisplayContent extends DisplayContent { public static final int DEFAULT_LOGICAL_DISPLAY_DENSITY = 300; Loading Loading @@ -105,13 +93,8 @@ class TestDisplayContent extends DisplayContent { private boolean mSystemDecorations = false; private int mStatusBarHeight = 0; private SettingsEntry mOverrideSettings; private DisplayMetrics mDisplayMetrics; @NonNull private DeviceStateController mDeviceStateController = mock(DeviceStateController.class); @Mock Context mMockContext; @Mock Resources mResources; Builder(ActivityTaskManagerService service, int width, int height) { mService = service; Loading @@ -124,8 +107,6 @@ class TestDisplayContent extends DisplayContent { // Set unique ID so physical display overrides are not inheritted from // DisplayWindowSettings. mInfo.uniqueId = generateUniqueId(); mDisplayMetrics = new DisplayMetrics(); updateDisplayMetrics(); } Builder(ActivityTaskManagerService service, DisplayInfo info) { mService = service; Loading Loading @@ -195,31 +176,7 @@ class TestDisplayContent extends DisplayContent { mInfo.logicalDensityDpi = dpi; return this; } Builder updateDisplayMetrics() { mInfo.getAppMetrics(mDisplayMetrics); return this; } Builder setDefaultMinTaskSizeDp(int valueDp) { MockitoAnnotations.initMocks(this); doReturn(mMockContext).when(mService.mContext).createConfigurationContext(any()); doReturn(mResources).when(mMockContext).getResources(); doAnswer( new Answer() { @Override public Object answer(InvocationOnMock i) { Object[] args = i.getArguments(); TypedValue v = (TypedValue) args[1]; v.type = TypedValue.TYPE_DIMENSION; v.data = TypedValue.createComplexDimension(valueDp, TypedValue.COMPLEX_UNIT_DIP); return null; } } ).when(mResources).getValue( eq(com.android.internal.R.dimen.default_minimal_size_resizable_task), any(TypedValue.class), eq(true)); return this; } Builder setDeviceStateController(@NonNull DeviceStateController deviceStateController) { mDeviceStateController = deviceStateController; return this; Loading Loading
services/core/java/com/android/server/wm/DisplayContent.java +2 −4 Original line number Diff line number Diff line Loading @@ -1713,9 +1713,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp } private int getMinimalTaskSizeDp() { final Context displayConfigurationContext = mAtmService.mContext.createConfigurationContext(getConfiguration()); final Resources res = displayConfigurationContext.getResources(); final Resources res = getDisplayUiContext().getResources(); final TypedValue value = new TypedValue(); res.getValue(R.dimen.default_minimal_size_resizable_task, value, true /* resolveRefs */); final int valueUnit = ((value.data >> COMPLEX_UNIT_SHIFT) & COMPLEX_UNIT_MASK); Loading Loading @@ -2716,6 +2714,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp if (mDisplayPolicy != null) { mDisplayPolicy.onConfigurationChanged(); mPinnedTaskController.onPostDisplayConfigurationChanged(); mMinSizeOfResizeableTaskDp = getMinimalTaskSizeDp(); } // Update IME parent if needed. updateImeParent(); Loading Loading @@ -2857,7 +2856,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp void onDisplayInfoChanged() { updateDisplayFrames(false /* notifyInsetsChange */); mMinSizeOfResizeableTaskDp = getMinimalTaskSizeDp(); mInputMonitor.layoutInputConsumers(mDisplayInfo.logicalWidth, mDisplayInfo.logicalHeight); mDisplayPolicy.onDisplayInfoChanged(mDisplayInfo); } Loading
services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +4 −24 Original line number Diff line number Diff line Loading @@ -797,6 +797,7 @@ public class DisplayContentTests extends WindowTestsBase { final int baseDensity = 320; final float baseXDpi = 60; final float baseYDpi = 60; final int originalMinTaskSizeDp = displayContent.mMinSizeOfResizeableTaskDp; displayContent.mInitialDisplayWidth = baseWidth; displayContent.mInitialDisplayHeight = baseHeight; Loading @@ -814,6 +815,9 @@ public class DisplayContentTests extends WindowTestsBase { displayContent.setForcedDensity(forcedDensity, 0 /* userId */); verifySizes(displayContent, baseWidth, baseHeight, forcedDensity); // Verify that minimal task size (dp) doesn't change with density of display. assertEquals(originalMinTaskSizeDp, displayContent.mMinSizeOfResizeableTaskDp); // Verify that forcing resolution won't affect the already forced density. displayContent.setForcedSize(1800, 1200); verifySizes(displayContent, 1800, 1200, forcedDensity); Loading Loading @@ -1811,30 +1815,6 @@ public class DisplayContentTests extends WindowTestsBase { assertFalse(mDisplayContent.hasTopFixedRotationLaunchingApp()); } /** * Creates different types of displays, verifies that minimal task size doesn't change * with density of display. */ @Test public void testCalculatesDisplaySpecificMinTaskSizes() { DisplayContent defaultTestDisplay = new TestDisplayContent.Builder(mAtm, 1000, 2000).build(); final int defaultMinTaskSize = defaultTestDisplay.mMinSizeOfResizeableTaskDp; DisplayContent firstDisplay = new TestDisplayContent.Builder(mAtm, 1000, 2000) .setDensityDpi(300) .updateDisplayMetrics() .setDefaultMinTaskSizeDp(defaultMinTaskSize + 10) .build(); assertEquals(defaultMinTaskSize + 10, firstDisplay.mMinSizeOfResizeableTaskDp); DisplayContent secondDisplay = new TestDisplayContent.Builder(mAtm, 200, 200) .setDensityDpi(320) .updateDisplayMetrics() .setDefaultMinTaskSizeDp(defaultMinTaskSize + 20) .build(); assertEquals(defaultMinTaskSize + 20, secondDisplay.mMinSizeOfResizeableTaskDp); } @Test public void testRecentsNotRotatingWithFixedRotation() { unblockDisplayRotation(mDisplayContent); Loading
services/tests/wmtests/src/com/android/server/wm/TestDisplayContent.java +1 −44 Original line number Diff line number Diff line Loading @@ -30,30 +30,18 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock; import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Insets; import android.graphics.Rect; import android.hardware.display.DisplayManagerGlobal; import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.Display; import android.view.DisplayCutout; import android.view.DisplayInfo; import com.android.server.wm.DisplayWindowSettings.SettingsProvider.SettingsEntry; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; class TestDisplayContent extends DisplayContent { public static final int DEFAULT_LOGICAL_DISPLAY_DENSITY = 300; Loading Loading @@ -105,13 +93,8 @@ class TestDisplayContent extends DisplayContent { private boolean mSystemDecorations = false; private int mStatusBarHeight = 0; private SettingsEntry mOverrideSettings; private DisplayMetrics mDisplayMetrics; @NonNull private DeviceStateController mDeviceStateController = mock(DeviceStateController.class); @Mock Context mMockContext; @Mock Resources mResources; Builder(ActivityTaskManagerService service, int width, int height) { mService = service; Loading @@ -124,8 +107,6 @@ class TestDisplayContent extends DisplayContent { // Set unique ID so physical display overrides are not inheritted from // DisplayWindowSettings. mInfo.uniqueId = generateUniqueId(); mDisplayMetrics = new DisplayMetrics(); updateDisplayMetrics(); } Builder(ActivityTaskManagerService service, DisplayInfo info) { mService = service; Loading Loading @@ -195,31 +176,7 @@ class TestDisplayContent extends DisplayContent { mInfo.logicalDensityDpi = dpi; return this; } Builder updateDisplayMetrics() { mInfo.getAppMetrics(mDisplayMetrics); return this; } Builder setDefaultMinTaskSizeDp(int valueDp) { MockitoAnnotations.initMocks(this); doReturn(mMockContext).when(mService.mContext).createConfigurationContext(any()); doReturn(mResources).when(mMockContext).getResources(); doAnswer( new Answer() { @Override public Object answer(InvocationOnMock i) { Object[] args = i.getArguments(); TypedValue v = (TypedValue) args[1]; v.type = TypedValue.TYPE_DIMENSION; v.data = TypedValue.createComplexDimension(valueDp, TypedValue.COMPLEX_UNIT_DIP); return null; } } ).when(mResources).getValue( eq(com.android.internal.R.dimen.default_minimal_size_resizable_task), any(TypedValue.class), eq(true)); return this; } Builder setDeviceStateController(@NonNull DeviceStateController deviceStateController) { mDeviceStateController = deviceStateController; return this; Loading