Merge "Media doesn't clip based on shade footer" into tm-qpr-dev

This commit is contained in:
TreeHugger Robot
2022-11-23 11:15:42 +00:00
committed by Android (Google) Code Review
3 changed files with 27 additions and 3 deletions

View File

@@ -757,7 +757,8 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
return ShadeInterpolation.getContentAlpha(progress); return ShadeInterpolation.getContentAlpha(progress);
} }
private void updateQsBounds() { @VisibleForTesting
void updateQsBounds() {
if (mLastQSExpansion == 1.0f) { if (mLastQSExpansion == 1.0f) {
// Fully expanded, let's set the layout bounds as clip bounds. This is necessary because // 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 // 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); mQSPanelScrollView.getLocationOnScreen(mLocationTemp);
int left = mLocationTemp[0]; int left = mLocationTemp[0];
int top = mLocationTemp[1]; int top = mLocationTemp[1];
mQsMediaHost.getCurrentClipping().set(left, top, left + getView().getMeasuredWidth(), mQsMediaHost.getCurrentClipping().set(left, top,
left + getView().getMeasuredWidth(),
top + mQSPanelScrollView.getMeasuredHeight() top + mQSPanelScrollView.getMeasuredHeight()
- mQSPanelScrollView.getPaddingBottom()); - mQSPanelController.getPaddingBottom());
} }
private boolean headerWillBeAnimating() { private boolean headerWillBeAnimating() {

View File

@@ -239,5 +239,9 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
public boolean isBouncerInTransit() { public boolean isBouncerInTransit() {
return mStatusBarKeyguardViewManager.isPrimaryBouncerInTransit(); return mStatusBarKeyguardViewManager.isPrimaryBouncerInTransit();
} }
public int getPaddingBottom() {
return mView.getPaddingBottom();
}
} }

View File

@@ -19,6 +19,7 @@ import static com.android.systemui.statusbar.StatusBarState.SHADE;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyBoolean;
@@ -450,6 +451,23 @@ public class QSFragmentTest extends SysuiBaseFragmentTest {
verify(mQSPanelController).setListening(true, true); 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 @Override
protected Fragment instantiate(Context context, String className, Bundle arguments) { protected Fragment instantiate(Context context, String className, Bundle arguments) {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);