Merge "Fix non-zero window inset" into sc-dev

This commit is contained in:
Chris Li
2021-02-19 19:02:32 +00:00
committed by Android (Google) Code Review
2 changed files with 12 additions and 1 deletions

View File

@@ -140,7 +140,11 @@ public class InsetsSource implements Parcelable {
if (getType() == ITYPE_CAPTION_BAR) {
return Insets.of(0, frame.height(), 0, 0);
}
if (!getIntersection(frame, relativeFrame, mTmpFrame)) {
// Checks for whether there is shared edge with insets for 0-width/height window.
final boolean hasIntersection = relativeFrame.isEmpty()
? getIntersection(frame, relativeFrame, mTmpFrame)
: mTmpFrame.setIntersect(frame, relativeFrame);
if (!hasIntersection) {
return Insets.NONE;
}

View File

@@ -168,6 +168,13 @@ public class InsetsSourceTest {
assertEquals(Insets.NONE, insets);
}
@Test
public void testCalculateInsetsForIme_noIntersection_horizontal() {
mImeSource.setFrame(new Rect(0, 0, 100, 500));
Insets insets = mImeSource.calculateInsets(new Rect(100, 0, 500, 500), false);
assertEquals(Insets.NONE, insets);
}
@Test
public void testCalculateInsets_zeroWidthIntersection_horizontal_start() {
mSource.setFrame(new Rect(0, 0, 100, 500));