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

Commit 3eeb71d1 authored by Heemin Seog's avatar Heemin Seog Committed by Automerger Merge Worker
Browse files

Merge "Add climate bar insets" into rvc-dev am: 58169786

Change-Id: I38c88995a491c36a6b29950b52fbb8da0003c9d8
parents 816b9c37 58169786
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -79,7 +79,9 @@ public class InsetsState implements Parcelable {
            ITYPE_TOP_DISPLAY_CUTOUT,
            ITYPE_RIGHT_DISPLAY_CUTOUT,
            ITYPE_BOTTOM_DISPLAY_CUTOUT,
            ITYPE_IME
            ITYPE_IME,
            ITYPE_CLIMATE_BAR,
            ITYPE_EXTRA_NAVIGATION_BAR
    })
    public @interface InternalInsetsType {}

@@ -110,7 +112,11 @@ public class InsetsState implements Parcelable {
    /** Input method window. */
    public static final int ITYPE_IME = 13;

    static final int LAST_TYPE = ITYPE_IME;
    /** Additional system decorations inset type. */
    public static final int ITYPE_CLIMATE_BAR = 14;
    public static final int ITYPE_EXTRA_NAVIGATION_BAR = 15;

    static final int LAST_TYPE = ITYPE_EXTRA_NAVIGATION_BAR;

    // Derived types

@@ -418,8 +424,10 @@ public class InsetsState implements Parcelable {
    public static @Type.InsetsType int toPublicType(@InternalInsetsType int type) {
        switch (type) {
            case ITYPE_STATUS_BAR:
            case ITYPE_CLIMATE_BAR:
                return Type.STATUS_BARS;
            case ITYPE_NAVIGATION_BAR:
            case ITYPE_EXTRA_NAVIGATION_BAR:
                return Type.NAVIGATION_BARS;
            case ITYPE_CAPTION_BAR:
                return Type.CAPTION_BAR;
@@ -498,6 +506,10 @@ public class InsetsState implements Parcelable {
                return "ITYPE_BOTTOM_DISPLAY_CUTOUT";
            case ITYPE_IME:
                return "ITYPE_IME";
            case ITYPE_CLIMATE_BAR:
                return "ITYPE_CLIMATE_BAR";
            case ITYPE_EXTRA_NAVIGATION_BAR:
                return "ITYPE_EXTRA_NAVIGATION_BAR";
            default:
                return "ITYPE_UNKNOWN_" + type;
        }
+34 −0
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import static android.view.InsetsState.ISIDE_BOTTOM;
import static android.view.InsetsState.ISIDE_TOP;
import static android.view.InsetsState.ITYPE_BOTTOM_GESTURES;
import static android.view.InsetsState.ITYPE_CAPTION_BAR;
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;
@@ -182,6 +184,38 @@ public class InsetsStateTest {
        }
    }

    @Test
    public void testCalculateInsets_extraNavRightStatusTop() throws Exception {
        try (InsetsModeSession session =
                     new InsetsModeSession(ViewRootImpl.NEW_INSETS_MODE_FULL)) {
            mState.getSource(ITYPE_STATUS_BAR).setFrame(new Rect(0, 0, 100, 100));
            mState.getSource(ITYPE_STATUS_BAR).setVisible(true);
            mState.getSource(ITYPE_EXTRA_NAVIGATION_BAR).setFrame(new Rect(80, 0, 100, 300));
            mState.getSource(ITYPE_EXTRA_NAVIGATION_BAR).setVisible(true);
            WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
                    false, DisplayCutout.NO_CUTOUT, 0, 0, null);
            assertEquals(Insets.of(0, 100, 20, 0), insets.getSystemWindowInsets());
            assertEquals(Insets.of(0, 100, 0, 0), insets.getInsets(Type.statusBars()));
            assertEquals(Insets.of(0, 0, 20, 0), insets.getInsets(Type.navigationBars()));
        }
    }

    @Test
    public void testCalculateInsets_navigationRightClimateTop() throws Exception {
        try (InsetsModeSession session =
                     new InsetsModeSession(ViewRootImpl.NEW_INSETS_MODE_FULL)) {
            mState.getSource(ITYPE_CLIMATE_BAR).setFrame(new Rect(0, 0, 100, 100));
            mState.getSource(ITYPE_CLIMATE_BAR).setVisible(true);
            mState.getSource(ITYPE_NAVIGATION_BAR).setFrame(new Rect(80, 0, 100, 300));
            mState.getSource(ITYPE_NAVIGATION_BAR).setVisible(true);
            WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
                    false, DisplayCutout.NO_CUTOUT, 0, 0, null);
            assertEquals(Insets.of(0, 100, 20, 0), insets.getSystemWindowInsets());
            assertEquals(Insets.of(0, 100, 0, 0), insets.getInsets(Type.statusBars()));
            assertEquals(Insets.of(0, 0, 20, 0), insets.getInsets(Type.navigationBars()));
        }
    }

    @Test
    public void testStripForDispatch() {
        mState.getSource(ITYPE_STATUS_BAR).setFrame(new Rect(0, 0, 100, 100));