Merge "Fix stack height jump during lockscreen=>shade and aod<=>ls" into tm-dev

This commit is contained in:
Lyn Han
2022-04-27 17:44:51 +00:00
committed by Android (Google) Code Review
2 changed files with 41 additions and 1 deletions

View File

@@ -1233,6 +1233,11 @@ public class NotificationPanelViewController extends PanelViewController {
mKeyguardBottomArea.initQRCodeScanner(mQRCodeScannerController);
}
@VisibleForTesting
void setMaxDisplayedNotifications(int maxAllowed) {
mMaxAllowedKeyguardNotifications = maxAllowed;
}
private void updateMaxDisplayedNotifications(boolean recompute) {
if (recompute) {
mMaxAllowedKeyguardNotifications = Math.max(computeMaxKeyguardNotifications(), 1);
@@ -1463,7 +1468,11 @@ public class NotificationPanelViewController extends PanelViewController {
/**
* @return the maximum keyguard notifications that can fit on the screen
*/
private int computeMaxKeyguardNotifications() {
@VisibleForTesting
int computeMaxKeyguardNotifications() {
if (mAmbientState.getFractionToShade() > 0 || mAmbientState.getDozeAmount() > 0) {
return mMaxAllowedKeyguardNotifications;
}
float topPadding = mNotificationStackScrollLayoutController.getTopPadding();
float shelfIntrinsicHeight =
mNotificationShelfController.getVisibility() == View.GONE

View File

@@ -557,6 +557,37 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
mMainHandler.removeCallbacksAndMessages(null);
}
@Test
public void computeMaxKeyguardNotifications_lockscreenToShade_returnsExistingMax() {
when(mAmbientState.getFractionToShade()).thenReturn(0.5f);
mNotificationPanelViewController.setMaxDisplayedNotifications(-1);
// computeMaxKeyguardNotifications sets maxAllowed to 0 at minimum if it updates the value
assertThat(mNotificationPanelViewController.computeMaxKeyguardNotifications())
.isEqualTo(-1);
}
@Test
public void computeMaxKeyguardNotifications_dozeAmountNotZero_returnsExistingMax() {
when(mAmbientState.getDozeAmount()).thenReturn(0.5f);
mNotificationPanelViewController.setMaxDisplayedNotifications(-1);
// computeMaxKeyguardNotifications sets maxAllowed to 0 at minimum if it updates the value
assertThat(mNotificationPanelViewController.computeMaxKeyguardNotifications())
.isEqualTo(-1);
}
@Test
public void computeMaxKeyguardNotifications_noTransition_updatesMax() {
when(mAmbientState.getFractionToShade()).thenReturn(0f);
when(mAmbientState.getDozeAmount()).thenReturn(0f);
mNotificationPanelViewController.setMaxDisplayedNotifications(-1);
// computeMaxKeyguardNotifications sets maxAllowed to 0 at minimum if it updates the value
assertThat(mNotificationPanelViewController.computeMaxKeyguardNotifications())
.isNotEqualTo(-1);
}
@Test
public void testSetPanelScrimMinFraction() {
mNotificationPanelViewController.setPanelScrimMinFraction(0.5f);