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

Commit bb35a0df authored by Gaurav Bhola's avatar Gaurav Bhola
Browse files

Move the logic of deciding what all insets are controllable to InsetsPolicy.

- It makes more sense to have it in InsetsPolicy because this is something that OEMs can change.

Fix: b/226613098
Test: atest WindowContainerInsetsSourceProviderTest
Change-Id: Ie54f9457b4063b07a37198e04c05d30f083bd5c9
parent 1c8eb010
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -289,6 +289,23 @@ class InsetsPolicy {
        return adjustVisibilityForTransientTypes(originalState);
    }

    /**
     * @param type the internal type of the insets.
     * @return {@code true} if the given type is controllable, {@code false} otherwise.
     */
    static boolean isInsetsTypeControllable(@InternalInsetsType int type) {
        switch (type) {
            case ITYPE_STATUS_BAR:
            case ITYPE_NAVIGATION_BAR:
            case ITYPE_IME:
            case ITYPE_CLIMATE_BAR:
            case ITYPE_EXTRA_NAVIGATION_BAR:
                return true;
            default:
                return false;
        }
    }

    private static @InternalInsetsType int getInsetsTypeForLayoutParams(
            WindowManager.LayoutParams attrs) {
        @WindowManager.LayoutParams.WindowType int type = attrs.type;
+1 −16
Original line number Diff line number Diff line
@@ -16,11 +16,7 @@

package com.android.server.wm;

import static android.view.InsetsState.ITYPE_CLIMATE_BAR;
import static android.view.InsetsState.ITYPE_EXTRA_NAVIGATION_BAR;
import static android.view.InsetsState.ITYPE_IME;
import static android.view.InsetsState.ITYPE_NAVIGATION_BAR;
import static android.view.InsetsState.ITYPE_STATUS_BAR;

import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_INSETS;
import static com.android.server.wm.InsetsSourceProviderProto.CAPTURED_LEASH;
@@ -127,18 +123,7 @@ abstract class InsetsSourceProvider {
        mStateController = stateController;
        mFakeControl = new InsetsSourceControl(
                source.getType(), null /* leash */, new Point(), Insets.NONE);

        switch (source.getType()) {
            case ITYPE_STATUS_BAR:
            case ITYPE_NAVIGATION_BAR:
            case ITYPE_IME:
            case ITYPE_CLIMATE_BAR:
            case ITYPE_EXTRA_NAVIGATION_BAR:
                mControllable = true;
                break;
            default:
                mControllable = false;
        }
        mControllable = InsetsPolicy.isInsetsTypeControllable(source.getType());
    }

    InsetsSource getSource() {