summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2022-11-23 12:00:05 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-11-23 12:00:05 +0000
commite55bc444a46257896b788e54df6b2c15819b2dbe (patch)
tree5f21c333b94094e60c9c969ad08ff6f603a5809e
parentfe16fe6f8c8329956917bf59a42295e61225027f (diff)
parent39e905c3a253786edd150159965fe7117d091cd9 (diff)
Merge "Media doesn't clip based on shade footer" into tm-qpr-dev am: 39e905c3a2
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20501545 Change-Id: Ic18817ccd1eb67751ece5f2763ad6ff6586b8085 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSFragment.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java18
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 1422a25bfe12..0b7ccbfe7c3f 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);