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

Commit 754f171a authored by Jagrut Desai's avatar Jagrut Desai Committed by Android (Google) Code Review
Browse files

Revert "Ensure taskbar insets for camera cutout only apply on the needed sides"

This reverts commit 40fc6eb3.

Reason for revert: <b/328182219>

Change-Id: I5b846919823d696933b7d9f4220c1797409fc8b8
parent 40fc6eb3
Loading
Loading
Loading
Loading
+30 −32
Original line number Diff line number Diff line
@@ -505,26 +505,52 @@ public class TaskbarActivityContext extends BaseTaskbarContext {

    /**
     * Creates {@link WindowManager.LayoutParams} for Taskbar, and also sets LP.paramsForRotation
     * for taskbar
     * for taskbar showing as navigation bar
     */
    private WindowManager.LayoutParams createAllWindowParams() {
        final int windowType =
                ENABLE_TASKBAR_NAVBAR_UNIFICATION ? TYPE_NAVIGATION_BAR : TYPE_NAVIGATION_BAR_PANEL;
        WindowManager.LayoutParams windowLayoutParams =
                createDefaultWindowLayoutParams(windowType, TaskbarActivityContext.WINDOW_TITLE);
        if (!isPhoneButtonNavMode()) {
            return windowLayoutParams;
        }

        // Provide WM layout params for all rotations to cache, see NavigationBar#getBarLayoutParams
        int width = WindowManager.LayoutParams.MATCH_PARENT;
        int height = WindowManager.LayoutParams.MATCH_PARENT;
        int gravity = Gravity.BOTTOM;
        windowLayoutParams.paramsForRotation = new WindowManager.LayoutParams[4];
        for (int rot = Surface.ROTATION_0; rot <= Surface.ROTATION_270; rot++) {
            WindowManager.LayoutParams lp =
                    createDefaultWindowLayoutParams(windowType,
                            TaskbarActivityContext.WINDOW_TITLE);
            if (isPhoneButtonNavMode()) {
                populatePhoneButtonNavModeWindowLayoutParams(rot, lp);
            switch (rot) {
                case Surface.ROTATION_0, Surface.ROTATION_180 -> {
                    // Defaults are fine
                    width = WindowManager.LayoutParams.MATCH_PARENT;
                    height = mLastRequestedNonFullscreenSize;
                    gravity = Gravity.BOTTOM;
                }
                case Surface.ROTATION_90 -> {
                    width = mLastRequestedNonFullscreenSize;
                    height = WindowManager.LayoutParams.MATCH_PARENT;
                    gravity = Gravity.END;
                }
                case Surface.ROTATION_270 -> {
                    width = mLastRequestedNonFullscreenSize;
                    height = WindowManager.LayoutParams.MATCH_PARENT;
                    gravity = Gravity.START;
                }

            }
            lp.width = width;
            lp.height = height;
            lp.gravity = gravity;
            windowLayoutParams.paramsForRotation[rot] = lp;
        }

        // Override with current layout params
        // Override current layout params
        WindowManager.LayoutParams currentParams =
                windowLayoutParams.paramsForRotation[getDisplay().getRotation()];
        windowLayoutParams.width = currentParams.width;
@@ -534,32 +560,6 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
        return windowLayoutParams;
    }

    /**
     * Update {@link WindowManager.LayoutParams} with values specific to phone and 3 button
     * navigation users
     */
    private void populatePhoneButtonNavModeWindowLayoutParams(int rot,
            WindowManager.LayoutParams lp) {
        lp.width = WindowManager.LayoutParams.MATCH_PARENT;
        lp.height = WindowManager.LayoutParams.MATCH_PARENT;
        lp.gravity = Gravity.BOTTOM;

        // Override with per-rotation specific values
        switch (rot) {
            case Surface.ROTATION_0, Surface.ROTATION_180 -> {
                lp.height = mLastRequestedNonFullscreenSize;
            }
            case Surface.ROTATION_90 -> {
                lp.width = mLastRequestedNonFullscreenSize;
                lp.gravity = Gravity.END;
            }
            case Surface.ROTATION_270 -> {
                lp.width = mLastRequestedNonFullscreenSize;
                lp.gravity = Gravity.START;
            }
        }
    }

    public void onConfigurationChanged(@Config int configChanges) {
        mControllers.onConfigurationChanged(configChanges);
        if (!mIsUserSetupComplete) {
@@ -920,10 +920,8 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
        }
        if (landscapePhoneButtonNav) {
            mWindowLayoutParams.width = size;
            mWindowLayoutParams.paramsForRotation[getDisplay().getRotation()].width = size;
        } else {
            mWindowLayoutParams.height = size;
            mWindowLayoutParams.paramsForRotation[getDisplay().getRotation()].height = size;
        }
        mControllers.taskbarInsetsController.onTaskbarOrBubblebarWindowHeightOrInsetsChanged();
        notifyUpdateLayoutParams();
+15 −6
Original line number Diff line number Diff line
@@ -118,11 +118,13 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
                getProvidedInsets(insetsRoundedCornerFlag)
            }

        if (!context.isGestureNav) {
            if (windowLayoutParams.paramsForRotation != null) {
                for (layoutParams in windowLayoutParams.paramsForRotation) {
                    layoutParams.providedInsets = getProvidedInsets(insetsRoundedCornerFlag)
                }
            }
        }

        val taskbarTouchableHeight = controllers.taskbarStashController.touchableHeight
        val bubblesTouchableHeight =
@@ -154,14 +156,21 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
            )
        }

        val gravity = windowLayoutParams.gravity

        // Pre-calculate insets for different providers across different rotations for this gravity
        for (rotation in Surface.ROTATION_0..Surface.ROTATION_270) {
            // Add insets for navbar rotated params
            if (windowLayoutParams.paramsForRotation != null) {
                val layoutParams = windowLayoutParams.paramsForRotation[rotation]
                for (provider in layoutParams.providedInsets) {
                    setProviderInsets(provider, layoutParams.gravity, rotation)
                }
            }
            for (provider in windowLayoutParams.providedInsets) {
                setProviderInsets(provider, gravity, rotation)
            }
        }
        context.notifyUpdateLayoutParams()
    }