Merge "Use default spans as min spans if the min spans > default spans" into sc-dev am: fa9f70be03

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15081332

Change-Id: I64311aa17528c8c968a8cd2f032992c6e00225d7
This commit is contained in:
Steven Ng 2021-06-23 21:17:55 +00:00 committed by Automerger Merge Worker
commit 1579854153
2 changed files with 29 additions and 2 deletions

View File

@ -122,6 +122,8 @@ public final class LauncherAppWidgetProviderInfoTest {
@Test @Test
public void initSpans_minResizeWidthSmallerThanCellWidth_shouldInitializeMinSpansToOne() { public void initSpans_minResizeWidthSmallerThanCellWidth_shouldInitializeMinSpansToOne() {
LauncherAppWidgetProviderInfo info = new LauncherAppWidgetProviderInfo(); LauncherAppWidgetProviderInfo info = new LauncherAppWidgetProviderInfo();
info.minWidth = 100;
info.minHeight = 100;
info.minResizeWidth = 20; info.minResizeWidth = 20;
info.minResizeHeight = 20; info.minResizeHeight = 20;
InvariantDeviceProfile idp = createIDP(); InvariantDeviceProfile idp = createIDP();
@ -135,6 +137,8 @@ public final class LauncherAppWidgetProviderInfoTest {
@Test @Test
public void initSpans_minResizeWidthLargerThanCellWidth_shouldInitializeMinSpans() { public void initSpans_minResizeWidthLargerThanCellWidth_shouldInitializeMinSpans() {
LauncherAppWidgetProviderInfo info = new LauncherAppWidgetProviderInfo(); LauncherAppWidgetProviderInfo info = new LauncherAppWidgetProviderInfo();
info.minWidth = 100;
info.minHeight = 100;
info.minResizeWidth = 80; info.minResizeWidth = 80;
info.minResizeHeight = 80; info.minResizeHeight = 80;
InvariantDeviceProfile idp = createIDP(); InvariantDeviceProfile idp = createIDP();
@ -157,6 +161,8 @@ public final class LauncherAppWidgetProviderInfoTest {
Mockito.when(dp.shouldInsetWidgets()).thenReturn(true); Mockito.when(dp.shouldInsetWidgets()).thenReturn(true);
LauncherAppWidgetProviderInfo info = new LauncherAppWidgetProviderInfo(); LauncherAppWidgetProviderInfo info = new LauncherAppWidgetProviderInfo();
info.minWidth = CELL_SIZE * 3;
info.minHeight = CELL_SIZE * 3;
info.minResizeWidth = CELL_SIZE * 2 + maxPadding; info.minResizeWidth = CELL_SIZE * 2 + maxPadding;
info.minResizeHeight = CELL_SIZE * 2 + maxPadding; info.minResizeHeight = CELL_SIZE * 2 + maxPadding;
@ -177,6 +183,8 @@ public final class LauncherAppWidgetProviderInfoTest {
dp.cellLayoutBorderSpacingPx = maxPadding - 1; dp.cellLayoutBorderSpacingPx = maxPadding - 1;
Mockito.when(dp.shouldInsetWidgets()).thenReturn(false); Mockito.when(dp.shouldInsetWidgets()).thenReturn(false);
LauncherAppWidgetProviderInfo info = new LauncherAppWidgetProviderInfo(); LauncherAppWidgetProviderInfo info = new LauncherAppWidgetProviderInfo();
info.minWidth = CELL_SIZE * 3;
info.minHeight = CELL_SIZE * 3;
info.minResizeWidth = CELL_SIZE * 2 + maxPadding; info.minResizeWidth = CELL_SIZE * 2 + maxPadding;
info.minResizeHeight = CELL_SIZE * 2 + maxPadding; info.minResizeHeight = CELL_SIZE * 2 + maxPadding;
@ -186,6 +194,22 @@ public final class LauncherAppWidgetProviderInfoTest {
assertThat(info.minSpanY).isEqualTo(3); assertThat(info.minSpanY).isEqualTo(3);
} }
@Test
public void
initSpans_minResizeWidthHeightLargerThanMinWidth_shouldUseMinWidthHeightAsMinSpans() {
LauncherAppWidgetProviderInfo info = new LauncherAppWidgetProviderInfo();
info.minWidth = 20;
info.minHeight = 20;
info.minResizeWidth = 80;
info.minResizeHeight = 80;
InvariantDeviceProfile idp = createIDP();
info.initSpans(mContext, idp);
assertThat(info.minSpanX).isEqualTo(1);
assertThat(info.minSpanY).isEqualTo(1);
}
@Test @Test
public void isMinSizeFulfilled_minWidthAndHeightWithinGridSize_shouldReturnTrue() { public void isMinSizeFulfilled_minWidthAndHeightWithinGridSize_shouldReturnTrue() {
LauncherAppWidgetProviderInfo info = new LauncherAppWidgetProviderInfo(); LauncherAppWidgetProviderInfo info = new LauncherAppWidgetProviderInfo();

View File

@ -160,8 +160,11 @@ public class LauncherAppWidgetProviderInfo extends AppWidgetProviderInfo
} }
} }
this.minSpanX = minSpanX; // If minSpanX/Y > spanX/Y, ignore the minSpanX/Y to match the behavior described in
this.minSpanY = minSpanY; // minResizeWidth & minResizeHeight Android documentation. See
// https://developer.android.com/reference/android/appwidget/AppWidgetProviderInfo
this.minSpanX = Math.min(spanX, minSpanX);
this.minSpanY = Math.min(spanY, minSpanY);
this.maxSpanX = maxSpanX; this.maxSpanX = maxSpanX;
this.maxSpanY = maxSpanY; this.maxSpanY = maxSpanY;
this.mIsMinSizeFulfilled = Math.min(spanX, minSpanX) <= idp.numColumns this.mIsMinSizeFulfilled = Math.min(spanX, minSpanX) <= idp.numColumns