Loading libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubblePositionerTest.kt +19 −0 Original line number Diff line number Diff line Loading @@ -164,6 +164,25 @@ class BubblePositionerTest { assertThat(startPosition.y).isEqualTo(defaultYPosition) } @Test fun testGetRestingPosition_afterBoundsChange() { positioner.update(defaultDeviceConfig.copy(isLargeScreen = true, windowBounds = Rect(0, 0, 2000, 1600))) // Set the resting position to the right side var allowableStackRegion = positioner.getAllowableStackPositionRegion(1 /* bubbleCount */) val restingPosition = PointF(allowableStackRegion.right, allowableStackRegion.centerY()) positioner.restingPosition = restingPosition // Now make the device smaller positioner.update(defaultDeviceConfig.copy(isLargeScreen = false, windowBounds = Rect(0, 0, 1000, 1600))) // Check the resting position is on the correct side allowableStackRegion = positioner.getAllowableStackPositionRegion(1 /* bubbleCount */) assertThat(positioner.restingPosition.x).isEqualTo(allowableStackRegion.right) } @Test fun testHasUserModifiedDefaultPosition_false() { positioner.update(defaultDeviceConfig.copy(isLargeScreen = true, isRtl = true)) Loading libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubblePositioner.java +13 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,13 @@ public class BubblePositioner { @VisibleForTesting public void updateInternal(int rotation, Insets insets, Rect bounds) { BubbleStackView.RelativeStackPosition prevStackPosition = null; if (mRestingStackPosition != null && mScreenRect != null && !mScreenRect.equals(bounds)) { // Save the resting position as a relative position with the previous bounds, at the // end of the update we'll restore it based on the new bounds. prevStackPosition = new BubbleStackView.RelativeStackPosition(getRestingPosition(), getAllowableStackPositionRegion(1)); } mRotation = rotation; mInsets = insets; Loading Loading @@ -182,6 +189,12 @@ public class BubblePositioner { R.dimen.bubbles_flyout_min_width_large_screen); mMaxBubbles = calculateMaxBubbles(); if (prevStackPosition != null) { // Get the new resting position based on the updated values mRestingStackPosition = prevStackPosition.getAbsolutePositionInRegion( getAllowableStackPositionRegion(1)); } } /** Loading Loading
libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubblePositionerTest.kt +19 −0 Original line number Diff line number Diff line Loading @@ -164,6 +164,25 @@ class BubblePositionerTest { assertThat(startPosition.y).isEqualTo(defaultYPosition) } @Test fun testGetRestingPosition_afterBoundsChange() { positioner.update(defaultDeviceConfig.copy(isLargeScreen = true, windowBounds = Rect(0, 0, 2000, 1600))) // Set the resting position to the right side var allowableStackRegion = positioner.getAllowableStackPositionRegion(1 /* bubbleCount */) val restingPosition = PointF(allowableStackRegion.right, allowableStackRegion.centerY()) positioner.restingPosition = restingPosition // Now make the device smaller positioner.update(defaultDeviceConfig.copy(isLargeScreen = false, windowBounds = Rect(0, 0, 1000, 1600))) // Check the resting position is on the correct side allowableStackRegion = positioner.getAllowableStackPositionRegion(1 /* bubbleCount */) assertThat(positioner.restingPosition.x).isEqualTo(allowableStackRegion.right) } @Test fun testHasUserModifiedDefaultPosition_false() { positioner.update(defaultDeviceConfig.copy(isLargeScreen = true, isRtl = true)) Loading
libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubblePositioner.java +13 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,13 @@ public class BubblePositioner { @VisibleForTesting public void updateInternal(int rotation, Insets insets, Rect bounds) { BubbleStackView.RelativeStackPosition prevStackPosition = null; if (mRestingStackPosition != null && mScreenRect != null && !mScreenRect.equals(bounds)) { // Save the resting position as a relative position with the previous bounds, at the // end of the update we'll restore it based on the new bounds. prevStackPosition = new BubbleStackView.RelativeStackPosition(getRestingPosition(), getAllowableStackPositionRegion(1)); } mRotation = rotation; mInsets = insets; Loading Loading @@ -182,6 +189,12 @@ public class BubblePositioner { R.dimen.bubbles_flyout_min_width_large_screen); mMaxBubbles = calculateMaxBubbles(); if (prevStackPosition != null) { // Get the new resting position based on the updated values mRestingStackPosition = prevStackPosition.getAbsolutePositionInRegion( getAllowableStackPositionRegion(1)); } } /** Loading