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

Commit cef9ce27 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

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

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15828039

Change-Id: If4966c046b6e1af5753a7b0cab6b233ad9fc5f99
parents 9624f684 b4fabe9b
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));
            }
        }
    }