Loading core/java/android/view/InsetsState.java +22 −13 Original line number Diff line number Diff line Loading @@ -619,6 +619,7 @@ public class InsetsState implements Parcelable { } public void set(InsetsState other, boolean copySources) { if (this != other) { mDisplayFrame.set(other.mDisplayFrame); mDisplayCutout.set(other.mDisplayCutout); mRoundedCorners = other.getRoundedCorners(); Loading @@ -633,6 +634,11 @@ public class InsetsState implements Parcelable { ? new InsetsSource(otherSource) : otherSource); } } else if (copySources) { for (int i = 0, size = mSources.size(); i < size; i++) { mSources.setValueAt(i, new InsetsSource(mSources.valueAt(i))); } } } /** Loading @@ -643,6 +649,9 @@ public class InsetsState implements Parcelable { * @param types the only types of sources would be set. */ public void set(InsetsState other, @InsetsType int types) { if (this == other) { return; } mDisplayFrame.set(other.mDisplayFrame); mDisplayCutout.set(other.mDisplayCutout); mRoundedCorners = other.getRoundedCorners(); Loading core/tests/coretests/src/android/view/InsetsStateTest.java +49 −0 Original line number Diff line number Diff line Loading @@ -657,6 +657,55 @@ public class InsetsStateTest { assertEquals(mState, mState2); } @Test public void testSet() { mState.getOrCreateSource(ID_IME, ime()) .setFrame(new Rect(1, 2, 3, 4)); mState.getOrCreateSource(ID_STATUS_BAR, statusBars()) .setFrame(new Rect(5, 6, 7, 8)); final int size = mState.sourceSize(); mState.set(mState); assertEquals(size, mState.sourceSize()); mState.set(mState, true /* copiesSource */); assertEquals(size, mState.sourceSize()); mState2.getOrCreateSource(ID_NAVIGATION_BAR, navigationBars()) .setFrame(new Rect(9, 10, 11, 12)); mState2.set(mState); assertEquals(size, mState2.sourceSize()); assertEquals(mState, mState2); mState2.getOrCreateSource(ID_NAVIGATION_BAR, navigationBars()) .setFrame(new Rect(13, 14, 15, 16)); mState2.set(mState, true /* copiesSource */); assertEquals(size, mState2.sourceSize()); assertEquals(mState, mState2); } @Test public void testSetForTypes() { mState.getOrCreateSource(ID_IME, ime()) .setFrame(new Rect(1, 2, 3, 4)); mState.getOrCreateSource(ID_STATUS_BAR, statusBars()) .setFrame(new Rect(5, 6, 7, 8)); final int size = mState.sourceSize(); mState.set(mState, ime() | statusBars()); assertEquals(size, mState.sourceSize()); mState2.getOrCreateSource(ID_NAVIGATION_BAR, navigationBars()) .setFrame(new Rect(9, 10, 11, 12)); mState2.set(mState, ime() | statusBars()); assertEquals( mState.getOrCreateSource(ID_IME, ime()), mState2.getOrCreateSource(ID_IME, ime())); assertEquals( mState.getOrCreateSource(ID_IME, statusBars()), mState2.getOrCreateSource(ID_IME, statusBars())); assertEquals(size + 1, mState2.sourceSize()); } @Test public void testCopy() { mState.getOrCreateSource(ID_IME, ime()) Loading Loading
core/java/android/view/InsetsState.java +22 −13 Original line number Diff line number Diff line Loading @@ -619,6 +619,7 @@ public class InsetsState implements Parcelable { } public void set(InsetsState other, boolean copySources) { if (this != other) { mDisplayFrame.set(other.mDisplayFrame); mDisplayCutout.set(other.mDisplayCutout); mRoundedCorners = other.getRoundedCorners(); Loading @@ -633,6 +634,11 @@ public class InsetsState implements Parcelable { ? new InsetsSource(otherSource) : otherSource); } } else if (copySources) { for (int i = 0, size = mSources.size(); i < size; i++) { mSources.setValueAt(i, new InsetsSource(mSources.valueAt(i))); } } } /** Loading @@ -643,6 +649,9 @@ public class InsetsState implements Parcelable { * @param types the only types of sources would be set. */ public void set(InsetsState other, @InsetsType int types) { if (this == other) { return; } mDisplayFrame.set(other.mDisplayFrame); mDisplayCutout.set(other.mDisplayCutout); mRoundedCorners = other.getRoundedCorners(); Loading
core/tests/coretests/src/android/view/InsetsStateTest.java +49 −0 Original line number Diff line number Diff line Loading @@ -657,6 +657,55 @@ public class InsetsStateTest { assertEquals(mState, mState2); } @Test public void testSet() { mState.getOrCreateSource(ID_IME, ime()) .setFrame(new Rect(1, 2, 3, 4)); mState.getOrCreateSource(ID_STATUS_BAR, statusBars()) .setFrame(new Rect(5, 6, 7, 8)); final int size = mState.sourceSize(); mState.set(mState); assertEquals(size, mState.sourceSize()); mState.set(mState, true /* copiesSource */); assertEquals(size, mState.sourceSize()); mState2.getOrCreateSource(ID_NAVIGATION_BAR, navigationBars()) .setFrame(new Rect(9, 10, 11, 12)); mState2.set(mState); assertEquals(size, mState2.sourceSize()); assertEquals(mState, mState2); mState2.getOrCreateSource(ID_NAVIGATION_BAR, navigationBars()) .setFrame(new Rect(13, 14, 15, 16)); mState2.set(mState, true /* copiesSource */); assertEquals(size, mState2.sourceSize()); assertEquals(mState, mState2); } @Test public void testSetForTypes() { mState.getOrCreateSource(ID_IME, ime()) .setFrame(new Rect(1, 2, 3, 4)); mState.getOrCreateSource(ID_STATUS_BAR, statusBars()) .setFrame(new Rect(5, 6, 7, 8)); final int size = mState.sourceSize(); mState.set(mState, ime() | statusBars()); assertEquals(size, mState.sourceSize()); mState2.getOrCreateSource(ID_NAVIGATION_BAR, navigationBars()) .setFrame(new Rect(9, 10, 11, 12)); mState2.set(mState, ime() | statusBars()); assertEquals( mState.getOrCreateSource(ID_IME, ime()), mState2.getOrCreateSource(ID_IME, ime())); assertEquals( mState.getOrCreateSource(ID_IME, statusBars()), mState2.getOrCreateSource(ID_IME, statusBars())); assertEquals(size + 1, mState2.sourceSize()); } @Test public void testCopy() { mState.getOrCreateSource(ID_IME, ime()) Loading