diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java index 28e2f7dd0a639..e7764ea1a21e6 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java @@ -56,7 +56,6 @@ import android.graphics.Rect; import android.os.Binder; import android.os.Bundle; import android.os.Handler; -import android.os.Looper; import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserHandle; @@ -98,7 +97,6 @@ import java.util.HashSet; import java.util.List; import java.util.Objects; import java.util.concurrent.Executor; -import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.function.IntConsumer; @@ -581,7 +579,7 @@ public class BubbleController { /** * BubbleStackView is lazily created by this method the first time a Bubble is added. This - * method initializes the stack view and adds it to the StatusBar just above the scrim. + * method initializes the stack view and adds it to window manager. */ private void ensureStackViewCreated() { if (mStackView == null) { @@ -629,7 +627,6 @@ public class BubbleController { try { mAddedToWindowManager = true; mBubbleData.getOverflow().initialize(this); - mStackView.addView(mBubbleScrim); mWindowManager.addView(mStackView, mWmLayoutParams); // Position info is dependent on us being attached to a window mBubblePositioner.update(); @@ -661,7 +658,6 @@ public class BubbleController { mAddedToWindowManager = false; if (mStackView != null) { mWindowManager.removeView(mStackView); - mStackView.removeView(mBubbleScrim); mBubbleData.getOverflow().cleanUpExpandedState(); } else { Log.w(TAG, "StackView added to WindowManager, but was null when removing!"); @@ -763,13 +759,6 @@ public class BubbleController { } } - private void setBubbleScrim(View view, BiConsumer callback) { - mBubbleScrim = view; - callback.accept(mMainExecutor, mMainExecutor.executeBlockingForResult(() -> { - return Looper.myLooper(); - }, Looper.class)); - } - private void setSysuiProxy(Bubbles.SysuiProxy proxy) { mSysuiProxy = proxy; } @@ -1573,13 +1562,6 @@ public class BubbleController { }); } - @Override - public void setBubbleScrim(View view, BiConsumer callback) { - mMainExecutor.execute(() -> { - BubbleController.this.setBubbleScrim(view, callback); - }); - } - @Override public void setExpandListener(BubbleExpandListener listener) { mMainExecutor.execute(() -> { diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java index 36b892354c1da..c35a74c9af257 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java @@ -19,6 +19,8 @@ package com.android.wm.shell.bubbles; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; +import static com.android.wm.shell.animation.Interpolators.ALPHA_IN; +import static com.android.wm.shell.animation.Interpolators.ALPHA_OUT; import static com.android.wm.shell.bubbles.BubbleDebugConfig.DEBUG_BUBBLE_STACK_VIEW; import static com.android.wm.shell.bubbles.BubbleDebugConfig.TAG_BUBBLES; import static com.android.wm.shell.bubbles.BubbleDebugConfig.TAG_WITH_CLASS_NAME; @@ -33,11 +35,11 @@ import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.content.res.TypedArray; -import android.graphics.Color; import android.graphics.Outline; import android.graphics.PointF; import android.graphics.Rect; import android.graphics.RectF; +import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.provider.Settings; import android.util.Log; @@ -122,6 +124,8 @@ public class BubbleStackView extends FrameLayout private static final int EXPANDED_VIEW_ALPHA_ANIMATION_DURATION = 150; + private static final float SCRIM_ALPHA = 0.6f; + /** * How long to wait to animate the stack temporarily invisible after a drag/flyout hide * animation ends, if we are in fact temporarily invisible. @@ -195,7 +199,7 @@ public class BubbleStackView extends FrameLayout private StackAnimationController mStackAnimationController; private ExpandedAnimationController mExpandedAnimationController; - private View mTaskbarScrim; + private View mScrim; private FrameLayout mExpandedViewContainer; /** Matrix used to scale the expanded view container with a given pivot point. */ @@ -858,11 +862,12 @@ public class BubbleStackView extends FrameLayout mBubbleData.setExpanded(true); }); - mTaskbarScrim = new View(getContext()); - mTaskbarScrim.setBackgroundColor(Color.BLACK); - addView(mTaskbarScrim); - mTaskbarScrim.setAlpha(0f); - mTaskbarScrim.setVisibility(GONE); + mScrim = new View(getContext()); + mScrim.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); + mScrim.setBackgroundDrawable(new ColorDrawable( + getResources().getColor(android.R.color.system_neutral1_1000))); + addView(mScrim); + mScrim.setAlpha(0f); mOrientationChangedListener = (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { @@ -1220,6 +1225,8 @@ public class BubbleStackView extends FrameLayout updateOverflow(); updateUserEdu(); updateExpandedViewTheme(); + mScrim.setBackgroundDrawable(new ColorDrawable( + getResources().getColor(android.R.color.system_neutral1_1000))); } /** @@ -1799,6 +1806,20 @@ public class BubbleStackView extends FrameLayout mExpandedViewAlphaAnimator.start(); } + private void showScrim(boolean show) { + if (show) { + mScrim.animate() + .setInterpolator(ALPHA_IN) + .alpha(SCRIM_ALPHA) + .start(); + } else { + mScrim.animate() + .alpha(0f) + .setInterpolator(ALPHA_OUT) + .start(); + } + } + private void animateExpansion() { cancelDelayedExpandCollapseSwitchAnimations(); final boolean showVertically = mPositioner.showBubblesVertically(); @@ -1808,6 +1829,7 @@ public class BubbleStackView extends FrameLayout } beforeExpandedViewAnimation(); + showScrim(true); updateZOrder(); updateBadges(false /* setBadgeForCollapsedStack */); mBubbleContainer.setActiveController(mExpandedAnimationController); @@ -1819,16 +1841,6 @@ public class BubbleStackView extends FrameLayout } } /* after */); - if (mPositioner.showingInTaskbar() - // Don't need the scrim when the bar is at the bottom - && mPositioner.getTaskbarPosition() != BubblePositioner.TASKBAR_POSITION_BOTTOM) { - mTaskbarScrim.getLayoutParams().width = mPositioner.getTaskbarSize(); - mTaskbarScrim.setTranslationX(mStackOnLeftOrWillBe - ? 0f - : mPositioner.getAvailableRect().right - mPositioner.getTaskbarSize()); - mTaskbarScrim.setVisibility(VISIBLE); - mTaskbarScrim.animate().alpha(1f).start(); - } final float translationY = mPositioner.getExpandedViewY(mExpandedBubble, getBubbleIndex(mExpandedBubble)); mExpandedViewContainer.setTranslationX(0f); @@ -1939,6 +1951,8 @@ public class BubbleStackView extends FrameLayout mIsExpanded = false; mIsExpansionAnimating = true; + showScrim(false); + mBubbleContainer.cancelAllAnimations(); // If we were in the middle of swapping, the animating-out surface would have been scaling @@ -1956,10 +1970,6 @@ public class BubbleStackView extends FrameLayout /* collapseTo */, () -> mBubbleContainer.setActiveController(mStackAnimationController)); - if (mTaskbarScrim.getVisibility() == VISIBLE) { - mTaskbarScrim.animate().alpha(0f).start(); - } - int index; if (mExpandedBubble != null && BubbleOverflow.KEY.equals(mExpandedBubble.getKey())) { index = mBubbleData.getBubbles().size(); @@ -2027,10 +2037,6 @@ public class BubbleStackView extends FrameLayout if (previouslySelected != null) { previouslySelected.setTaskViewVisibility(false); } - - if (mPositioner.showingInTaskbar()) { - mTaskbarScrim.setVisibility(GONE); - } }) .start(); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubbles.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubbles.java index c73b5eebc5c27..9b7eb2f1cfb32 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubbles.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubbles.java @@ -24,12 +24,10 @@ import static java.lang.annotation.RetentionPolicy.SOURCE; import android.content.pm.UserInfo; import android.content.res.Configuration; import android.os.Bundle; -import android.os.Looper; import android.service.notification.NotificationListenerService.RankingMap; import android.util.ArraySet; import android.util.Pair; import android.util.SparseArray; -import android.view.View; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -43,7 +41,6 @@ import java.lang.annotation.Target; import java.util.HashMap; import java.util.List; import java.util.concurrent.Executor; -import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.function.IntConsumer; @@ -160,14 +157,6 @@ public interface Bubbles { /** Set the proxy to commnuicate with SysUi side components. */ void setSysuiProxy(SysuiProxy proxy); - /** - * Set the scrim view for bubbles. - * - * @param callback The callback made with the executor and the executor's looper that the view - * will be running on. - **/ - void setBubbleScrim(View view, BiConsumer callback); - /** Set a listener to be notified of bubble expand events. */ void setExpandListener(BubbleExpandListener listener); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java index 44ed279ba1878..9d2f1f8717083 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -135,12 +135,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump */ public static final float BUSY_SCRIM_ALPHA = 1f; - /** - * The default scrim under the expanded bubble stack. - * This should not be lower than 0.54, otherwise we won't pass GAR. - */ - public static final float BUBBLE_SCRIM_ALPHA = 0.6f; - /** * Scrim opacity that can have text on top. */ @@ -156,8 +150,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump private ScrimView mScrimInFront; private ScrimView mNotificationsScrim; private ScrimView mScrimBehind; - @Nullable - private ScrimView mScrimForBubble; private Runnable mScrimBehindChangeRunnable; @@ -195,12 +187,10 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump private float mInFrontAlpha = NOT_INITIALIZED; private float mBehindAlpha = NOT_INITIALIZED; private float mNotificationsAlpha = NOT_INITIALIZED; - private float mBubbleAlpha = NOT_INITIALIZED; private int mInFrontTint; private int mBehindTint; private int mNotificationsTint; - private int mBubbleTint; private boolean mWallpaperVisibilityTimedOut; private int mScrimsVisibility; @@ -229,7 +219,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump UnlockedScreenOffAnimationController unlockedScreenOffAnimationController) { mScrimStateListener = lightBarController::setScrimState; mDefaultScrimAlpha = BUSY_SCRIM_ALPHA; - ScrimState.BUBBLE_EXPANDED.setBubbleAlpha(BUBBLE_SCRIM_ALPHA); mKeyguardStateController = keyguardStateController; mDarkenWhileDragging = !mKeyguardStateController.canDismissLockScreen(); @@ -276,11 +265,10 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump * Attach the controller to the supplied views. */ public void attachViews(ScrimView behindScrim, ScrimView notificationsScrim, - ScrimView scrimInFront, @Nullable ScrimView scrimForBubble) { + ScrimView scrimInFront) { mNotificationsScrim = notificationsScrim; mScrimBehind = behindScrim; mScrimInFront = scrimInFront; - mScrimForBubble = scrimForBubble; updateThemeColors(); behindScrim.enableBottomEdgeConcave(mClipsQsScrim); @@ -293,8 +281,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump final ScrimState[] states = ScrimState.values(); for (int i = 0; i < states.length; i++) { - states[i].init(mScrimInFront, mScrimBehind, mScrimForBubble, mDozeParameters, - mDockManager); + states[i].init(mScrimInFront, mScrimBehind, mDozeParameters, mDockManager); states[i].setScrimBehindAlphaKeyguard(mScrimBehindAlphaKeyguard); states[i].setDefaultScrimAlpha(mDefaultScrimAlpha); } @@ -302,9 +289,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump mScrimBehind.setDefaultFocusHighlightEnabled(false); mNotificationsScrim.setDefaultFocusHighlightEnabled(false); mScrimInFront.setDefaultFocusHighlightEnabled(false); - if (mScrimForBubble != null) { - mScrimForBubble.setDefaultFocusHighlightEnabled(false); - } updateScrims(); mKeyguardUpdateMonitor.registerCallback(mKeyguardVisibilityCallback); } @@ -627,11 +611,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump mInFrontTint = mState.getFrontTint(); mBehindTint = mState.getBehindTint(); mNotificationsTint = mState.getNotifTint(); - mBubbleTint = mState.getBubbleTint(); mInFrontAlpha = mState.getFrontAlpha(); mBehindAlpha = mState.getBehindAlpha(); - mBubbleAlpha = mState.getBubbleAlpha(); mNotificationsAlpha = mState.getNotifAlpha(); assertAlphasValid(); @@ -744,7 +726,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump setOrAdaptCurrentAnimation(mScrimBehind); setOrAdaptCurrentAnimation(mNotificationsScrim); setOrAdaptCurrentAnimation(mScrimInFront); - setOrAdaptCurrentAnimation(mScrimForBubble); dispatchBackScrimState(mScrimBehind.getViewAlpha()); // Reset wallpaper timeout if it's already timeout like expanding panel while PULSING @@ -852,11 +833,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump setScrimAlpha(mScrimBehind, mBehindAlpha); setScrimAlpha(mNotificationsScrim, mNotificationsAlpha); - if (mScrimForBubble != null) { - boolean animateScrimForBubble = mScrimForBubble.getViewAlpha() != 0 && !mBlankScreen; - mScrimForBubble.setColors(mColors, animateScrimForBubble); - setScrimAlpha(mScrimForBubble, mBubbleAlpha); - } // The animation could have all already finished, let's call onFinished just in case onFinished(mState); dispatchScrimsVisible(); @@ -909,8 +885,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump return "behind_scrim"; } else if (scrim == mNotificationsScrim) { return "notifications_scrim"; - } else if (scrim == mScrimForBubble) { - return "bubble_scrim"; } return "unknown_scrim"; } @@ -983,8 +957,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump return mBehindAlpha; } else if (scrim == mNotificationsScrim) { return mNotificationsAlpha; - } else if (scrim == mScrimForBubble) { - return mBubbleAlpha; } else { throw new IllegalArgumentException("Unknown scrim view"); } @@ -997,8 +969,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump return mBehindTint; } else if (scrim == mNotificationsScrim) { return mNotificationsTint; - } else if (scrim == mScrimForBubble) { - return mBubbleTint; } else { throw new IllegalArgumentException("Unknown scrim view"); } @@ -1030,8 +1000,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump } if (isAnimating(mScrimBehind) || isAnimating(mNotificationsScrim) - || isAnimating(mScrimInFront) - || isAnimating(mScrimForBubble)) { + || isAnimating(mScrimInFront)) { if (callback != null && callback != mCallback) { // Since we only notify the callback that we're finished once everything has // finished, we need to make sure that any changing callbacks are also invoked @@ -1058,13 +1027,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump mInFrontTint = Color.TRANSPARENT; mBehindTint = mState.getBehindTint(); mNotificationsTint = mState.getNotifTint(); - mBubbleTint = Color.TRANSPARENT; updateScrimColor(mScrimInFront, mInFrontAlpha, mInFrontTint); updateScrimColor(mScrimBehind, mBehindAlpha, mBehindTint); updateScrimColor(mNotificationsScrim, mNotificationsAlpha, mNotificationsTint); - if (mScrimForBubble != null) { - updateScrimColor(mScrimForBubble, mBubbleAlpha, mBubbleTint); - } } } @@ -1232,14 +1197,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump pw.print(" tint=0x"); pw.println(Integer.toHexString(mNotificationsScrim.getTint())); - pw.print(" bubbleScrim:"); - pw.print(" viewAlpha="); - pw.print(mScrimForBubble.getViewAlpha()); - pw.print(" alpha="); - pw.print(mBubbleAlpha); - pw.print(" tint=0x"); - pw.println(Integer.toHexString(mScrimForBubble.getTint())); - pw.print(" mTracking="); pw.println(mTracking); pw.print(" mDefaultScrimAlpha="); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java index 06811932ac0cd..0297384de715b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java @@ -19,8 +19,6 @@ package com.android.systemui.statusbar.phone; import android.graphics.Color; import android.os.Trace; -import androidx.annotation.Nullable; - import com.android.systemui.dock.DockManager; import com.android.systemui.scrim.ScrimView; import com.android.systemui.statusbar.notification.stack.StackStateAnimator; @@ -43,11 +41,9 @@ public enum ScrimState { public void prepare(ScrimState previousState) { mFrontTint = Color.BLACK; mBehindTint = Color.BLACK; - mBubbleTint = previousState.mBubbleTint; mFrontAlpha = 1f; mBehindAlpha = 1f; - mBubbleAlpha = previousState.mBubbleAlpha; mAnimationDuration = ScrimController.ANIMATION_DURATION_LONG; } @@ -81,12 +77,10 @@ public enum ScrimState { mFrontTint = Color.BLACK; mBehindTint = Color.BLACK; mNotifTint = mClipQsScrim ? Color.BLACK : Color.TRANSPARENT; - mBubbleTint = Color.TRANSPARENT; mFrontAlpha = 0; mBehindAlpha = mClipQsScrim ? 1 : mScrimBehindAlphaKeyguard; mNotifAlpha = mClipQsScrim ? mScrimBehindAlphaKeyguard : 0; - mBubbleAlpha = 0; if (mClipQsScrim) { updateScrimColor(mScrimBehind, 1f /* alpha */, Color.BLACK); } @@ -118,7 +112,6 @@ public enum ScrimState { mNotifAlpha = mClipQsScrim ? mDefaultScrimAlpha : 0; mNotifTint = Color.TRANSPARENT; mFrontAlpha = 0f; - mBubbleAlpha = 0f; } }, @@ -129,7 +122,6 @@ public enum ScrimState { @Override public void prepare(ScrimState previousState) { mBehindAlpha = 0; - mBubbleAlpha = 0f; mFrontAlpha = mDefaultScrimAlpha; } }, @@ -139,7 +131,6 @@ public enum ScrimState { public void prepare(ScrimState previousState) { mBehindAlpha = mClipQsScrim ? 1 : mDefaultScrimAlpha; mNotifAlpha = 1f; - mBubbleAlpha = 0f; mFrontAlpha = 0f; mBehindTint = Color.BLACK; @@ -163,7 +154,6 @@ public enum ScrimState { public void prepare(ScrimState previousState) { mBehindAlpha = 0; mFrontAlpha = 0; - mBubbleAlpha = 0; } }, @@ -185,9 +175,6 @@ public enum ScrimState { mBehindTint = Color.BLACK; mBehindAlpha = ScrimController.TRANSPARENT; - mBubbleTint = Color.TRANSPARENT; - mBubbleAlpha = ScrimController.TRANSPARENT; - mAnimationDuration = ScrimController.ANIMATION_DURATION_LONG; // DisplayPowerManager may blank the screen for us, or we might blank it for ourselves // by animating the screen off via the LightRevelScrim. In either case we just need to @@ -214,7 +201,6 @@ public enum ScrimState { @Override public void prepare(ScrimState previousState) { mFrontAlpha = mAodFrontScrimAlpha; - mBubbleAlpha = 0f; mBehindTint = Color.BLACK; mFrontTint = Color.BLACK; mBlankScreen = mDisplayRequiresBlanking; @@ -238,7 +224,6 @@ public enum ScrimState { mBehindAlpha = mClipQsScrim ? 1 : 0; mNotifAlpha = 0; mFrontAlpha = 0; - mBubbleAlpha = 0; mAnimationDuration = mKeyguardFadingAway ? mKeyguardFadingAwayDuration @@ -248,21 +233,16 @@ public enum ScrimState { mFrontTint = Color.TRANSPARENT; mBehindTint = Color.BLACK; - mBubbleTint = Color.TRANSPARENT; mBlankScreen = false; if (previousState == ScrimState.AOD) { // Set all scrims black, before they fade transparent. updateScrimColor(mScrimInFront, 1f /* alpha */, Color.BLACK /* tint */); updateScrimColor(mScrimBehind, 1f /* alpha */, Color.BLACK /* tint */); - if (mScrimForBubble != null) { - updateScrimColor(mScrimForBubble, 1f /* alpha */, Color.BLACK /* tint */); - } // Scrims should still be black at the end of the transition. mFrontTint = Color.BLACK; mBehindTint = Color.BLACK; - mBubbleTint = Color.BLACK; mBlankScreen = true; } @@ -280,7 +260,6 @@ public enum ScrimState { public void prepare(ScrimState previousState) { mFrontTint = Color.TRANSPARENT; mBehindTint = Color.TRANSPARENT; - mBubbleTint = Color.BLACK; mFrontAlpha = 0f; mBehindAlpha = mDefaultScrimAlpha; @@ -294,21 +273,18 @@ public enum ScrimState { long mAnimationDuration = ScrimController.ANIMATION_DURATION; int mFrontTint = Color.TRANSPARENT; int mBehindTint = Color.TRANSPARENT; - int mBubbleTint = Color.TRANSPARENT; int mNotifTint = Color.TRANSPARENT; boolean mAnimateChange = true; float mAodFrontScrimAlpha; float mFrontAlpha; float mBehindAlpha; - float mBubbleAlpha; float mNotifAlpha; float mScrimBehindAlphaKeyguard; float mDefaultScrimAlpha; ScrimView mScrimInFront; ScrimView mScrimBehind; - @Nullable ScrimView mScrimForBubble; DozeParameters mDozeParameters; DockManager mDockManager; @@ -321,11 +297,10 @@ public enum ScrimState { long mKeyguardFadingAwayDuration; boolean mClipQsScrim; - public void init(ScrimView scrimInFront, ScrimView scrimBehind, ScrimView scrimForBubble, - DozeParameters dozeParameters, DockManager dockManager) { + public void init(ScrimView scrimInFront, ScrimView scrimBehind, DozeParameters dozeParameters, + DockManager dockManager) { mScrimInFront = scrimInFront; mScrimBehind = scrimBehind; - mScrimForBubble = scrimForBubble; mDozeParameters = dozeParameters; mDockManager = dockManager; @@ -352,10 +327,6 @@ public enum ScrimState { return mNotifAlpha; } - public float getBubbleAlpha() { - return mBubbleAlpha; - } - public int getFrontTint() { return mFrontTint; } @@ -368,10 +339,6 @@ public enum ScrimState { return mNotifTint; } - public int getBubbleTint() { - return mBubbleTint; - } - public long getAnimationDuration() { return mAnimationDuration; } @@ -409,10 +376,6 @@ public enum ScrimState { mDefaultScrimAlpha = defaultScrimAlpha; } - public void setBubbleAlpha(float alpha) { - mBubbleAlpha = alpha; - } - public void setWallpaperSupportsAmbientMode(boolean wallpaperSupportsAmbientMode) { mWallpaperSupportsAmbientMode = wallpaperSupportsAmbientMode; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index c04f6f9d84900..ef122d2e47b9c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -1262,13 +1262,11 @@ public class StatusBar extends SystemUI implements ScrimView notificationsScrim = mNotificationShadeWindowView .findViewById(R.id.scrim_notifications); ScrimView scrimInFront = mNotificationShadeWindowView.findViewById(R.id.scrim_in_front); - ScrimView scrimForBubble = mBubblesManagerOptional.isPresent() - ? mBubblesManagerOptional.get().getScrimForBubble() : null; mScrimController.setScrimVisibleListener(scrimsVisible -> { mNotificationShadeWindowController.setScrimsVisibility(scrimsVisible); }); - mScrimController.attachViews(scrimBehind, notificationsScrim, scrimInFront, scrimForBubble); + mScrimController.attachViews(scrimBehind, notificationsScrim, scrimInFront); mLightRevealScrim = mNotificationShadeWindowView.findViewById(R.id.light_reveal_scrim); mLightRevealScrim.setRevealAmountListener( diff --git a/packages/SystemUI/src/com/android/systemui/wmshell/BubblesManager.java b/packages/SystemUI/src/com/android/systemui/wmshell/BubblesManager.java index a29a638b91a86..fe166d7b37381 100644 --- a/packages/SystemUI/src/com/android/systemui/wmshell/BubblesManager.java +++ b/packages/SystemUI/src/com/android/systemui/wmshell/BubblesManager.java @@ -50,7 +50,6 @@ import android.util.ArraySet; import android.util.Log; import android.util.Pair; import android.util.SparseArray; -import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -63,7 +62,6 @@ import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dump.DumpManager; import com.android.systemui.model.SysUiState; import com.android.systemui.plugins.statusbar.StatusBarStateController; -import com.android.systemui.scrim.ScrimView; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.statusbar.FeatureFlags; import com.android.systemui.statusbar.NotificationLockscreenUserManager; @@ -80,7 +78,6 @@ import com.android.systemui.statusbar.notification.collection.notifcollection.Di import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener; import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider; import com.android.systemui.statusbar.notification.logging.NotificationLogger; -import com.android.systemui.statusbar.phone.ScrimController; import com.android.systemui.statusbar.phone.ShadeController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ZenModeController; @@ -118,7 +115,6 @@ public class BubblesManager implements Dumpable { private final NotifPipeline mNotifPipeline; private final Executor mSysuiMainExecutor; - private ScrimView mBubbleScrim; private final Bubbles.SysuiProxy mSysuiProxy; // TODO (b/145659174): allow for multiple callbacks to support the "shadow" new notif pipeline private final List mCallbacks = new ArrayList<>(); @@ -193,12 +189,6 @@ public class BubblesManager implements Dumpable { ServiceManager.getService(Context.STATUS_BAR_SERVICE)) : statusBarService; - mBubbleScrim = new ScrimView(mContext); - mBubbleScrim.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); - mBubbles.setBubbleScrim(mBubbleScrim, (executor, looper) -> { - mBubbleScrim.setExecutor(executor, looper); - }); - if (featureFlags.isNewNotifPipelineRenderingEnabled()) { setupNotifPipeline(); } else { @@ -602,15 +592,6 @@ public class BubblesManager implements Dumpable { NotificationLogger.getNotificationLocation(entry))); } - /** - * Returns the scrim drawn behind the bubble stack. This is managed by {@link ScrimController} - * since we want the scrim's appearance and behavior to be identical to that of the notification - * shade scrim. - */ - public ScrimView getScrimForBubble() { - return mBubbleScrim; - } - /** * We intercept notification entries (including group summaries) dismissed by the user when * there is an active bubble associated with it. We do this so that developers can still diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java index 2685b76d2650e..f4421f1393fbb 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java @@ -83,7 +83,6 @@ public class ScrimControllerTest extends SysuiTestCase { private ScrimView mScrimBehind; private ScrimView mNotificationsScrim; private ScrimView mScrimInFront; - private ScrimView mScrimForBubble; private ScrimState mScrimState; private float mScrimBehindAlpha; private GradientColors mScrimInFrontColor; @@ -167,7 +166,6 @@ public class ScrimControllerTest extends SysuiTestCase { endAnimation(mNotificationsScrim); endAnimation(mScrimBehind); endAnimation(mScrimInFront); - endAnimation(mScrimForBubble); assertEquals("Animators did not finish", mAnimatorListener.getNumStarts(), mAnimatorListener.getNumEnds()); @@ -190,7 +188,6 @@ public class ScrimControllerTest extends SysuiTestCase { mScrimBehind = spy(new ScrimView(getContext())); mScrimInFront = new ScrimView(getContext()); - mScrimForBubble = new ScrimView(getContext()); mNotificationsScrim = new ScrimView(getContext()); mAlwaysOnEnabled = true; mLooper = TestableLooper.get(this); @@ -226,8 +223,7 @@ public class ScrimControllerTest extends SysuiTestCase { mDockManager, mConfigurationController, new FakeExecutor(new FakeSystemClock()), mUnlockedScreenOffAnimationController); mScrimController.setScrimVisibleListener(visible -> mScrimVisibility = visible); - mScrimController.attachViews(mScrimBehind, mNotificationsScrim, mScrimInFront, - mScrimForBubble); + mScrimController.attachViews(mScrimBehind, mNotificationsScrim, mScrimInFront); mScrimController.setAnimatorListener(mAnimatorListener); mScrimController.setHasBackdrop(false); @@ -257,8 +253,8 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTinted(Map.of( mScrimInFront, true, - mScrimBehind, true, - mScrimForBubble, false)); + mScrimBehind, true + )); } @Test @@ -274,8 +270,7 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTinted(Map.of( mScrimInFront, false, - mScrimBehind, true, - mScrimForBubble, false + mScrimBehind, true )); } @@ -293,8 +288,7 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTinted(Map.of( mScrimInFront, false, - mScrimBehind, true, - mScrimForBubble, false + mScrimBehind, true )); } @@ -309,8 +303,7 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTinted(Map.of( mScrimInFront, true, - mScrimBehind, true, - mScrimForBubble, false + mScrimBehind, true )); assertEquals(1f, mScrimController.getState().getMaxLightRevealScrimAlpha(), 0f); @@ -329,8 +322,7 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTinted(Map.of( mScrimInFront, true, - mScrimBehind, true, - mScrimForBubble, false + mScrimBehind, true )); } @@ -369,8 +361,7 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTinted(Map.of( mScrimInFront, true, - mScrimBehind, true, - mScrimForBubble, false + mScrimBehind, true )); } @@ -389,8 +380,7 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTinted(Map.of( mScrimInFront, true, - mScrimBehind, true, - mScrimForBubble, false + mScrimBehind, true )); } @@ -510,8 +500,7 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTinted(Map.of( mScrimInFront, true, - mScrimBehind, true, - mScrimForBubble, false + mScrimBehind, true )); // ... and when ambient goes dark, front scrim should be semi-transparent @@ -549,8 +538,7 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTinted(Map.of( mScrimInFront, false, mScrimBehind, false, - mNotificationsScrim, false, - mScrimForBubble, false + mNotificationsScrim, false )); } @@ -570,8 +558,7 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTinted(Map.of( mScrimInFront, false, mScrimBehind, true, - mNotificationsScrim, false, - mScrimForBubble, false + mNotificationsScrim, false )); } @@ -627,8 +614,7 @@ public class ScrimControllerTest extends SysuiTestCase { mScrimBehind, TRANSPARENT)); assertScrimTinted(Map.of( mScrimInFront, false, - mScrimBehind, false, - mScrimForBubble, false + mScrimBehind, false )); } @@ -645,8 +631,7 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTinted(Map.of( mNotificationsScrim, false, mScrimInFront, false, - mScrimBehind, true, - mScrimForBubble, false + mScrimBehind, true )); // Back scrim should be visible after start dragging @@ -664,8 +649,7 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTinted(Map.of( mScrimInFront, false, - mScrimBehind, false, - mScrimForBubble, true + mScrimBehind, false )); // Front scrim should be transparent @@ -674,9 +658,6 @@ public class ScrimControllerTest extends SysuiTestCase { // Back scrim should be visible assertEquals(ScrimController.BUSY_SCRIM_ALPHA, mScrimBehind.getViewAlpha(), 0.0f); - // Bubble scrim should be visible - assertEquals(ScrimController.BUBBLE_SCRIM_ALPHA, - mScrimForBubble.getViewAlpha(), 0.0f); } @Test @@ -787,8 +768,7 @@ public class ScrimControllerTest extends SysuiTestCase { // Immediately tinted black after the transition starts assertScrimTinted(Map.of( mScrimInFront, true, - mScrimBehind, true, - mScrimForBubble, true + mScrimBehind, true )); finishAnimationsImmediately(); @@ -796,14 +776,12 @@ public class ScrimControllerTest extends SysuiTestCase { // All scrims should be transparent at the end of fade transition. assertScrimAlpha(Map.of( mScrimInFront, TRANSPARENT, - mScrimBehind, TRANSPARENT, - mScrimForBubble, TRANSPARENT)); + mScrimBehind, TRANSPARENT)); // Make sure at the very end of the animation, we're reset to transparent assertScrimTinted(Map.of( mScrimInFront, false, - mScrimBehind, true, - mScrimForBubble, false + mScrimBehind, true )); } @@ -821,8 +799,7 @@ public class ScrimControllerTest extends SysuiTestCase { + mScrimInFront.getViewAlpha(), mScrimInFront.getViewAlpha() > 0); assertScrimTinted(Map.of( mScrimInFront, true, - mScrimBehind, true, - mScrimForBubble, true + mScrimBehind, true )); Assert.assertSame("Scrim should be visible during transition.", mScrimVisibility, OPAQUE); @@ -1075,8 +1052,6 @@ public class ScrimControllerTest extends SysuiTestCase { mScrimInFront.getDefaultFocusHighlightEnabled()); Assert.assertFalse("Scrim shouldn't have focus highlight", mScrimBehind.getDefaultFocusHighlightEnabled()); - Assert.assertFalse("Scrim shouldn't have focus highlight", - mScrimForBubble.getDefaultFocusHighlightEnabled()); } @Test @@ -1239,21 +1214,16 @@ public class ScrimControllerTest extends SysuiTestCase { return "behind"; } else if (scrim == mNotificationsScrim) { return "notifications"; - } else if (scrim == mScrimForBubble) { - return "bubble"; } return "unknown_scrim"; } /** - * If {@link #mScrimForBubble} or {@link #mNotificationsScrim} is not passed in the map + * If {@link #mNotificationsScrim} is not passed in the map * we assume it must be transparent */ private void assertScrimAlpha(Map scrimToAlpha) { // Check single scrim visibility. - if (!scrimToAlpha.containsKey(mScrimForBubble)) { - assertScrimAlpha(mScrimForBubble, TRANSPARENT); - } if (!scrimToAlpha.containsKey(mNotificationsScrim)) { assertScrimAlpha(mNotificationsScrim, TRANSPARENT); }