diff options
| author | 2022-11-23 18:42:54 +0000 | |
|---|---|---|
| committer | 2022-11-23 18:42:54 +0000 | |
| commit | fcf754df5b2c3898990cd4ee8e3713f913f9d69b (patch) | |
| tree | 023da4dd29a5501429fc2b00eed294517649f775 | |
| parent | b799b6cf599ba59e3273203d8acd55886964cc1d (diff) | |
| parent | e55bc444a46257896b788e54df6b2c15819b2dbe (diff) | |
Merge "Media doesn't clip based on shade footer" into tm-qpr-dev am: 39e905c3a2 am: e55bc444a4
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20501545
Change-Id: I070c297b3349484a3be2196fa0911a345fa362e1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
3 files changed, 27 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java index d9be2810d165..d35f71fe543e 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java @@ -757,7 +757,8 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca return ShadeInterpolation.getContentAlpha(progress); } - private void updateQsBounds() { + @VisibleForTesting + void updateQsBounds() { if (mLastQSExpansion == 1.0f) { // Fully expanded, let's set the layout bounds as clip bounds. This is necessary because // it's a scrollview and otherwise wouldn't be clipped. However, we set the horizontal @@ -773,9 +774,10 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca mQSPanelScrollView.getLocationOnScreen(mLocationTemp); int left = mLocationTemp[0]; int top = mLocationTemp[1]; - mQsMediaHost.getCurrentClipping().set(left, top, left + getView().getMeasuredWidth(), + mQsMediaHost.getCurrentClipping().set(left, top, + left + getView().getMeasuredWidth(), top + mQSPanelScrollView.getMeasuredHeight() - - mQSPanelScrollView.getPaddingBottom()); + - mQSPanelController.getPaddingBottom()); } private boolean headerWillBeAnimating() { diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java index 64962b495c96..1827eaf3fad1 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java @@ -239,5 +239,9 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> { public boolean isBouncerInTransit() { return mStatusBarKeyguardViewManager.isPrimaryBouncerInTransit(); } + + public int getPaddingBottom() { + return mView.getPaddingBottom(); + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java index 72e022ed7bbb..aedb9354e6db 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java @@ -19,6 +19,7 @@ import static com.android.systemui.statusbar.StatusBarState.SHADE; import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; @@ -450,6 +451,23 @@ public class QSFragmentTest extends SysuiBaseFragmentTest { verify(mQSPanelController).setListening(true, true); } + @Test + public void testUpdateQSBounds_setMediaClipCorrectly() { + QSFragment fragment = resumeAndGetFragment(); + disableSplitShade(); + + Rect mediaHostClip = new Rect(); + when(mQSPanelController.getPaddingBottom()).thenReturn(50); + setLocationOnScreen(mQSPanelScrollView, 25); + when(mQSPanelScrollView.getMeasuredHeight()).thenReturn(200); + when(mQSMediaHost.getCurrentClipping()).thenReturn(mediaHostClip); + + fragment.updateQsBounds(); + + assertEquals(25, mediaHostClip.top); + assertEquals(175, mediaHostClip.bottom); + } + @Override protected Fragment instantiate(Context context, String className, Bundle arguments) { MockitoAnnotations.initMocks(this); |