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

Commit b4fabe9b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Simulate extra navigation bar for fixed rotation" into sc-v2-dev

parents a8a33c88 26419335
Loading
Loading
Loading
Loading
+34 −14
Original line number Diff line number Diff line
@@ -1521,30 +1521,50 @@ public class DisplayPolicy {
     * some temporal states, but doesn't change the window frames used to show on screen.
     */
    void simulateLayoutDisplay(DisplayFrames displayFrames, SparseArray<Rect> barContentFrames) {
        if (mNavigationBar != null) {
            final WindowFrames simulatedWindowFrames = new WindowFrames();
        if (INSETS_LAYOUT_GENERALIZATION) {
                simulateLayoutDecorWindow(mNavigationBar, displayFrames, simulatedWindowFrames,
            final InsetsStateController insetsStateController =
                    mDisplayContent.getInsetsStateController();
            for (int type = 0; type < InsetsState.SIZE; type++) {
                final InsetsSourceProvider provider =
                        insetsStateController.peekSourceProvider(type);
                if (provider == null || !provider.hasWindow()
                        || provider.mWin.getControllableInsetProvider() != provider) {
                    continue;
                }
                final WindowFrames simulatedWindowFrames = new WindowFrames();
                simulateLayoutDecorWindow(provider.mWin, displayFrames, simulatedWindowFrames,
                        barContentFrames,
                        contentFrame -> simulateLayoutForContentFrame(displayFrames,
                                mNavigationBar, contentFrame));
                                provider.mWin, contentFrame));
            }
        } else {
            if (mNavigationBar != null) {
                final WindowFrames simulatedWindowFrames = new WindowFrames();
                simulateLayoutDecorWindow(mNavigationBar, displayFrames, simulatedWindowFrames,
                        barContentFrames, contentFrame -> layoutNavigationBar(displayFrames,
                                contentFrame));
            }
        }
            if (mStatusBar != null) {
                final WindowFrames simulatedWindowFrames = new WindowFrames();
            if (INSETS_LAYOUT_GENERALIZATION) {
                simulateLayoutDecorWindow(mStatusBar, displayFrames, simulatedWindowFrames,
                        barContentFrames,
                        contentFrame -> layoutStatusBar(displayFrames, contentFrame));
            }
            if (mExtraNavBarAlt != null) {
                // There's no pre-defined behavior for the extra navigation bar, we need to use the
                // new flexible insets logic anyway.
                final WindowFrames simulatedWindowFrames = new WindowFrames();
                simulateLayoutDecorWindow(mExtraNavBarAlt, displayFrames, simulatedWindowFrames,
                        barContentFrames,
                        contentFrame -> simulateLayoutForContentFrame(displayFrames,
                                mStatusBar, contentFrame));
            } else {
                simulateLayoutDecorWindow(mStatusBar, displayFrames, simulatedWindowFrames,
                                mExtraNavBarAlt, contentFrame));
            }
            if (mClimateBarAlt != null) {
                final WindowFrames simulatedWindowFrames = new WindowFrames();
                simulateLayoutDecorWindow(mClimateBarAlt, displayFrames, simulatedWindowFrames,
                        barContentFrames,
                        contentFrame -> layoutStatusBar(displayFrames, contentFrame));
                        contentFrame -> simulateLayoutForContentFrame(displayFrames,
                                mClimateBarAlt, contentFrame));
            }
        }
    }