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

Commit b79e1742 authored by mpodolian's avatar mpodolian
Browse files

Fixed the navigation bar placement on device restart.

Moved logic that adjusts the hotseat position from the constructor of
the NavbarButtonsViewController to onTaskbarLayoutChange() method that
is called from the TaskbarViewController TaskbarView layout change
listener.

Test: Manual:
Moved the bubble bar to the default right position. Rebooted the device.
Navigation bar was placed on the left side of the screen.
Flag: com.android.wm.shell.enable_bubble_bar_in_persistent_task_bar
Bug: 367829539

Change-Id: Ife0c48a72b318d6051b7b09bde13818546e65d98
parent e58dad08
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -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) {
+6 −4
Original line number Diff line number Diff line
@@ -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;