Merge "Media doesn't clip based on shade footer" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
39e905c3a2
@@ -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() {
|
||||
|
||||
@@ -239,5 +239,9 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
|
||||
public boolean isBouncerInTransit() {
|
||||
return mStatusBarKeyguardViewManager.isPrimaryBouncerInTransit();
|
||||
}
|
||||
|
||||
public int getPaddingBottom() {
|
||||
return mView.getPaddingBottom();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user