Loading core/java/android/view/WindowInsets.java +13 −3 Original line number Diff line number Diff line Loading @@ -77,11 +77,17 @@ public final class WindowInsets { CONSUMED = new WindowInsets((Insets) null, null, null, false, false, null); } /** @hide */ /** * Construct a new WindowInsets from individual insets. * * A {@code null} inset indicates that the respective inset is consumed. * * @hide */ public WindowInsets(Rect systemWindowInsets, Rect windowDecorInsets, Rect stableInsets, boolean isRound, boolean alwaysConsumeNavBar, DisplayCutout displayCutout) { this(Insets.of(systemWindowInsets), Insets.of(windowDecorInsets), Insets.of(stableInsets), isRound, alwaysConsumeNavBar, displayCutout); this(insetsOrNull(systemWindowInsets), insetsOrNull(windowDecorInsets), insetsOrNull(stableInsets), isRound, alwaysConsumeNavBar, displayCutout); } private WindowInsets(Insets systemWindowInsets, Insets windowDecorInsets, Loading Loading @@ -673,6 +679,10 @@ public final class WindowInsets { return Insets.of(newLeft, newTop, newRight, newBottom); } private static Insets insetsOrNull(Rect insets) { return insets != null ? Insets.of(insets) : null; } /** * @return whether system window insets have been consumed. */ Loading core/tests/coretests/src/android/view/WindowInsetsTest.java 0 → 100644 +50 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.view; import static org.junit.Assert.assertTrue; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(AndroidJUnit4.class) @SmallTest @Presubmit public class WindowInsetsTest { @Test public void systemWindowInsets_afterConsuming_isConsumed() { assertTrue(new WindowInsets(new Rect(1, 2, 3, 4), null, null, false, false, null) .consumeSystemWindowInsets().isConsumed()); } @Test public void multiNullConstructor_isConsumed() { assertTrue(new WindowInsets(null, null, null, false, false, null).isConsumed()); } @Test public void singleNullConstructor_isConsumed() { assertTrue(new WindowInsets((Rect) null).isConsumed()); } } Loading
core/java/android/view/WindowInsets.java +13 −3 Original line number Diff line number Diff line Loading @@ -77,11 +77,17 @@ public final class WindowInsets { CONSUMED = new WindowInsets((Insets) null, null, null, false, false, null); } /** @hide */ /** * Construct a new WindowInsets from individual insets. * * A {@code null} inset indicates that the respective inset is consumed. * * @hide */ public WindowInsets(Rect systemWindowInsets, Rect windowDecorInsets, Rect stableInsets, boolean isRound, boolean alwaysConsumeNavBar, DisplayCutout displayCutout) { this(Insets.of(systemWindowInsets), Insets.of(windowDecorInsets), Insets.of(stableInsets), isRound, alwaysConsumeNavBar, displayCutout); this(insetsOrNull(systemWindowInsets), insetsOrNull(windowDecorInsets), insetsOrNull(stableInsets), isRound, alwaysConsumeNavBar, displayCutout); } private WindowInsets(Insets systemWindowInsets, Insets windowDecorInsets, Loading Loading @@ -673,6 +679,10 @@ public final class WindowInsets { return Insets.of(newLeft, newTop, newRight, newBottom); } private static Insets insetsOrNull(Rect insets) { return insets != null ? Insets.of(insets) : null; } /** * @return whether system window insets have been consumed. */ Loading
core/tests/coretests/src/android/view/WindowInsetsTest.java 0 → 100644 +50 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.view; import static org.junit.Assert.assertTrue; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(AndroidJUnit4.class) @SmallTest @Presubmit public class WindowInsetsTest { @Test public void systemWindowInsets_afterConsuming_isConsumed() { assertTrue(new WindowInsets(new Rect(1, 2, 3, 4), null, null, false, false, null) .consumeSystemWindowInsets().isConsumed()); } @Test public void multiNullConstructor_isConsumed() { assertTrue(new WindowInsets(null, null, null, false, false, null).isConsumed()); } @Test public void singleNullConstructor_isConsumed() { assertTrue(new WindowInsets((Rect) null).isConsumed()); } }