diff --git a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java index e9bd30ace9..2ac579361e 100644 --- a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java @@ -400,12 +400,6 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT } }; mSeparateWindowParent.recreateControllers(); - if (com.android.wm.shell.Flags.enableBubbleBarInPersistentTaskBar() - && mControllers.bubbleControllers.isPresent()) { - BubbleBarLocation bubblesLocation = mControllers.bubbleControllers.get() - .bubbleBarViewController.getBubbleBarLocation(); - onBubbleBarLocationUpdated(bubblesLocation); - } } private void initButtons(ViewGroup navContainer, ViewGroup endContainer, @@ -1223,6 +1217,16 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT return (int) navBarTargetStartX - mNavButtonContainer.getLeft(); } + /** Adjusts the navigation buttons layout position according to the bubble bar location. */ + public void onTaskbarLayoutChange() { + if (com.android.wm.shell.Flags.enableBubbleBarInPersistentTaskBar() + && mControllers.bubbleControllers.isPresent()) { + BubbleBarLocation bubblesLocation = mControllers.bubbleControllers.get() + .bubbleBarViewController.getBubbleBarLocation(); + onBubbleBarLocationUpdated(bubblesLocation); + } + } + private class RotationButtonListener implements RotationButton.RotationButtonUpdatesCallback { @Override public void onVisibilityChanged(boolean isVisible) { diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java index b663ccb44e..0a67ac2f1d 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java @@ -140,10 +140,6 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar private final AnimatedFloat mTaskbarIconTranslationYForPinning = new AnimatedFloat( this::updateTranslationY); - private final View.OnLayoutChangeListener mTaskbarViewLayoutChangeListener = - (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) - -> updateTaskbarIconTranslationXForPinning(); - private AnimatedFloat mTaskbarNavButtonTranslationY; private AnimatedFloat mTaskbarNavButtonTranslationYForInAppDisplay; @@ -158,6 +154,12 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar // Initialized in init. private TaskbarControllers mControllers; + private final View.OnLayoutChangeListener mTaskbarViewLayoutChangeListener = + (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { + updateTaskbarIconTranslationXForPinning(); + mControllers.navbarButtonsViewController.onTaskbarLayoutChange(); + }; + // Animation to align icons with Launcher, created lazily. This allows the controller to be // active only during the animation and does not need to worry about layout changes. private AnimatorPlaybackController mIconAlignControllerLazy = null;