Revert "Update workspace, cell layout, shortcut and widget, and cell size calculations."
This reverts commit b45d6c421d.
Reason for revert: b/231283023
Change-Id: Ic4941ea9ecd382348aae8e099e5a7ebf4ed0bba3
This commit is contained in:
@@ -66,9 +66,9 @@ public class OverviewState extends LauncherState {
|
|||||||
@Override
|
@Override
|
||||||
public ScaleAndTranslation getWorkspaceScaleAndTranslation(Launcher launcher) {
|
public ScaleAndTranslation getWorkspaceScaleAndTranslation(Launcher launcher) {
|
||||||
RecentsView recentsView = launcher.getOverviewPanel();
|
RecentsView recentsView = launcher.getOverviewPanel();
|
||||||
float workspacePageHeight = launcher.getDeviceProfile().getCellLayoutHeight();
|
float workspacePageWidth = launcher.getDeviceProfile().getWorkspaceWidth();
|
||||||
recentsView.getTaskSize(sTempRect);
|
recentsView.getTaskSize(sTempRect);
|
||||||
float scale = (float) sTempRect.height() / workspacePageHeight;
|
float scale = (float) sTempRect.width() / workspacePageWidth;
|
||||||
float parallaxFactor = 0.5f;
|
float parallaxFactor = 0.5f;
|
||||||
return new ScaleAndTranslation(scale, 0, -getDefaultSwipeHeight(launcher) * parallaxFactor);
|
return new ScaleAndTranslation(scale, 0, -getDefaultSwipeHeight(launcher) * parallaxFactor);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -501,7 +501,7 @@ public class DeviceProfile {
|
|||||||
*/
|
*/
|
||||||
private int calculateQsbWidth() {
|
private int calculateQsbWidth() {
|
||||||
if (isQsbInline) {
|
if (isQsbInline) {
|
||||||
int columns = getPanelCount() * inv.numColumns;
|
int columns = isTwoPanels ? inv.numColumns * 2 : inv.numColumns;
|
||||||
return getIconToIconWidthForColumns(columns)
|
return getIconToIconWidthForColumns(columns)
|
||||||
- iconSizePx * numShownHotseatIcons
|
- iconSizePx * numShownHotseatIcons
|
||||||
- hotseatBorderSpace * numShownHotseatIcons;
|
- hotseatBorderSpace * numShownHotseatIcons;
|
||||||
@@ -665,10 +665,11 @@ public class DeviceProfile {
|
|||||||
updateIconSize(1f, res);
|
updateIconSize(1f, res);
|
||||||
|
|
||||||
updateWorkspacePadding();
|
updateWorkspacePadding();
|
||||||
|
Point workspacePadding = getTotalWorkspacePadding();
|
||||||
|
|
||||||
// Check to see if the icons fit within the available height.
|
// Check to see if the icons fit within the available height.
|
||||||
float usedHeight = getCellLayoutHeightSpecification();
|
float usedHeight = getCellLayoutHeightSpecification();
|
||||||
final int maxHeight = getCellLayoutHeight();
|
final int maxHeight = getWorkspaceHeight(workspacePadding);
|
||||||
float extraHeight = Math.max(0, maxHeight - usedHeight);
|
float extraHeight = Math.max(0, maxHeight - usedHeight);
|
||||||
float scaleY = maxHeight / usedHeight;
|
float scaleY = maxHeight / usedHeight;
|
||||||
boolean shouldScale = scaleY < 1f;
|
boolean shouldScale = scaleY < 1f;
|
||||||
@@ -701,7 +702,7 @@ public class DeviceProfile {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private int getCellLayoutWidthSpecification() {
|
private int getCellLayoutWidthSpecification() {
|
||||||
int numColumns = getPanelCount() * inv.numColumns;
|
int numColumns = isTwoPanels ? inv.numColumns * 2 : inv.numColumns;
|
||||||
return (cellWidthPx * numColumns) + (cellLayoutBorderSpacePx.x * (numColumns - 1))
|
return (cellWidthPx * numColumns) + (cellLayoutBorderSpacePx.x * (numColumns - 1))
|
||||||
+ cellLayoutPaddingPx.left + cellLayoutPaddingPx.right;
|
+ cellLayoutPaddingPx.left + cellLayoutPaddingPx.right;
|
||||||
}
|
}
|
||||||
@@ -901,18 +902,16 @@ public class DeviceProfile {
|
|||||||
result = new Point();
|
result = new Point();
|
||||||
}
|
}
|
||||||
|
|
||||||
result.x = calculateCellWidth(getShortcutAndWidgetContainerWidth(),
|
// Since we are only concerned with the overall padding, layout direction does
|
||||||
cellLayoutBorderSpacePx.x, inv.numColumns);
|
// not matter.
|
||||||
result.y = calculateCellHeight(getShortcutAndWidgetContainerHeight(),
|
Point padding = getTotalWorkspacePadding();
|
||||||
cellLayoutBorderSpacePx.y, inv.numRows);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
int numColumns = isTwoPanels ? inv.numColumns * 2 : inv.numColumns;
|
||||||
* Gets the number of panels within the workspace.
|
int screenWidthPx = getWorkspaceWidth(padding);
|
||||||
*/
|
result.x = calculateCellWidth(screenWidthPx, cellLayoutBorderSpacePx.x, numColumns);
|
||||||
public int getPanelCount() {
|
int screenHeightPx = getWorkspaceHeight(padding);
|
||||||
return isTwoPanels ? 2 : 1;
|
result.y = calculateCellHeight(screenHeightPx, cellLayoutBorderSpacePx.y, inv.numRows);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -933,7 +932,7 @@ public class DeviceProfile {
|
|||||||
/**
|
/**
|
||||||
* Gets the scaled top of the workspace in px for the spring-loaded edit state.
|
* Gets the scaled top of the workspace in px for the spring-loaded edit state.
|
||||||
*/
|
*/
|
||||||
public float getCellLayoutSpringLoadShrunkTop() {
|
public float getWorkspaceSpringLoadShrunkTop() {
|
||||||
workspaceSpringLoadShrunkTop = mInsets.top + dropTargetBarTopMarginPx + dropTargetBarSizePx
|
workspaceSpringLoadShrunkTop = mInsets.top + dropTargetBarTopMarginPx + dropTargetBarSizePx
|
||||||
+ dropTargetBarBottomMarginPx;
|
+ dropTargetBarBottomMarginPx;
|
||||||
return workspaceSpringLoadShrunkTop;
|
return workspaceSpringLoadShrunkTop;
|
||||||
@@ -942,7 +941,7 @@ public class DeviceProfile {
|
|||||||
/**
|
/**
|
||||||
* Gets the scaled bottom of the workspace in px for the spring-loaded edit state.
|
* Gets the scaled bottom of the workspace in px for the spring-loaded edit state.
|
||||||
*/
|
*/
|
||||||
private float getCellLayoutSpringLoadShrunkBottom() {
|
private float getWorkspaceSpringLoadShrunkBottom() {
|
||||||
int topOfHotseat = hotseatBarSizePx + springLoadedHotseatBarTopMarginPx;
|
int topOfHotseat = hotseatBarSizePx + springLoadedHotseatBarTopMarginPx;
|
||||||
workspaceSpringLoadShrunkBottom =
|
workspaceSpringLoadShrunkBottom =
|
||||||
heightPx - (isVerticalBarLayout() ? getVerticalHotseatLastItemBottomOffset()
|
heightPx - (isVerticalBarLayout() ? getVerticalHotseatLastItemBottomOffset()
|
||||||
@@ -961,8 +960,9 @@ public class DeviceProfile {
|
|||||||
* Gets the scale of the workspace for the spring-loaded edit state.
|
* Gets the scale of the workspace for the spring-loaded edit state.
|
||||||
*/
|
*/
|
||||||
public float getWorkspaceSpringLoadScale() {
|
public float getWorkspaceSpringLoadScale() {
|
||||||
float scale = (getCellLayoutSpringLoadShrunkBottom() - getCellLayoutSpringLoadShrunkTop())
|
float cellLayoutHeight = availableHeightPx - workspacePadding.top - workspacePadding.bottom;
|
||||||
/ getCellLayoutHeight();
|
float scale = (getWorkspaceSpringLoadShrunkBottom() - getWorkspaceSpringLoadShrunkTop())
|
||||||
|
/ cellLayoutHeight;
|
||||||
scale = Math.min(scale, 1f);
|
scale = Math.min(scale, 1f);
|
||||||
|
|
||||||
// Reduce scale if next pages would not be visible after scaling the workspace
|
// Reduce scale if next pages would not be visible after scaling the workspace
|
||||||
@@ -976,55 +976,19 @@ public class DeviceProfile {
|
|||||||
return scale;
|
return scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the width of the Workspace, aka a scrollable page of the homescreen.
|
|
||||||
*/
|
|
||||||
public int getWorkspaceWidth() {
|
public int getWorkspaceWidth() {
|
||||||
return availableWidthPx;
|
return getWorkspaceWidth(getTotalWorkspacePadding());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public int getWorkspaceWidth(Point workspacePadding) {
|
||||||
* Gets the height of the Workspace, aka a scrollable page of the homescreen.
|
int cellLayoutTotalPadding =
|
||||||
*/
|
(isTwoPanels ? 2 : 1) * (cellLayoutPaddingPx.left + cellLayoutPaddingPx.right);
|
||||||
public int getWorkspaceHeight() {
|
return availableWidthPx - workspacePadding.x - cellLayoutTotalPadding;
|
||||||
return availableHeightPx;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
private int getWorkspaceHeight(Point workspacePadding) {
|
||||||
* Gets the width of a single Cell Layout, aka a single panel within a Workspace.
|
return availableHeightPx - workspacePadding.y - (cellLayoutPaddingPx.top
|
||||||
*
|
+ cellLayoutPaddingPx.bottom);
|
||||||
* <p>This is the width of a Workspace, less its horizontal padding. Note that two-panel
|
|
||||||
* layouts have two Cell Layouts per workspace.
|
|
||||||
*/
|
|
||||||
public int getCellLayoutWidth() {
|
|
||||||
return (getWorkspaceWidth() - getTotalWorkspacePadding().x) / getPanelCount();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the height of a single Cell Layout, aka a single panel within a Workspace.
|
|
||||||
*
|
|
||||||
* <p>This is the height of a Workspace, less its vertical padding.
|
|
||||||
*/
|
|
||||||
public int getCellLayoutHeight() {
|
|
||||||
return getWorkspaceHeight() - getTotalWorkspacePadding().y;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the width of the container holding the shortcuts and widgets.
|
|
||||||
*
|
|
||||||
* <p>This is the width of one Cell Layout less its horizontal padding.
|
|
||||||
*/
|
|
||||||
public int getShortcutAndWidgetContainerWidth() {
|
|
||||||
return getCellLayoutWidth() - (cellLayoutPaddingPx.left + cellLayoutPaddingPx.right);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the height of the container holding the shortcuts and widgets.
|
|
||||||
*
|
|
||||||
* <p>This is the height of one Cell Layout less its vertical padding.
|
|
||||||
*/
|
|
||||||
public int getShortcutAndWidgetContainerHeight() {
|
|
||||||
return getCellLayoutHeight() - (cellLayoutPaddingPx.top + cellLayoutPaddingPx.bottom);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Point getTotalWorkspacePadding() {
|
public Point getTotalWorkspacePadding() {
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class SpringLoadedState extends LauncherState {
|
|||||||
return super.getWorkspaceScaleAndTranslation(launcher);
|
return super.getWorkspaceScaleAndTranslation(launcher);
|
||||||
}
|
}
|
||||||
|
|
||||||
float shrunkTop = grid.getCellLayoutSpringLoadShrunkTop();
|
float shrunkTop = grid.getWorkspaceSpringLoadShrunkTop();
|
||||||
float scale = grid.getWorkspaceSpringLoadScale();
|
float scale = grid.getWorkspaceSpringLoadScale();
|
||||||
|
|
||||||
float halfHeight = ws.getHeight() / 2;
|
float halfHeight = ws.getHeight() / 2;
|
||||||
|
|||||||
@@ -1,258 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2022 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 com.android.launcher3
|
|
||||||
|
|
||||||
import android.graphics.PointF
|
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
|
||||||
import androidx.test.filters.SmallTest
|
|
||||||
import com.android.launcher3.util.WindowBounds
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
|
||||||
import org.junit.Test
|
|
||||||
import org.junit.runner.RunWith
|
|
||||||
import org.mockito.ArgumentMatchers
|
|
||||||
import org.mockito.Mockito.`when` as whenever
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test for [DeviceProfile] grid dimensions.
|
|
||||||
*
|
|
||||||
* This includes workspace, cell layout, shortcut and widget container, cell sizes, etc.
|
|
||||||
*/
|
|
||||||
@SmallTest
|
|
||||||
@RunWith(AndroidJUnit4::class)
|
|
||||||
class DeviceProfileGridDimensionsTest : DeviceProfileBaseTest() {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun getWorkspaceWidth_twoPanelLandscapeScalable4By4GridTablet_workspaceWidthIsFullPage() {
|
|
||||||
val tabletWidth = 2560
|
|
||||||
val tabletHeight = 1600
|
|
||||||
val availableWidth = 2560
|
|
||||||
val availableHeight = 1500
|
|
||||||
windowBounds = WindowBounds(tabletWidth, tabletHeight, availableWidth, availableHeight, 0)
|
|
||||||
useTwoPanels = true
|
|
||||||
whenever(info.isTablet(ArgumentMatchers.any())).thenReturn(true)
|
|
||||||
whenever(info.getDensityDpi()).thenReturn(320)
|
|
||||||
inv = getScalable4By4InvariantDeviceProfile()
|
|
||||||
|
|
||||||
val dp = newDP()
|
|
||||||
|
|
||||||
val expectedWorkspaceWidth = availableWidth
|
|
||||||
assertThat(dp.workspaceWidth).isEqualTo(expectedWorkspaceWidth)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun getWorkspaceHeight_twoPanelLandscapeScalable4By4GridTablet_workspaceHeightIsFullPage() {
|
|
||||||
val tabletWidth = 2560
|
|
||||||
val tabletHeight = 1600
|
|
||||||
val availableWidth = 2560
|
|
||||||
val availableHeight = 1500
|
|
||||||
windowBounds = WindowBounds(tabletWidth, tabletHeight, availableWidth, availableHeight, 0)
|
|
||||||
useTwoPanels = true
|
|
||||||
whenever(info.isTablet(ArgumentMatchers.any())).thenReturn(true)
|
|
||||||
whenever(info.getDensityDpi()).thenReturn(320)
|
|
||||||
inv = getScalable4By4InvariantDeviceProfile()
|
|
||||||
|
|
||||||
val dp = newDP()
|
|
||||||
|
|
||||||
val expectedWorkspaceHeight = availableHeight
|
|
||||||
assertThat(dp.workspaceHeight).isEqualTo(expectedWorkspaceHeight)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun getCellLayoutWidth_twoPanelLandscapeScalable4By4GridTablet_equalsSinglePanelWidth() {
|
|
||||||
val tabletWidth = 2560
|
|
||||||
val tabletHeight = 1600
|
|
||||||
val availableWidth = 2560
|
|
||||||
val availableHeight = 1500
|
|
||||||
windowBounds = WindowBounds(tabletWidth, tabletHeight, availableWidth, availableHeight, 0)
|
|
||||||
useTwoPanels = true
|
|
||||||
whenever(info.isTablet(ArgumentMatchers.any())).thenReturn(true)
|
|
||||||
whenever(info.getDensityDpi()).thenReturn(320)
|
|
||||||
inv = getScalable4By4InvariantDeviceProfile()
|
|
||||||
|
|
||||||
val dp = newDP()
|
|
||||||
|
|
||||||
val expectedWorkspaceWidth = availableWidth
|
|
||||||
val expectedCellLayoutWidth =
|
|
||||||
(expectedWorkspaceWidth - (dp.workspacePadding.right + dp.workspacePadding.left)) /
|
|
||||||
dp.panelCount
|
|
||||||
assertThat(dp.cellLayoutWidth).isEqualTo(expectedCellLayoutWidth)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun getCellLayoutHeight_twoPanelLandscapeScalable4By4GridTablet_equalsSinglePanelHeight() {
|
|
||||||
val tabletWidth = 2560
|
|
||||||
val tabletHeight = 1600
|
|
||||||
val availableWidth = 2560
|
|
||||||
val availableHeight = 1500
|
|
||||||
windowBounds = WindowBounds(tabletWidth, tabletHeight, availableWidth, availableHeight, 0)
|
|
||||||
useTwoPanels = true
|
|
||||||
whenever(info.isTablet(ArgumentMatchers.any())).thenReturn(true)
|
|
||||||
whenever(info.getDensityDpi()).thenReturn(320)
|
|
||||||
inv = getScalable4By4InvariantDeviceProfile()
|
|
||||||
|
|
||||||
val dp = newDP()
|
|
||||||
|
|
||||||
val expectedWorkspaceHeight = availableHeight
|
|
||||||
val expectedCellLayoutHeight =
|
|
||||||
expectedWorkspaceHeight - (dp.workspacePadding.top + dp.workspacePadding.bottom)
|
|
||||||
assertThat(dp.cellLayoutHeight).isEqualTo(expectedCellLayoutHeight)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun getShortcutAndWidgetContainerWidth_twoPanelLandscapeScalable4By4GridTablet_equalsIconsPlusBorderSpacesWidth() {
|
|
||||||
val tabletWidth = 2560
|
|
||||||
val tabletHeight = 1600
|
|
||||||
val availableWidth = 2560
|
|
||||||
val availableHeight = 1500
|
|
||||||
windowBounds = WindowBounds(tabletWidth, tabletHeight, availableWidth, availableHeight, 0)
|
|
||||||
useTwoPanels = true
|
|
||||||
whenever(info.isTablet(ArgumentMatchers.any())).thenReturn(true)
|
|
||||||
whenever(info.getDensityDpi()).thenReturn(320)
|
|
||||||
inv = getScalable4By4InvariantDeviceProfile()
|
|
||||||
|
|
||||||
val dp = newDP()
|
|
||||||
|
|
||||||
val expectedWorkspaceWidth = availableWidth
|
|
||||||
val expectedCellLayoutWidth =
|
|
||||||
(expectedWorkspaceWidth - (dp.workspacePadding.right + dp.workspacePadding.left)) /
|
|
||||||
dp.panelCount
|
|
||||||
val expectedShortcutAndWidgetContainerWidth = expectedCellLayoutWidth -
|
|
||||||
(dp.cellLayoutPaddingPx.left + dp.cellLayoutPaddingPx.right)
|
|
||||||
assertThat(dp.shortcutAndWidgetContainerWidth).isEqualTo(expectedShortcutAndWidgetContainerWidth)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun getShortcutAndWidgetContainerHeight_twoPanelLandscapeScalable4By4GridTablet_equalsIconsPlusBorderSpacesHeight() {
|
|
||||||
val tabletWidth = 2560
|
|
||||||
val tabletHeight = 1600
|
|
||||||
val availableWidth = 2560
|
|
||||||
val availableHeight = 1500
|
|
||||||
windowBounds = WindowBounds(tabletWidth, tabletHeight, availableWidth, availableHeight, 0)
|
|
||||||
useTwoPanels = true
|
|
||||||
whenever(info.isTablet(ArgumentMatchers.any())).thenReturn(true)
|
|
||||||
whenever(info.getDensityDpi()).thenReturn(320)
|
|
||||||
inv = getScalable4By4InvariantDeviceProfile()
|
|
||||||
|
|
||||||
val dp = newDP()
|
|
||||||
|
|
||||||
val expectedWorkspaceHeight = availableHeight
|
|
||||||
val expectedCellLayoutHeight =
|
|
||||||
expectedWorkspaceHeight - (dp.workspacePadding.top + dp.workspacePadding.bottom)
|
|
||||||
val expectedShortcutAndWidgetContainerHeight = expectedCellLayoutHeight -
|
|
||||||
(dp.cellLayoutPaddingPx.top + dp.cellLayoutPaddingPx.bottom)
|
|
||||||
assertThat(dp.shortcutAndWidgetContainerHeight).isEqualTo(
|
|
||||||
expectedShortcutAndWidgetContainerHeight)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun getCellSize_twoPanelLandscapeScalable4By4GridTablet_equalsSinglePanelWidth() {
|
|
||||||
val tabletWidth = 2560
|
|
||||||
val tabletHeight = 1600
|
|
||||||
val availableWidth = 2560
|
|
||||||
val availableHeight = 1500
|
|
||||||
windowBounds = WindowBounds(tabletWidth, tabletHeight, availableWidth, availableHeight, 0)
|
|
||||||
useTwoPanels = true
|
|
||||||
whenever(info.isTablet(ArgumentMatchers.any())).thenReturn(true)
|
|
||||||
whenever(info.getDensityDpi()).thenReturn(320)
|
|
||||||
inv = getScalable4By4InvariantDeviceProfile()
|
|
||||||
|
|
||||||
val dp = newDP()
|
|
||||||
|
|
||||||
val expectedWorkspaceWidth = availableWidth
|
|
||||||
val expectedCellLayoutWidth =
|
|
||||||
(expectedWorkspaceWidth - (dp.workspacePadding.right + dp.workspacePadding.left)) /
|
|
||||||
dp.panelCount
|
|
||||||
val expectedShortcutAndWidgetContainerWidth =
|
|
||||||
expectedCellLayoutWidth -
|
|
||||||
(dp.cellLayoutPaddingPx.left + dp.cellLayoutPaddingPx.right)
|
|
||||||
assertThat(dp.getCellSize().x).isEqualTo(
|
|
||||||
(expectedShortcutAndWidgetContainerWidth -
|
|
||||||
((inv!!.numColumns - 1) * dp.cellLayoutBorderSpacePx.x)) / inv!!.numColumns)
|
|
||||||
val expectedWorkspaceHeight = availableHeight
|
|
||||||
val expectedCellLayoutHeight =
|
|
||||||
expectedWorkspaceHeight - (dp.workspacePadding.top + dp.workspacePadding.bottom)
|
|
||||||
val expectedShortcutAndWidgetContainerHeight = expectedCellLayoutHeight -
|
|
||||||
(dp.cellLayoutPaddingPx.top + dp.cellLayoutPaddingPx.bottom)
|
|
||||||
assertThat(dp.getCellSize().y).isEqualTo(
|
|
||||||
(expectedShortcutAndWidgetContainerHeight -
|
|
||||||
((inv!!.numRows - 1) * dp.cellLayoutBorderSpacePx.y)) / inv!!.numRows)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun getPanelCount_twoPanelLandscapeScalable4By4GridTablet_equalsTwoPanels() {
|
|
||||||
val tabletWidth = 2560
|
|
||||||
val tabletHeight = 1600
|
|
||||||
val availableWidth = 2560
|
|
||||||
val availableHeight = 1500
|
|
||||||
windowBounds = WindowBounds(tabletWidth, tabletHeight, availableWidth, availableHeight, 0)
|
|
||||||
useTwoPanels = true
|
|
||||||
whenever(info.isTablet(ArgumentMatchers.any())).thenReturn(true)
|
|
||||||
whenever(info.getDensityDpi()).thenReturn(320)
|
|
||||||
inv = getScalable4By4InvariantDeviceProfile()
|
|
||||||
|
|
||||||
val dp = newDP()
|
|
||||||
|
|
||||||
assertThat(dp.panelCount).isEqualTo(2)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getScalable4By4InvariantDeviceProfile(): InvariantDeviceProfile {
|
|
||||||
return InvariantDeviceProfile().apply {
|
|
||||||
isScalable = true
|
|
||||||
numColumns = 4
|
|
||||||
numRows = 4
|
|
||||||
numShownHotseatIcons = 4
|
|
||||||
numDatabaseHotseatIcons = 6
|
|
||||||
numShrunkenHotseatIcons = 5
|
|
||||||
horizontalMargin = FloatArray(4) { 22f }
|
|
||||||
borderSpaces = listOf(
|
|
||||||
PointF(16f, 16f),
|
|
||||||
PointF(16f, 16f),
|
|
||||||
PointF(16f, 16f),
|
|
||||||
PointF(16f, 16f)
|
|
||||||
).toTypedArray()
|
|
||||||
allAppsBorderSpaces = listOf(
|
|
||||||
PointF(16f, 16f),
|
|
||||||
PointF(16f, 16f),
|
|
||||||
PointF(16f, 16f),
|
|
||||||
PointF(16f, 16f)
|
|
||||||
).toTypedArray()
|
|
||||||
hotseatBorderSpaces = FloatArray(4) { 16f }
|
|
||||||
hotseatColumnSpan = IntArray(4) { 4 }
|
|
||||||
iconSize = FloatArray(4) { 56f }
|
|
||||||
allAppsIconSize = FloatArray(4) { 56f }
|
|
||||||
iconTextSize = FloatArray(4) { 14f }
|
|
||||||
allAppsIconTextSize = FloatArray(4) { 14f }
|
|
||||||
minCellSize = listOf(
|
|
||||||
PointF(64f, 83f),
|
|
||||||
PointF(64f, 83f),
|
|
||||||
PointF(64f, 83f),
|
|
||||||
PointF(64f, 83f)
|
|
||||||
).toTypedArray()
|
|
||||||
allAppsCellSize = listOf(
|
|
||||||
PointF(64f, 83f),
|
|
||||||
PointF(64f, 83f),
|
|
||||||
PointF(64f, 83f),
|
|
||||||
PointF(64f, 83f)
|
|
||||||
).toTypedArray()
|
|
||||||
inlineQsb = booleanArrayOf(
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
false
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user