Merge "Fixing QS not showing up in split shade" into tm-qpr-dev am: 247c12603f

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

Change-Id: Ia35e1d994e65d3de10758e17e583bb4cd626afcc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Michał Brzeziński
2022-11-01 11:19:06 +00:00
committed by Automerger Merge Worker
2 changed files with 19 additions and 31 deletions

View File

@@ -41,7 +41,6 @@ import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_N
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_QUICK_SETTINGS_EXPANDED;
import static com.android.systemui.statusbar.StatusBarState.KEYGUARD;
import static com.android.systemui.statusbar.StatusBarState.SHADE;
import static com.android.systemui.statusbar.StatusBarState.SHADE_LOCKED;
import static com.android.systemui.statusbar.VibratorHelper.TOUCH_VIBRATION_ATTRIBUTES;
import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.ROWS_ALL;
import static com.android.systemui.statusbar.notification.stack.StackStateAnimator.ANIMATION_DURATION_FOLD_TO_AOD;
@@ -1954,7 +1953,7 @@ public final class NotificationPanelViewController {
public void closeQs() {
cancelQsAnimation();
setQsExpansion(mQsMinExpansionHeight);
setQsExpansionHeight(mQsMinExpansionHeight);
}
@VisibleForTesting
@@ -1992,7 +1991,7 @@ public final class NotificationPanelViewController {
}
float height = mQsExpansionHeight;
mQsExpansionAnimator.cancel();
setQsExpansion(height);
setQsExpansionHeight(height);
}
flingSettings(0 /* vel */, animateAway ? FLING_HIDE : FLING_COLLAPSE);
}
@@ -2205,7 +2204,7 @@ public final class NotificationPanelViewController {
// Already tracking because onOverscrolled was called. We need to update here
// so we don't stop for a frame until the next touch event gets handled in
// onTouchEvent.
setQsExpansion(h + mInitialHeightOnTouch);
setQsExpansionHeight(h + mInitialHeightOnTouch);
trackMovement(event);
return true;
} else {
@@ -2616,7 +2615,7 @@ public final class NotificationPanelViewController {
case MotionEvent.ACTION_MOVE:
if (DEBUG_LOGCAT) Log.d(TAG, "onQSTouch move");
mShadeLog.logMotionEvent(event, "onQsTouch: move action, setting QS expansion");
setQsExpansion(h + mInitialHeightOnTouch);
setQsExpansionHeight(h + mInitialHeightOnTouch);
if (h >= getFalsingThreshold()) {
mQsTouchAboveFalsingThreshold = true;
}
@@ -2663,7 +2662,7 @@ public final class NotificationPanelViewController {
// Reset scroll position and apply that position to the expanded height.
float height = mQsExpansionHeight;
setQsExpansion(height);
setQsExpansionHeight(height);
updateExpandedHeightToMaxHeight();
mNotificationStackScrollLayoutController.checkSnoozeLeavebehind();
@@ -2735,7 +2734,7 @@ public final class NotificationPanelViewController {
mQs.setExpanded(mQsExpanded);
}
void setQsExpansion(float height) {
void setQsExpansionHeight(float height) {
height = Math.min(Math.max(height, mQsMinExpansionHeight), mQsMaxExpansionHeight);
mQsFullyExpanded = height == mQsMaxExpansionHeight && mQsMaxExpansionHeight != 0;
boolean qsAnimatingAway = !mQsAnimatorExpand && mAnimatingQS;
@@ -3157,12 +3156,13 @@ public final class NotificationPanelViewController {
delay);
mIsQsTranslationResetAnimator = mQsTranslationForFullShadeTransition > 0.0f;
}
if (mSplitShadeEnabled) {
updateQsExpansionForLockscreenToShadeTransition(pxAmount);
}
float endPosition = 0;
if (pxAmount > 0.0f) {
if (mSplitShadeEnabled) {
float qsHeight = MathUtils.lerp(mQsMinExpansionHeight, mQsMaxExpansionHeight,
mLockscreenShadeTransitionController.getQSDragProgress());
setQsExpansionHeight(qsHeight);
}
if (mNotificationStackScrollLayoutController.getVisibleNotificationCount() == 0
&& !mMediaDataManager.hasActiveMediaOrRecommendation()) {
// No notifications are visible, let's animate to the height of qs instead
@@ -3200,18 +3200,6 @@ public final class NotificationPanelViewController {
updateQsExpansion();
}
private void updateQsExpansionForLockscreenToShadeTransition(float pxAmount) {
float qsExpansion = 0;
if (pxAmount > 0.0f) {
qsExpansion = MathUtils.lerp(mQsMinExpansionHeight, mQsMaxExpansionHeight,
mLockscreenShadeTransitionController.getQSDragProgress());
}
// SHADE_LOCKED means transition is over and we don't want further updates
if (mBarState != SHADE_LOCKED) {
setQsExpansion(qsExpansion);
}
}
/**
* Notify the panel that the pulse expansion has finished and that we're going to the full
* shade
@@ -3329,7 +3317,7 @@ public final class NotificationPanelViewController {
animator.setDuration(350);
}
animator.addUpdateListener(
animation -> setQsExpansion((Float) animation.getAnimatedValue()));
animation -> setQsExpansionHeight((Float) animation.getAnimatedValue()));
animator.addListener(new AnimatorListenerAdapter() {
private boolean mIsCanceled;
@@ -3470,7 +3458,7 @@ public final class NotificationPanelViewController {
}
float targetHeight = mQsMinExpansionHeight
+ qsExpansionFraction * (mQsMaxExpansionHeight - mQsMinExpansionHeight);
setQsExpansion(targetHeight);
setQsExpansionHeight(targetHeight);
}
updateExpandedHeight(expandedHeight);
updateHeader();
@@ -5339,7 +5327,7 @@ public final class NotificationPanelViewController {
mQsExpansionFromOverscroll = rounded != 0f;
mLastOverscroll = rounded;
updateQsState();
setQsExpansion(mQsMinExpansionHeight + rounded);
setQsExpansionHeight(mQsMinExpansionHeight + rounded);
}
@Override
@@ -5356,7 +5344,7 @@ public final class NotificationPanelViewController {
// make sure we can expand
setOverScrolling(false);
}
setQsExpansion(mQsExpansionHeight);
setQsExpansionHeight(mQsExpansionHeight);
boolean canExpand = isQsExpansionEnabled();
flingSettings(!canExpand && open ? 0f : velocity,
open && canExpand ? FLING_EXPAND : FLING_COLLAPSE, () -> {
@@ -5549,7 +5537,7 @@ public final class NotificationPanelViewController {
}
} else {
// this else branch means we are doing one of:
// - from KEYGUARD and SHADE (but not expanded shade)
// - from KEYGUARD to SHADE (but not fully expanded as when swiping from the top)
// - from SHADE to KEYGUARD
// - from SHADE_LOCKED to SHADE
// - getting notified again about the current SHADE or KEYGUARD state
@@ -5718,7 +5706,7 @@ public final class NotificationPanelViewController {
startQsSizeChangeAnimation(oldMaxHeight, mQsMaxExpansionHeight);
}
} else if (!mQsExpanded && mQsExpansionAnimator == null) {
setQsExpansion(mQsMinExpansionHeight + mLastOverscroll);
setQsExpansionHeight(mQsMinExpansionHeight + mLastOverscroll);
} else {
mShadeLog.v("onLayoutChange: qs expansion not set");
}

View File

@@ -1552,7 +1552,7 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
/* delay= */ 0
);
mNotificationPanelViewController.setQsExpansion(/* height= */ 123);
mNotificationPanelViewController.setQsExpansionHeight(/* height= */ 123);
// First for setTransitionToFullShadeAmount and then setQsExpansion
verify(mQs, times(2)).setQsExpansion(
@@ -1573,7 +1573,7 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
when(mNotificationStackScrollLayoutController.getNotificationSquishinessFraction())
.thenReturn(nsslSquishinessFraction);
mNotificationPanelViewController.setQsExpansion(/* height= */ 123);
mNotificationPanelViewController.setQsExpansionHeight(/* height= */ 123);
verify(mQs).setQsExpansion(
/* expansion= */ anyFloat(),