Merge "Bouncer: Remove overlap with shade and bouncer" into tm-dev am: fe4ffe1198

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

Change-Id: I433f26c53c58b5436c78097a5f3d5d7f41b6a3aa
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Aaron Liu
2022-03-25 19:10:38 +00:00
committed by Automerger Merge Worker
4 changed files with 20 additions and 15 deletions

View File

@@ -37,6 +37,7 @@ import android.view.ViewTreeObserver;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import com.android.keyguard.BouncerPanelExpansionCalculator;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.animation.Interpolators; import com.android.systemui.animation.Interpolators;
import com.android.systemui.animation.ShadeInterpolation; import com.android.systemui.animation.ShadeInterpolation;
@@ -593,7 +594,9 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
} else if (progress > 0 && view.getVisibility() != View.VISIBLE) { } else if (progress > 0 && view.getVisibility() != View.VISIBLE) {
view.setVisibility((View.VISIBLE)); view.setVisibility((View.VISIBLE));
} }
float alpha = ShadeInterpolation.getContentAlpha(progress); float alpha = (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED)
? BouncerPanelExpansionCalculator.getBackScrimScaledExpansion(progress)
: ShadeInterpolation.getContentAlpha(progress);
view.setAlpha(alpha); view.setAlpha(alpha);
} }

View File

@@ -48,6 +48,7 @@ import android.view.animation.Interpolator;
import com.android.internal.jank.InteractionJankMonitor; import com.android.internal.jank.InteractionJankMonitor;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.util.LatencyTracker; import com.android.internal.util.LatencyTracker;
import com.android.keyguard.BouncerPanelExpansionCalculator;
import com.android.systemui.DejankUtils; import com.android.systemui.DejankUtils;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.animation.Interpolators; import com.android.systemui.animation.Interpolators;
@@ -796,7 +797,10 @@ public abstract class PanelViewController {
} }
mExpandedFraction = Math.min(1f, mExpandedFraction = Math.min(1f,
maxPanelHeight == 0 ? 0 : mExpandedHeight / maxPanelHeight); maxPanelHeight == 0 ? 0 : mExpandedHeight / maxPanelHeight);
mAmbientState.setExpansionFraction(mExpandedFraction); mAmbientState.setExpansionFraction(mKeyguardStateController.isUnlocked()
? mExpandedFraction
: BouncerPanelExpansionCalculator
.getBackScrimScaledExpansion(mExpandedFraction));
onHeightUpdated(mExpandedHeight); onHeightUpdated(mExpandedHeight);
updatePanelExpansionAndVisibility(); updatePanelExpansionAndVisibility();
}); });

View File

@@ -875,14 +875,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
private Pair<Integer, Float> calculateBackStateForState(ScrimState state) { private Pair<Integer, Float> calculateBackStateForState(ScrimState state) {
// Either darken of make the scrim transparent when you // Either darken of make the scrim transparent when you
// pull down the shade // pull down the shade
float interpolatedFract; float interpolatedFract = getInterpolatedFraction();
if (state == ScrimState.KEYGUARD) {
interpolatedFract = BouncerPanelExpansionCalculator
.getBackScrimScaledExpansion(mPanelExpansionFraction);
} else {
interpolatedFract = getInterpolatedFraction();
}
float stateBehind = mClipsQsScrim ? state.getNotifAlpha() : state.getBehindAlpha(); float stateBehind = mClipsQsScrim ? state.getNotifAlpha() : state.getBehindAlpha();
float behindAlpha; float behindAlpha;
@@ -1064,6 +1057,10 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
} }
private float getInterpolatedFraction() { private float getInterpolatedFraction() {
if (mState == ScrimState.KEYGUARD || mState == ScrimState.SHADE_LOCKED) {
return BouncerPanelExpansionCalculator
.getBackScrimScaledExpansion(mPanelExpansionFraction);
}
return ShadeInterpolation.getNotificationScrimAlpha(mPanelExpansionFraction); return ShadeInterpolation.getNotificationScrimAlpha(mPanelExpansionFraction);
} }

View File

@@ -1236,8 +1236,8 @@ public class ScrimControllerTest extends SysuiTestCase {
public void testNotificationTransparency_followsPanelExpansionInShadeLockedState() { public void testNotificationTransparency_followsPanelExpansionInShadeLockedState() {
mScrimController.transitionTo(ScrimState.SHADE_LOCKED); mScrimController.transitionTo(ScrimState.SHADE_LOCKED);
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0.8f, /* expansion */ 0.8f); assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0f, /* expansion */ 0.8f);
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0.47f, /* expansion */ 0.2f); assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0f, /* expansion */ 0.2f);
} }
@Test @Test
@@ -1250,15 +1250,16 @@ public class ScrimControllerTest extends SysuiTestCase {
// Verify normal behavior after // Verify normal behavior after
mScrimController.setUnocclusionAnimationRunning(false); mScrimController.setUnocclusionAnimationRunning(false);
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0.2f, /* expansion */ 0.4f); assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 1f, /* expansion */ 0.4f);
} }
@Test @Test
public void testNotificationTransparency_inKeyguardState() { public void testNotificationTransparency_inKeyguardState() {
mScrimController.transitionTo(ScrimState.KEYGUARD); mScrimController.transitionTo(ScrimState.KEYGUARD);
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0.2f, /* expansion */ 0.4f); assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 1f, /* expansion */ 0.8f);
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0.52f, /* expansion */ 0.2f); assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 1f, /* expansion */ 0.4f);
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 1f, /* expansion */ 0.2f);
} }
@Test @Test