Revert suppression of recalculation to fix jump after aod->ls animation am: c003cb8785

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18581099

Change-Id: I090b83db4630087c3c4e9be88b278182317c4141
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Jeff DeCew
2022-05-25 14:57:08 +00:00
committed by Automerger Merge Worker
3 changed files with 27 additions and 14 deletions

View File

@@ -37,6 +37,7 @@ import kotlin.properties.Delegates.notNull
private const val TAG = "NotifStackSizeCalc"
private val DEBUG = Compile.IS_DEBUG && Log.isLoggable(TAG, Log.DEBUG)
private val SPEW = Compile.IS_DEBUG && Log.isLoggable(TAG, Log.VERBOSE)
/** Calculates number of notifications to display and the height of the notification stack. */
@SysUISingleton
@@ -87,9 +88,10 @@ constructor(
// Could be < 0 if the space available is less than the shelf size. Returns 0 in this case.
maxNotifications = max(0, maxNotifications)
log {
val sequence = if (SPEW) " stackHeightSequence=${stackHeightSequence.toList()}" else ""
"computeMaxKeyguardNotifications(" +
"availableSpace=$totalAvailableSpace" +
" shelfHeight=$shelfIntrinsicHeight) -> $maxNotifications"
" shelfHeight=$shelfIntrinsicHeight) -> $maxNotifications$sequence"
}
return maxNotifications
}

View File

@@ -192,6 +192,7 @@ import com.android.systemui.statusbar.policy.KeyguardUserSwitcherView;
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
import com.android.systemui.statusbar.window.StatusBarWindowStateController;
import com.android.systemui.unfold.SysUIUnfoldComponent;
import com.android.systemui.util.Compile;
import com.android.systemui.util.LargeScreenUtils;
import com.android.systemui.util.ListenerSet;
import com.android.systemui.util.Utils;
@@ -216,7 +217,8 @@ import javax.inject.Provider;
@CentralSurfacesComponent.CentralSurfacesScope
public class NotificationPanelViewController extends PanelViewController {
private static final boolean DEBUG_LOGCAT = Log.isLoggable(TAG, Log.DEBUG);
private static final boolean DEBUG_LOGCAT = Compile.IS_DEBUG && Log.isLoggable(TAG, Log.DEBUG);
private static final boolean SPEW_LOGCAT = Compile.IS_DEBUG && Log.isLoggable(TAG, Log.VERBOSE);
private static final boolean DEBUG_DRAWABLE = false;
/**
@@ -1294,6 +1296,8 @@ public class NotificationPanelViewController extends PanelViewController {
private void updateMaxDisplayedNotifications(boolean recompute) {
if (recompute) {
mMaxAllowedKeyguardNotifications = Math.max(computeMaxKeyguardNotifications(), 1);
} else {
if (SPEW_LOGCAT) Log.d(TAG, "Skipping computeMaxKeyguardNotifications() by request");
}
if (mKeyguardShowing && !mKeyguardBypassController.getBypassEnabled()) {
@@ -1546,6 +1550,19 @@ public class NotificationPanelViewController extends PanelViewController {
mNotificationStackScrollLayoutController.getHeight()
- staticTopPadding
- bottomPadding;
if (SPEW_LOGCAT) {
Log.d(TAG, "getSpaceForLockscreenNotifications()"
+ " availableSpace=" + availableSpace
+ " NSSL.height=" + mNotificationStackScrollLayoutController.getHeight()
+ " NSSL.top=" + mNotificationStackScrollLayoutController.getTop()
+ " staticTopPadding=" + staticTopPadding
+ " bottomPadding=" + bottomPadding
+ " lockIconPadding=" + lockIconPadding
+ " mIndicationBottomPadding=" + mIndicationBottomPadding
+ " mAmbientIndicationBottomPadding=" + mAmbientIndicationBottomPadding
);
}
return availableSpace;
}
@@ -1554,7 +1571,12 @@ public class NotificationPanelViewController extends PanelViewController {
*/
@VisibleForTesting
int computeMaxKeyguardNotifications() {
if (mAmbientState.getFractionToShade() > 0 || mAmbientState.getDozeAmount() > 0) {
if (mAmbientState.getFractionToShade() > 0) {
if (SPEW_LOGCAT) {
Log.v(TAG, "Internally skipping computeMaxKeyguardNotifications()"
+ " fractionToShade=" + mAmbientState.getFractionToShade()
);
}
return mMaxAllowedKeyguardNotifications;
}

View File

@@ -577,20 +577,9 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
.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