Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c4d8e80 authored by Jordan Demeulenaere's avatar Jordan Demeulenaere Committed by Android (Google) Code Review
Browse files

Merge "Fade in status bar icons during launch animations." into sc-dev

parents fee10dbd b5f0bcb0
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -6,7 +6,6 @@ import com.android.systemui.animation.ActivityLaunchAnimator
import com.android.systemui.statusbar.NotificationShadeDepthController
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
import com.android.systemui.statusbar.phone.NotificationPanelViewController
import com.android.systemui.statusbar.phone.NotificationShadeWindowViewController
import kotlin.math.ceil
import kotlin.math.max
@@ -14,7 +13,6 @@ import kotlin.math.max
/** A provider of [NotificationLaunchAnimatorController]. */
class NotificationLaunchAnimatorControllerProvider(
    private val notificationShadeWindowViewController: NotificationShadeWindowViewController,
    private val notificationPanelViewController: NotificationPanelViewController,
    private val notificationListContainer: NotificationListContainer,
    private val depthController: NotificationShadeDepthController
) {
@@ -23,7 +21,6 @@ class NotificationLaunchAnimatorControllerProvider(
    ): NotificationLaunchAnimatorController {
        return NotificationLaunchAnimatorController(
            notificationShadeWindowViewController,
            notificationPanelViewController,
            notificationListContainer,
            depthController,
            notification
@@ -38,7 +35,6 @@ class NotificationLaunchAnimatorControllerProvider(
 */
class NotificationLaunchAnimatorController(
    private val notificationShadeWindowViewController: NotificationShadeWindowViewController,
    private val notificationPanelViewController: NotificationPanelViewController,
    private val notificationListContainer: NotificationListContainer,
    private val depthController: NotificationShadeDepthController,
    private val notification: ExpandableNotificationRow
@@ -97,7 +93,6 @@ class NotificationLaunchAnimatorController(
    }

    override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) {
        notificationPanelViewController.setLaunchingNotification(true)
        notification.isExpandAnimationRunning = true
        notificationListContainer.setExpandingNotification(notification)

@@ -108,7 +103,6 @@ class NotificationLaunchAnimatorController(
    override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
        InteractionJankMonitor.getInstance().end(InteractionJankMonitor.CUJ_NOTIFICATION_APP_START)

        notificationPanelViewController.setLaunchingNotification(false)
        notification.isExpandAnimationRunning = false
        notificationShadeWindowViewController.setExpandAnimationRunning(false)
        notificationListContainer.setExpandingNotification(null)
@@ -118,7 +112,6 @@ class NotificationLaunchAnimatorController(
    private fun applyParams(params: ExpandAnimationParameters?) {
        notification.applyExpandAnimationParams(params)
        notificationListContainer.applyExpandAnimationParams(params)
        notificationPanelViewController.applyExpandAnimationParams(params)
        depthController.notificationLaunchAnimationParams = params
    }

+9 −13
Original line number Diff line number Diff line
@@ -122,7 +122,6 @@ import com.android.systemui.statusbar.VibratorHelper;
import com.android.systemui.statusbar.notification.AnimatableProperty;
import com.android.systemui.statusbar.notification.ConversationNotificationManager;
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
import com.android.systemui.statusbar.notification.ExpandAnimationParameters;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
import com.android.systemui.statusbar.notification.PropertyAnimator;
@@ -183,7 +182,7 @@ public class NotificationPanelViewController extends PanelViewController {
    private static final int FLING_HIDE = 2;
    private static final long ANIMATION_DELAY_ICON_FADE_IN =
            ActivityLaunchAnimator.ANIMATION_DURATION - CollapsedStatusBarFragment.FADE_IN_DURATION
                    - CollapsedStatusBarFragment.FADE_IN_DELAY - 16;
                    - CollapsedStatusBarFragment.FADE_IN_DELAY - 48;

    private final DozeParameters mDozeParameters;
    private final OnHeightChangedListener mOnHeightChangedListener = new OnHeightChangedListener();
@@ -444,7 +443,7 @@ public class NotificationPanelViewController extends PanelViewController {
    private LockscreenGestureLogger mLockscreenGestureLogger = new LockscreenGestureLogger();
    private boolean mUserSetupComplete;
    private int mQsNotificationTopPadding;
    private boolean mHideIconsDuringNotificationLaunch = true;
    private boolean mHideIconsDuringLaunchAnimation = true;
    private int mStackScrollerMeasuringPass;
    private ArrayList<Consumer<ExpandableNotificationRow>>
            mTrackingHeadsUpListeners =
@@ -3112,8 +3111,8 @@ public class NotificationPanelViewController extends PanelViewController {
    }

    public boolean hideStatusBarIconsWhenExpanded() {
        if (mLaunchingNotification) {
            return mHideIconsDuringNotificationLaunch;
        if (mIsLaunchAnimationRunning) {
            return mHideIconsDuringLaunchAnimation;
        }
        if (mHeadsUpAppearanceController != null
                && mHeadsUpAppearanceController.shouldBeVisible()) {
@@ -3242,14 +3241,11 @@ public class NotificationPanelViewController extends PanelViewController {
        mKeyguardBottomArea.setUserSetupComplete(userSetupComplete);
    }

    public void applyExpandAnimationParams(ExpandAnimationParameters params) {
        if (params == null) {
            return;
        }

        boolean hideIcons = params.getProgress(ANIMATION_DELAY_ICON_FADE_IN, 100) == 0.0f;
        if (hideIcons != mHideIconsDuringNotificationLaunch) {
            mHideIconsDuringNotificationLaunch = hideIcons;
    public void applyLaunchAnimationProgress(float linearProgress) {
        boolean hideIcons = ActivityLaunchAnimator.getProgress(linearProgress,
                ANIMATION_DELAY_ICON_FADE_IN, 100) == 0.0f;
        if (hideIcons != mHideIconsDuringLaunchAnimation) {
            mHideIconsDuringLaunchAnimation = hideIcons;
            if (!hideIcons) {
                mCommandQueue.recomputeDisableFlags(mDisplayId, true /* animate */);
            }
+4 −4
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ public abstract class PanelViewController {
    private LockscreenGestureLogger mLockscreenGestureLogger = new LockscreenGestureLogger();
    private boolean mPanelUpdateWhenAnimatorEnds;
    private boolean mVibrateOnOpening;
    protected boolean mLaunchingNotification;
    protected boolean mIsLaunchAnimationRunning;
    private int mFixedDuration = NO_FIXED_DURATION;
    protected ArrayList<PanelExpansionListener> mExpansionListeners = new ArrayList<>();

@@ -830,7 +830,7 @@ public abstract class PanelViewController {
    }

    public boolean isCollapsing() {
        return mClosing || mLaunchingNotification;
        return mClosing || mIsLaunchAnimationRunning;
    }

    public boolean isTracking() {
@@ -1130,8 +1130,8 @@ public abstract class PanelViewController {
        mHeadsUpManager = headsUpManager;
    }

    public void setLaunchingNotification(boolean launchingNotification) {
        mLaunchingNotification = launchingNotification;
    public void setIsLaunchAnimationRunning(boolean running) {
        mIsLaunchAnimationRunning = running;
    }

    public void collapseWithDuration(int animationDuration) {
+4 −1
Original line number Diff line number Diff line
@@ -1386,7 +1386,6 @@ public class StatusBar extends SystemUI implements DemoMode,
        mActivityLaunchAnimator = new ActivityLaunchAnimator(mContext);
        mNotificationAnimationProvider = new NotificationLaunchAnimatorControllerProvider(
                mNotificationShadeWindowViewController,
                mNotificationPanelViewController,
                mStackScrollerController.getNotificationListContainer(),
                mNotificationShadeDepthControllerLazy.get()
        );
@@ -1600,6 +1599,10 @@ public class StatusBar extends SystemUI implements DemoMode,
        return mNotificationShadeWindowViewController;
    }

    public NotificationPanelViewController getNotificationPanelViewController() {
        return mNotificationPanelViewController;
    }

    protected ViewGroup getBouncerContainer() {
        return mNotificationShadeWindowView;
    }
+11 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ class StatusBarLaunchAnimatorController(

    override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) {
        delegate.onLaunchAnimationStart(isExpandingFullyAbove)
        statusBar.notificationPanelViewController.setIsLaunchAnimationRunning(true)
        if (!isExpandingFullyAbove) {
            statusBar.collapsePanelWithDuration(ActivityLaunchAnimator.ANIMATION_DURATION.toInt())
        }
@@ -28,6 +29,16 @@ class StatusBarLaunchAnimatorController(
    override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
        delegate.onLaunchAnimationEnd(isExpandingFullyAbove)
        statusBar.onLaunchAnimationEnd(isExpandingFullyAbove)
        statusBar.notificationPanelViewController.setIsLaunchAnimationRunning(false)
    }

    override fun onLaunchAnimationProgress(
        state: ActivityLaunchAnimator.State,
        progress: Float,
        linearProgress: Float
    ) {
        delegate.onLaunchAnimationProgress(state, progress, linearProgress)
        statusBar.notificationPanelViewController.applyLaunchAnimationProgress(linearProgress)
    }

    override fun onLaunchAnimationCancelled() {