Merge "[Bouncer] Fix swipe to unlock being too fast." into tm-qpr-dev am: 6507d19c7e

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

Change-Id: Ifce42adf80294245e648757f9aab6b5c3fca7158
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Aaron Liu
2022-10-05 21:12:19 +00:00
committed by Automerger Merge Worker
2 changed files with 38 additions and 1 deletions

View File

@@ -1297,7 +1297,9 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
+ mAmbientState.getOverExpansion()
- getCurrentOverScrollAmount(false /* top */);
float fraction = mAmbientState.getExpansionFraction();
if (mAmbientState.isBouncerInTransit()) {
// If we are on quick settings, we need to quickly hide it to show the bouncer to avoid an
// overlap. Otherwise, we maintain the normal fraction for smoothness.
if (mAmbientState.isBouncerInTransit() && mQsExpansionFraction > 0f) {
fraction = BouncerPanelExpansionCalculator.aboutToShowBouncerProgress(fraction);
}
final float stackY = MathUtils.lerp(0, endTopPosition, fraction);

View File

@@ -55,6 +55,7 @@ import android.view.ViewGroup;
import androidx.test.annotation.UiThreadTest;
import androidx.test.filters.SmallTest;
import com.android.keyguard.BouncerPanelExpansionCalculator;
import com.android.systemui.ExpandHelper;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
@@ -178,6 +179,40 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
doNothing().when(mNotificationShelf).setAnimationsEnabled(anyBoolean());
}
@Test
public void testUpdateStackHeight_qsExpansionGreaterThanZero() {
final float expansionFraction = 0.2f;
final float overExpansion = 50f;
mStackScroller.setQsExpansionFraction(1f);
mAmbientState.setExpansionFraction(expansionFraction);
mAmbientState.setOverExpansion(overExpansion);
when(mAmbientState.isBouncerInTransit()).thenReturn(true);
mStackScroller.setExpandedHeight(100f);
float expected = MathUtils.lerp(0, overExpansion,
BouncerPanelExpansionCalculator.aboutToShowBouncerProgress(expansionFraction));
assertThat(mAmbientState.getStackY()).isEqualTo(expected);
}
@Test
public void testUpdateStackHeight_qsExpansionZero() {
final float expansionFraction = 0.2f;
final float overExpansion = 50f;
mStackScroller.setQsExpansionFraction(0f);
mAmbientState.setExpansionFraction(expansionFraction);
mAmbientState.setOverExpansion(overExpansion);
when(mAmbientState.isBouncerInTransit()).thenReturn(true);
mStackScroller.setExpandedHeight(100f);
float expected = MathUtils.lerp(0, overExpansion, expansionFraction);
assertThat(mAmbientState.getStackY()).isEqualTo(expected);
}
@Test
public void testUpdateStackHeight_withDozeAmount_whenDozeChanging() {
final float dozeAmount = 0.5f;