mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-02 08:56:55 +00:00
Merge "launcher: refactoring variables into arrays" into sc-v2-dev am: 292a993c4a
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15992133 Change-Id: Id958b647d40248428709567ce50321280283d72b
This commit is contained in:
@@ -184,11 +184,9 @@
|
||||
<attr name="twoPanelPortraitMinCellHeightDps" format="float" />
|
||||
<!-- twoPanelPortraitMinCellHeightDps defaults to minCellWidthDps, if not specified -->
|
||||
<attr name="twoPanelPortraitMinCellWidthDps" format="float" />
|
||||
<!-- twoPanelLandscapeMinCellHeightDps defaults to twoPanelPortraitMinCellHeightDps,
|
||||
if not specified -->
|
||||
<!-- twoPanelLandscapeMinCellHeightDps defaults to minCellHeightDps, if not specified -->
|
||||
<attr name="twoPanelLandscapeMinCellHeightDps" format="float" />
|
||||
<!-- twoPanelLandscapeMinCellWidthDps defaults to twoPanelPortraitMinCellWidthDps,
|
||||
if not specified -->
|
||||
<!-- twoPanelLandscapeMinCellWidthDps defaults to minCellWidthDps, if not specified -->
|
||||
<attr name="twoPanelLandscapeMinCellWidthDps" format="float" />
|
||||
|
||||
<!-- These border spaces are only used if GridDisplayOption#isScalable is true -->
|
||||
@@ -217,15 +215,20 @@
|
||||
if not specified -->
|
||||
<attr name="twoPanelLandscapeBorderSpaceVerticalDps" format="float" />
|
||||
|
||||
|
||||
<!-- allAppsCellSpacingDps defaults to borderSpaceDps, if not specified -->
|
||||
<attr name="allAppsCellSpacingDps" format="float" />
|
||||
<!-- The following values are only enabled if grid is supported. -->
|
||||
<!-- allAppsIconSize defaults to iconSize, if not specified -->
|
||||
<attr name="allAppsIconSize" format="float" />
|
||||
<!-- allAppsIconTextSize defaults to iconTextSize, if not specified -->
|
||||
<attr name="allAppsIconTextSize" format="float" />
|
||||
|
||||
<attr name="iconImageSize" format="float" />
|
||||
<!-- landscapeIconSize defaults to iconImageSize, if not specified -->
|
||||
<attr name="landscapeIconSize" format="float" />
|
||||
<!-- twoPanelPortraitIconSize defaults to iconImageSize, if not specified -->
|
||||
<attr name="twoPanelPortraitIconSize" format="float" />
|
||||
<!-- twoPanelLandscapeIconSize defaults to landscapeIconSize, if not specified -->
|
||||
<!-- twoPanelLandscapeIconSize defaults to iconImageSize, if not specified -->
|
||||
<attr name="twoPanelLandscapeIconSize" format="float" />
|
||||
|
||||
<attr name="iconTextSize" format="float" />
|
||||
@@ -233,7 +236,7 @@
|
||||
<attr name="landscapeIconTextSize" format="float" />
|
||||
<!-- twoPanelPortraitIconTextSize defaults to iconTextSize, if not specified -->
|
||||
<attr name="twoPanelPortraitIconTextSize" format="float" />
|
||||
<!-- twoPanelLandscapeIconTextSize defaults to landscapeIconTextSize, if not specified -->
|
||||
<!-- twoPanelLandscapeIconTextSize defaults to iconTextSize, if not specified -->
|
||||
<attr name="twoPanelLandscapeIconTextSize" format="float" />
|
||||
|
||||
<!-- If set, this display option is used to determine the default grid -->
|
||||
@@ -242,12 +245,6 @@
|
||||
<flag name="split_display" value="0x2" />
|
||||
</attr>
|
||||
|
||||
<!-- The following values are only enabled if grid is supported. -->
|
||||
<!-- allAppsIconSize defaults to iconSize, if not specified -->
|
||||
<attr name="allAppsIconSize" format="float" />
|
||||
<!-- allAppsIconTextSize defaults to iconTextSize, if not specified -->
|
||||
<attr name="allAppsIconTextSize" format="float" />
|
||||
|
||||
<!-- Margin on left and right of the workspace when GridDisplayOption#isScalable is true -->
|
||||
<attr name="horizontalMargin" format="float"/>
|
||||
<!-- twoPanelLandscapeHorizontalMargin defaults to horizontalMargin if not specified -->
|
||||
|
||||
@@ -80,6 +80,7 @@ public class DeviceProfile {
|
||||
public final float aspectRatio;
|
||||
|
||||
public final boolean isScalableGrid;
|
||||
private final int mTypeIndex;
|
||||
|
||||
/**
|
||||
* The maximum amount of left/right workspace padding as a percentage of the screen width.
|
||||
@@ -169,7 +170,7 @@ public class DeviceProfile {
|
||||
public int qsbBottomMarginPx;
|
||||
|
||||
// All apps
|
||||
public int allAppsCellSpacingPx;
|
||||
public Point allAppsCellSpacePx;
|
||||
public int allAppsOpenVerticalTranslate;
|
||||
public int allAppsCellHeightPx;
|
||||
public int allAppsCellWidthPx;
|
||||
@@ -262,6 +263,20 @@ public class DeviceProfile {
|
||||
mMetrics = context.getResources().getDisplayMetrics();
|
||||
final Resources res = context.getResources();
|
||||
|
||||
if (isTwoPanels) {
|
||||
if (isLandscape) {
|
||||
mTypeIndex = InvariantDeviceProfile.INDEX_TWO_PANEL_LANDSCAPE;
|
||||
} else {
|
||||
mTypeIndex = InvariantDeviceProfile.INDEX_TWO_PANEL_PORTRAIT;
|
||||
}
|
||||
} else {
|
||||
if (isLandscape) {
|
||||
mTypeIndex = InvariantDeviceProfile.INDEX_LANDSCAPE;
|
||||
} else {
|
||||
mTypeIndex = InvariantDeviceProfile.INDEX_DEFAULT;
|
||||
}
|
||||
}
|
||||
|
||||
hotseatQsbHeight = res.getDimensionPixelSize(R.dimen.qsb_widget_height);
|
||||
isTaskbarPresent = isTablet && ApiWrapper.TASKBAR_DRAWN_IN_PROCESS
|
||||
&& FeatureFlags.ENABLE_TASKBAR.get();
|
||||
@@ -283,7 +298,9 @@ public class DeviceProfile {
|
||||
folderContentPaddingTop = res.getDimensionPixelSize(R.dimen.folder_content_padding_top);
|
||||
|
||||
cellLayoutBorderSpacePx = getCellLayoutBorderSpace(inv);
|
||||
allAppsCellSpacingPx = pxFromDp(inv.allAppsCellSpacing, mMetrics, 1f);
|
||||
allAppsCellSpacePx = new Point(
|
||||
pxFromDp(inv.borderSpaces[InvariantDeviceProfile.INDEX_ALL_APPS].x, mMetrics, 1f),
|
||||
pxFromDp(inv.borderSpaces[InvariantDeviceProfile.INDEX_ALL_APPS].y, mMetrics, 1f));
|
||||
cellLayoutBorderSpaceOriginalPx = new Point(cellLayoutBorderSpacePx);
|
||||
folderCellLayoutBorderSpaceOriginalPx = pxFromDp(inv.folderBorderSpace, mMetrics, 1f);
|
||||
folderCellLayoutBorderSpacePx = new Point(folderCellLayoutBorderSpaceOriginalPx,
|
||||
@@ -339,7 +356,8 @@ public class DeviceProfile {
|
||||
hotseatBarSidePaddingStartPx = isVerticalBarLayout() ? workspacePageIndicatorHeight : 0;
|
||||
hotseatExtraVerticalSize =
|
||||
res.getDimensionPixelSize(R.dimen.dynamic_grid_hotseat_extra_vertical_size);
|
||||
updateHotseatIconSize(pxFromDp(inv.iconSize, mMetrics, 1f));
|
||||
updateHotseatIconSize(
|
||||
pxFromDp(inv.iconSize[InvariantDeviceProfile.INDEX_DEFAULT], mMetrics, 1f));
|
||||
|
||||
qsbBottomMarginOriginalPx = isScalableGrid
|
||||
? res.getDimensionPixelSize(R.dimen.scalable_grid_qsb_bottom_margin)
|
||||
@@ -451,22 +469,9 @@ public class DeviceProfile {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int horizontalMarginPx;
|
||||
|
||||
if (isScalableGrid) {
|
||||
if (isTwoPanels) {
|
||||
if (isLandscape) {
|
||||
horizontalMarginPx = pxFromDp(idp.twoPanelLandscapeHorizontalMargin, mMetrics);
|
||||
} else {
|
||||
horizontalMarginPx = pxFromDp(idp.twoPanelPortraitHorizontalMargin, mMetrics);
|
||||
}
|
||||
} else {
|
||||
horizontalMarginPx = pxFromDp(idp.horizontalMargin, mMetrics);
|
||||
}
|
||||
} else {
|
||||
horizontalMarginPx = res.getDimensionPixelSize(R.dimen.dynamic_grid_left_right_margin);
|
||||
}
|
||||
return horizontalMarginPx;
|
||||
return isScalableGrid
|
||||
? pxFromDp(idp.horizontalMargin[mTypeIndex], mMetrics)
|
||||
: res.getDimensionPixelSize(R.dimen.dynamic_grid_left_right_margin);
|
||||
}
|
||||
|
||||
private void updateHotseatIconSize(int hotseatIconSizePx) {
|
||||
@@ -487,21 +492,8 @@ public class DeviceProfile {
|
||||
return new Point(0, 0);
|
||||
}
|
||||
|
||||
int horizontalSpacePx;
|
||||
int verticalSpacePx;
|
||||
|
||||
if (isTwoPanels) {
|
||||
if (isLandscape) {
|
||||
horizontalSpacePx = pxFromDp(idp.twoPanelLandscapeBorderSpace.x, mMetrics);
|
||||
verticalSpacePx = pxFromDp(idp.twoPanelLandscapeBorderSpace.y, mMetrics);
|
||||
} else {
|
||||
horizontalSpacePx = pxFromDp(idp.twoPanelPortraitBorderSpace.x, mMetrics);
|
||||
verticalSpacePx = pxFromDp(idp.twoPanelPortraitBorderSpace.y, mMetrics);
|
||||
}
|
||||
} else {
|
||||
horizontalSpacePx = pxFromDp(idp.borderSpace.x, mMetrics);
|
||||
verticalSpacePx = pxFromDp(idp.borderSpace.y, mMetrics);
|
||||
}
|
||||
int horizontalSpacePx = pxFromDp(idp.borderSpaces[mTypeIndex].x, mMetrics);
|
||||
int verticalSpacePx = pxFromDp(idp.borderSpaces[mTypeIndex].y, mMetrics);
|
||||
|
||||
return new Point(horizontalSpacePx, verticalSpacePx);
|
||||
}
|
||||
@@ -598,7 +590,7 @@ public class DeviceProfile {
|
||||
private void updateAllAppsWidth() {
|
||||
if (isTwoPanels) {
|
||||
int usedWidth = (allAppsCellWidthPx * numShownAllAppsColumns)
|
||||
+ (allAppsCellSpacingPx * (numShownAllAppsColumns + 1));
|
||||
+ (allAppsCellSpacePx.x * (numShownAllAppsColumns + 1));
|
||||
allAppsLeftRightPadding = Math.max(1, (availableWidthPx - usedWidth) / 2);
|
||||
} else {
|
||||
allAppsLeftRightPadding =
|
||||
@@ -661,26 +653,8 @@ public class DeviceProfile {
|
||||
|
||||
// Workspace
|
||||
final boolean isVerticalLayout = isVerticalBarLayout();
|
||||
float invIconSizeDp;
|
||||
float invIconTextSizeSp;
|
||||
|
||||
if (isTwoPanels) {
|
||||
if (isLandscape) {
|
||||
invIconSizeDp = inv.twoPanelLandscapeIconSize;
|
||||
invIconTextSizeSp = inv.twoPanelLandscapeIconTextSize;
|
||||
} else {
|
||||
invIconSizeDp = inv.twoPanelPortraitIconSize;
|
||||
invIconTextSizeSp = inv.twoPanelPortraitIconTextSize;
|
||||
}
|
||||
} else {
|
||||
if (isLandscape) {
|
||||
invIconSizeDp = inv.landscapeIconSize;
|
||||
invIconTextSizeSp = inv.landscapeIconTextSize;
|
||||
} else {
|
||||
invIconSizeDp = inv.iconSize;
|
||||
invIconTextSizeSp = inv.iconTextSize;
|
||||
}
|
||||
}
|
||||
float invIconSizeDp = inv.iconSize[mTypeIndex];
|
||||
float invIconTextSizeSp = inv.iconTextSize[mTypeIndex];
|
||||
|
||||
iconSizePx = Math.max(1, pxFromDp(invIconSizeDp, mMetrics, iconScale));
|
||||
iconTextSizePx = (int) (pxFromSp(invIconTextSizeSp, mMetrics) * iconScale);
|
||||
@@ -689,9 +663,8 @@ public class DeviceProfile {
|
||||
cellLayoutBorderSpacePx = getCellLayoutBorderSpaceScaled(inv, scale);
|
||||
|
||||
if (isScalableGrid) {
|
||||
PointF minCellHeightAndWidth = getMinCellHeightAndWidth();
|
||||
cellWidthPx = pxFromDp(minCellHeightAndWidth.x, mMetrics, scale);
|
||||
cellHeightPx = pxFromDp(minCellHeightAndWidth.y, mMetrics, scale);
|
||||
cellWidthPx = pxFromDp(inv.minCellSize[mTypeIndex].x, mMetrics, scale);
|
||||
cellHeightPx = pxFromDp(inv.minCellSize[mTypeIndex].y, mMetrics, scale);
|
||||
int cellContentHeight = iconSizePx + iconDrawablePaddingPx
|
||||
+ Utilities.calculateTextHeight(iconTextSizePx);
|
||||
cellYPaddingPx = Math.max(0, cellHeightPx - cellContentHeight) / 2;
|
||||
@@ -715,8 +688,10 @@ public class DeviceProfile {
|
||||
|
||||
// All apps
|
||||
if (numShownAllAppsColumns != inv.numColumns) {
|
||||
allAppsIconSizePx = pxFromDp(inv.allAppsIconSize, mMetrics);
|
||||
allAppsIconTextSizePx = pxFromSp(inv.allAppsIconTextSize, mMetrics);
|
||||
allAppsIconSizePx =
|
||||
pxFromDp(inv.iconSize[InvariantDeviceProfile.INDEX_ALL_APPS], mMetrics);
|
||||
allAppsIconTextSizePx =
|
||||
pxFromSp(inv.iconTextSize[InvariantDeviceProfile.INDEX_ALL_APPS], mMetrics);
|
||||
allAppsIconDrawablePaddingPx = iconDrawablePaddingOriginalPx;
|
||||
autoResizeAllAppsCells();
|
||||
} else {
|
||||
@@ -752,28 +727,6 @@ public class DeviceProfile {
|
||||
folderIconOffsetYPx = (iconSizePx - folderIconSizePx) / 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the minimum cell height and width as a pair.
|
||||
*/
|
||||
private PointF getMinCellHeightAndWidth() {
|
||||
PointF result = new PointF();
|
||||
|
||||
if (isTwoPanels) {
|
||||
if (isLandscape) {
|
||||
result.x = inv.twoPanelLandscapeMinCellWidthDps;
|
||||
result.y = inv.twoPanelLandscapeMinCellHeightDps;
|
||||
} else {
|
||||
result.x = inv.twoPanelPortraitMinCellWidthDps;
|
||||
result.y = inv.twoPanelPortraitMinCellHeightDps;
|
||||
}
|
||||
} else {
|
||||
result.x = inv.minCellWidth;
|
||||
result.y = inv.minCellHeight;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private void updateAvailableFolderCellDimensions(Resources res) {
|
||||
updateFolderCellSize(1f, res);
|
||||
|
||||
@@ -804,9 +757,12 @@ public class DeviceProfile {
|
||||
}
|
||||
|
||||
private void updateFolderCellSize(float scale, Resources res) {
|
||||
float invIconSizeDp = isVerticalBarLayout() ? inv.landscapeIconSize : inv.iconSize;
|
||||
float invIconSizeDp = isVerticalBarLayout()
|
||||
? inv.iconSize[InvariantDeviceProfile.INDEX_LANDSCAPE]
|
||||
: inv.iconSize[InvariantDeviceProfile.INDEX_DEFAULT];
|
||||
folderChildIconSizePx = Math.max(1, pxFromDp(invIconSizeDp, mMetrics, scale));
|
||||
folderChildTextSizePx = pxFromSp(inv.iconTextSize, mMetrics, scale);
|
||||
folderChildTextSizePx =
|
||||
pxFromSp(inv.iconTextSize[InvariantDeviceProfile.INDEX_DEFAULT], mMetrics, scale);
|
||||
folderLabelTextSizePx = (int) (folderChildTextSizePx * folderLabelTextScale);
|
||||
|
||||
int textHeight = Utilities.calculateTextHeight(folderChildTextSizePx);
|
||||
@@ -901,7 +857,7 @@ public class DeviceProfile {
|
||||
+ workspaceBottomPadding - mWorkspacePageIndicatorOverlapWorkspace;
|
||||
|
||||
padding.set(desiredWorkspaceHorizontalMarginPx,
|
||||
(isScalableGrid ? workspaceTopPadding : edgeMarginPx),
|
||||
workspaceTopPadding + (isScalableGrid ? 0 : edgeMarginPx),
|
||||
desiredWorkspaceHorizontalMarginPx,
|
||||
paddingBottom);
|
||||
}
|
||||
@@ -1094,19 +1050,10 @@ public class DeviceProfile {
|
||||
|
||||
writer.println(prefix + "\tisScalableGrid:" + isScalableGrid);
|
||||
|
||||
writer.println(prefix + "\tinv.minCellWidth:" + inv.minCellWidth + "dp");
|
||||
writer.println(prefix + "\tinv.minCellHeight:" + inv.minCellHeight + "dp");
|
||||
writer.println(prefix + "\tinv.twoPanelPortraitMinCellHeightDps:"
|
||||
+ inv.twoPanelPortraitMinCellHeightDps + "dp");
|
||||
writer.println(prefix + "\tinv.twoPanelPortraitMinCellWidthDps:"
|
||||
+ inv.twoPanelPortraitMinCellWidthDps + "dp");
|
||||
writer.println(prefix + "\tinv.twoPanelLandscapeMinCellHeightDps:"
|
||||
+ inv.twoPanelLandscapeMinCellHeightDps + "dp");
|
||||
writer.println(prefix + "\tinv.twoPanelLandscapeMinCellWidthDps:"
|
||||
+ inv.twoPanelLandscapeMinCellWidthDps + "dp");
|
||||
writer.println(prefix + "\tinv.numColumns: " + inv.numColumns);
|
||||
writer.println(prefix + "\tinv.numRows: " + inv.numRows);
|
||||
|
||||
writer.println(prefix + "\tinv.numColumns:" + inv.numColumns);
|
||||
writer.println(prefix + "\tinv.numRows:" + inv.numRows);
|
||||
writer.println(prefix + "\tminCellSize: " + inv.minCellSize[mTypeIndex] + "dp");
|
||||
|
||||
writer.println(prefix + pxToDpStr("cellWidthPx", cellWidthPx));
|
||||
writer.println(prefix + pxToDpStr("cellHeightPx", cellHeightPx));
|
||||
@@ -1114,7 +1061,11 @@ public class DeviceProfile {
|
||||
writer.println(prefix + pxToDpStr("getCellSize().x", getCellSize().x));
|
||||
writer.println(prefix + pxToDpStr("getCellSize().y", getCellSize().y));
|
||||
|
||||
writer.println(prefix + "\tinv.iconSize:" + inv.iconSize + "dp");
|
||||
writer.println(prefix + pxToDpStr("cellLayoutBorderSpacePx Horizontal",
|
||||
cellLayoutBorderSpacePx.x));
|
||||
writer.println(prefix + pxToDpStr("cellLayoutBorderSpacePx Vertical",
|
||||
cellLayoutBorderSpacePx.y));
|
||||
|
||||
writer.println(prefix + pxToDpStr("iconSizePx", iconSizePx));
|
||||
writer.println(prefix + pxToDpStr("iconTextSizePx", iconTextSizePx));
|
||||
writer.println(prefix + pxToDpStr("iconDrawablePaddingPx", iconDrawablePaddingPx));
|
||||
@@ -1132,14 +1083,6 @@ public class DeviceProfile {
|
||||
writer.println(prefix + pxToDpStr("folderCellLayoutBorderSpacePx Vertical",
|
||||
folderCellLayoutBorderSpacePx.y));
|
||||
|
||||
writer.println(prefix + pxToDpStr("cellLayoutBorderSpacePx Horizontal",
|
||||
cellLayoutBorderSpacePx.x));
|
||||
writer.println(prefix + pxToDpStr("cellLayoutBorderSpacePx Vertical",
|
||||
cellLayoutBorderSpacePx.y));
|
||||
|
||||
writer.println(prefix + pxToDpStr("desiredWorkspaceHorizontalMarginPx",
|
||||
desiredWorkspaceHorizontalMarginPx));
|
||||
|
||||
writer.println(prefix + pxToDpStr("allAppsIconSizePx", allAppsIconSizePx));
|
||||
writer.println(prefix + pxToDpStr("allAppsIconTextSizePx", allAppsIconTextSizePx));
|
||||
writer.println(prefix + pxToDpStr("allAppsIconDrawablePaddingPx",
|
||||
@@ -1161,6 +1104,8 @@ public class DeviceProfile {
|
||||
writer.println(prefix + "\tisTaskbarPresentInApps:" + isTaskbarPresentInApps);
|
||||
writer.println(prefix + pxToDpStr("taskbarSize", taskbarSize));
|
||||
|
||||
writer.println(prefix + pxToDpStr("desiredWorkspaceHorizontalMarginPx",
|
||||
desiredWorkspaceHorizontalMarginPx));
|
||||
writer.println(prefix + pxToDpStr("workspacePadding.left", workspacePadding.left));
|
||||
writer.println(prefix + pxToDpStr("workspacePadding.top", workspacePadding.top));
|
||||
writer.println(prefix + pxToDpStr("workspacePadding.right", workspacePadding.right));
|
||||
|
||||
@@ -86,6 +86,15 @@ public class InvariantDeviceProfile {
|
||||
// used to offset float not being able to express extremely small weights in extreme cases.
|
||||
private static final float WEIGHT_EFFICIENT = 100000f;
|
||||
|
||||
// Used for arrays to specify different sizes (e.g. border spaces, width/height) in different
|
||||
// constraints
|
||||
static final int COUNT_SIZES = 5;
|
||||
static final int INDEX_DEFAULT = 0;
|
||||
static final int INDEX_LANDSCAPE = 1;
|
||||
static final int INDEX_TWO_PANEL_PORTRAIT = 2;
|
||||
static final int INDEX_TWO_PANEL_LANDSCAPE = 3;
|
||||
static final int INDEX_ALL_APPS = 4;
|
||||
|
||||
/**
|
||||
* Number of icons per row and column in the workspace.
|
||||
*/
|
||||
@@ -97,36 +106,18 @@ public class InvariantDeviceProfile {
|
||||
*/
|
||||
public int numFolderRows;
|
||||
public int numFolderColumns;
|
||||
public float iconSize;
|
||||
public float landscapeIconSize;
|
||||
public float twoPanelPortraitIconSize;
|
||||
public float twoPanelLandscapeIconSize;
|
||||
public float landscapeIconTextSize;
|
||||
public float twoPanelPortraitIconTextSize;
|
||||
public float twoPanelLandscapeIconTextSize;
|
||||
public float[] iconSize;
|
||||
public float[] iconTextSize;
|
||||
public int iconBitmapSize;
|
||||
public int fillResIconDpi;
|
||||
public float iconTextSize;
|
||||
public float allAppsIconSize;
|
||||
public float allAppsIconTextSize;
|
||||
public float allAppsCellSpacing;
|
||||
public boolean isSplitDisplay;
|
||||
|
||||
public float minCellHeight;
|
||||
public float minCellWidth;
|
||||
public float twoPanelPortraitMinCellHeightDps;
|
||||
public float twoPanelPortraitMinCellWidthDps;
|
||||
public float twoPanelLandscapeMinCellHeightDps;
|
||||
public float twoPanelLandscapeMinCellWidthDps;
|
||||
public PointF[] minCellSize;
|
||||
|
||||
public PointF borderSpace;
|
||||
public PointF twoPanelPortraitBorderSpace;
|
||||
public PointF twoPanelLandscapeBorderSpace;
|
||||
public PointF[] borderSpaces;
|
||||
public float folderBorderSpace;
|
||||
|
||||
public float horizontalMargin;
|
||||
public float twoPanelLandscapeHorizontalMargin;
|
||||
public float twoPanelPortraitHorizontalMargin;
|
||||
public float[] horizontalMargin;
|
||||
|
||||
private SparseArray<TypedValue> mExtraAttrs;
|
||||
|
||||
@@ -221,17 +212,17 @@ public class InvariantDeviceProfile {
|
||||
|
||||
DisplayOption result = new DisplayOption(defaultDisplayOption.grid)
|
||||
.add(myDisplayOption);
|
||||
result.iconSizes[DisplayOption.INDEX_DEFAULT] =
|
||||
defaultDisplayOption.iconSizes[DisplayOption.INDEX_DEFAULT];
|
||||
for (int i = 1; i < DisplayOption.COUNT_SIZES; i++) {
|
||||
result.iconSizes[INDEX_DEFAULT] =
|
||||
defaultDisplayOption.iconSizes[INDEX_DEFAULT];
|
||||
for (int i = 1; i < COUNT_SIZES; i++) {
|
||||
result.iconSizes[i] = Math.min(
|
||||
defaultDisplayOption.iconSizes[i], myDisplayOption.iconSizes[i]);
|
||||
}
|
||||
|
||||
result.minCellHeight = defaultDisplayOption.minCellHeight;
|
||||
result.minCellWidth = defaultDisplayOption.minCellWidth;
|
||||
result.borderSpaces[DisplayOption.INDEX_ALL_APPS] =
|
||||
defaultDisplayOption.borderSpaces[DisplayOption.INDEX_ALL_APPS];
|
||||
System.arraycopy(defaultDisplayOption.minCellSize, 0, result.minCellSize, 0,
|
||||
COUNT_SIZES);
|
||||
System.arraycopy(defaultDisplayOption.borderSpaces, 0, result.borderSpaces, 0,
|
||||
COUNT_SIZES);
|
||||
|
||||
initGrid(context, myInfo, result, false);
|
||||
}
|
||||
@@ -274,39 +265,18 @@ public class InvariantDeviceProfile {
|
||||
|
||||
mExtraAttrs = closestProfile.extraAttrs;
|
||||
|
||||
iconSize = displayOption.iconSizes[DisplayOption.INDEX_DEFAULT];
|
||||
landscapeIconSize = displayOption.iconSizes[DisplayOption.INDEX_LANDSCAPE];
|
||||
twoPanelPortraitIconSize = displayOption.iconSizes[DisplayOption.INDEX_TWO_PANEL_PORTRAIT];
|
||||
twoPanelLandscapeIconSize =
|
||||
displayOption.iconSizes[DisplayOption.INDEX_TWO_PANEL_LANDSCAPE];
|
||||
iconBitmapSize = ResourceUtils.pxFromDp(iconSize, metrics);
|
||||
iconSize = displayOption.iconSizes;
|
||||
iconBitmapSize = ResourceUtils.pxFromDp(iconSize[INDEX_DEFAULT], metrics);
|
||||
fillResIconDpi = getLauncherIconDensity(iconBitmapSize);
|
||||
|
||||
iconTextSize = displayOption.textSizes[DisplayOption.INDEX_DEFAULT];
|
||||
landscapeIconTextSize = displayOption.textSizes[DisplayOption.INDEX_LANDSCAPE];
|
||||
twoPanelPortraitIconTextSize =
|
||||
displayOption.textSizes[DisplayOption.INDEX_TWO_PANEL_PORTRAIT];
|
||||
twoPanelLandscapeIconTextSize =
|
||||
displayOption.textSizes[DisplayOption.INDEX_TWO_PANEL_LANDSCAPE];
|
||||
iconTextSize = displayOption.textSizes;
|
||||
|
||||
minCellHeight = displayOption.minCellHeight;
|
||||
minCellWidth = displayOption.minCellWidth;
|
||||
twoPanelPortraitMinCellHeightDps = displayOption.twoPanelPortraitMinCellHeightDps;
|
||||
twoPanelPortraitMinCellWidthDps = displayOption.twoPanelPortraitMinCellWidthDps;
|
||||
twoPanelLandscapeMinCellHeightDps = displayOption.twoPanelLandscapeMinCellHeightDps;
|
||||
twoPanelLandscapeMinCellWidthDps = displayOption.twoPanelLandscapeMinCellWidthDps;
|
||||
minCellSize = displayOption.minCellSize;
|
||||
|
||||
borderSpace = displayOption.borderSpaces[DisplayOption.INDEX_DEFAULT];
|
||||
twoPanelPortraitBorderSpace =
|
||||
displayOption.borderSpaces[DisplayOption.INDEX_TWO_PANEL_PORTRAIT];
|
||||
twoPanelLandscapeBorderSpace =
|
||||
displayOption.borderSpaces[DisplayOption.INDEX_TWO_PANEL_LANDSCAPE];
|
||||
allAppsCellSpacing = displayOption.borderSpaces[DisplayOption.INDEX_ALL_APPS].x;
|
||||
borderSpaces = displayOption.borderSpaces;
|
||||
folderBorderSpace = displayOption.folderBorderSpace;
|
||||
|
||||
horizontalMargin = displayOption.horizontalMargin;
|
||||
twoPanelLandscapeHorizontalMargin = displayOption.twoPanelLandscapeHorizontalMargin;
|
||||
twoPanelPortraitHorizontalMargin = displayOption.twoPanelPortraitHorizontalMargin;
|
||||
|
||||
numShownHotseatIcons = closestProfile.numHotseatIcons;
|
||||
numDatabaseHotseatIcons = isSplitDisplay
|
||||
@@ -316,12 +286,9 @@ public class InvariantDeviceProfile {
|
||||
numDatabaseAllAppsColumns = isSplitDisplay
|
||||
? closestProfile.numDatabaseAllAppsColumns : closestProfile.numAllAppsColumns;
|
||||
|
||||
if (Utilities.isGridOptionsEnabled(context)) {
|
||||
allAppsIconSize = displayOption.iconSizes[DisplayOption.INDEX_ALL_APPS];
|
||||
allAppsIconTextSize = displayOption.textSizes[DisplayOption.INDEX_ALL_APPS];
|
||||
} else {
|
||||
allAppsIconSize = iconSize;
|
||||
allAppsIconTextSize = iconTextSize;
|
||||
if (!Utilities.isGridOptionsEnabled(context)) {
|
||||
iconSize[INDEX_ALL_APPS] = iconSize[INDEX_DEFAULT];
|
||||
iconTextSize[INDEX_ALL_APPS] = iconTextSize[INDEX_DEFAULT];
|
||||
}
|
||||
|
||||
if (devicePaddingId != 0) {
|
||||
@@ -566,11 +533,11 @@ public class InvariantDeviceProfile {
|
||||
|
||||
// Since the bitmaps are persisted, ensure that the default bitmap size is same as
|
||||
// predefined size to avoid cache invalidation
|
||||
out.iconSizes[DisplayOption.INDEX_DEFAULT] =
|
||||
closestPoint.iconSizes[DisplayOption.INDEX_DEFAULT];
|
||||
for (int i = DisplayOption.INDEX_DEFAULT + 1; i < DisplayOption.COUNT_SIZES; i++) {
|
||||
out.iconSizes[INDEX_DEFAULT] =
|
||||
closestPoint.iconSizes[INDEX_DEFAULT];
|
||||
for (int i = INDEX_DEFAULT + 1; i < COUNT_SIZES; i++) {
|
||||
out.iconSizes[i] = Math.min(out.iconSizes[i],
|
||||
out.iconSizes[DisplayOption.INDEX_DEFAULT]);
|
||||
out.iconSizes[INDEX_DEFAULT]);
|
||||
}
|
||||
|
||||
return out;
|
||||
@@ -724,32 +691,17 @@ public class InvariantDeviceProfile {
|
||||
@VisibleForTesting
|
||||
static final class DisplayOption {
|
||||
|
||||
static final int COUNT_SIZES = 5;
|
||||
static final int INDEX_DEFAULT = 0;
|
||||
static final int INDEX_LANDSCAPE = 1;
|
||||
static final int INDEX_TWO_PANEL_PORTRAIT = 2;
|
||||
static final int INDEX_TWO_PANEL_LANDSCAPE = 3;
|
||||
static final int INDEX_ALL_APPS = 4;
|
||||
|
||||
public final GridOption grid;
|
||||
|
||||
private final float minWidthDps;
|
||||
private final float minHeightDps;
|
||||
private final boolean canBeDefault;
|
||||
|
||||
private float minCellHeight;
|
||||
private float minCellWidth;
|
||||
private float twoPanelPortraitMinCellHeightDps;
|
||||
private float twoPanelPortraitMinCellWidthDps;
|
||||
private float twoPanelLandscapeMinCellHeightDps;
|
||||
private float twoPanelLandscapeMinCellWidthDps;
|
||||
private final PointF[] minCellSize = new PointF[COUNT_SIZES];
|
||||
|
||||
private float folderBorderSpace;
|
||||
private final PointF[] borderSpaces = new PointF[COUNT_SIZES];
|
||||
|
||||
private float horizontalMargin;
|
||||
private float twoPanelLandscapeHorizontalMargin;
|
||||
private float twoPanelPortraitHorizontalMargin;
|
||||
private final float[] horizontalMargin = new float[COUNT_SIZES];
|
||||
|
||||
private final float[] iconSizes = new float[COUNT_SIZES];
|
||||
private final float[] textSizes = new float[COUNT_SIZES];
|
||||
@@ -766,27 +718,32 @@ public class InvariantDeviceProfile {
|
||||
canBeDefault = a.getInt(R.styleable.ProfileDisplayOption_canBeDefault, 0)
|
||||
== defaultFlagValue;
|
||||
|
||||
minCellHeight = a.getFloat(R.styleable.ProfileDisplayOption_minCellHeightDps, 0);
|
||||
minCellWidth = a.getFloat(R.styleable.ProfileDisplayOption_minCellWidthDps, 0);
|
||||
twoPanelPortraitMinCellHeightDps = a.getFloat(
|
||||
R.styleable.ProfileDisplayOption_twoPanelPortraitMinCellHeightDps,
|
||||
minCellHeight);
|
||||
twoPanelPortraitMinCellWidthDps = a.getFloat(
|
||||
R.styleable.ProfileDisplayOption_twoPanelPortraitMinCellWidthDps, minCellWidth);
|
||||
twoPanelLandscapeMinCellHeightDps = a.getFloat(
|
||||
R.styleable.ProfileDisplayOption_twoPanelLandscapeMinCellHeightDps,
|
||||
twoPanelPortraitMinCellHeightDps);
|
||||
twoPanelLandscapeMinCellWidthDps = a.getFloat(
|
||||
R.styleable.ProfileDisplayOption_twoPanelLandscapeMinCellWidthDps,
|
||||
twoPanelPortraitMinCellWidthDps);
|
||||
float x;
|
||||
float y;
|
||||
|
||||
x = a.getFloat(R.styleable.ProfileDisplayOption_minCellWidthDps, 0);
|
||||
y = a.getFloat(R.styleable.ProfileDisplayOption_minCellHeightDps, 0);
|
||||
minCellSize[INDEX_DEFAULT] = new PointF(x, y);
|
||||
minCellSize[INDEX_LANDSCAPE] = new PointF(x, y);
|
||||
minCellSize[INDEX_ALL_APPS] = new PointF(x, y);
|
||||
|
||||
x = a.getFloat(R.styleable.ProfileDisplayOption_twoPanelPortraitMinCellWidthDps,
|
||||
minCellSize[INDEX_DEFAULT].x);
|
||||
y = a.getFloat(R.styleable.ProfileDisplayOption_twoPanelPortraitMinCellHeightDps,
|
||||
minCellSize[INDEX_DEFAULT].y);
|
||||
minCellSize[INDEX_TWO_PANEL_PORTRAIT] = new PointF(x, y);
|
||||
|
||||
x = a.getFloat(R.styleable.ProfileDisplayOption_twoPanelLandscapeMinCellWidthDps,
|
||||
minCellSize[INDEX_DEFAULT].x);
|
||||
y = a.getFloat(R.styleable.ProfileDisplayOption_twoPanelLandscapeMinCellHeightDps,
|
||||
minCellSize[INDEX_DEFAULT].y);
|
||||
minCellSize[INDEX_TWO_PANEL_LANDSCAPE] = new PointF(x, y);
|
||||
|
||||
float borderSpace = a.getFloat(R.styleable.ProfileDisplayOption_borderSpaceDps, 0);
|
||||
float twoPanelPortraitBorderSpaceDps = a.getFloat(
|
||||
R.styleable.ProfileDisplayOption_twoPanelPortraitBorderSpaceDps, borderSpace);
|
||||
float twoPanelLandscapeBorderSpaceDps = a.getFloat(
|
||||
R.styleable.ProfileDisplayOption_twoPanelLandscapeBorderSpaceDps, borderSpace);
|
||||
float x;
|
||||
float y;
|
||||
|
||||
x = a.getFloat(R.styleable.ProfileDisplayOption_borderSpaceHorizontalDps, borderSpace);
|
||||
y = a.getFloat(R.styleable.ProfileDisplayOption_borderSpaceVerticalDps, borderSpace);
|
||||
@@ -827,7 +784,7 @@ public class InvariantDeviceProfile {
|
||||
iconSizes[INDEX_DEFAULT]);
|
||||
iconSizes[INDEX_TWO_PANEL_LANDSCAPE] =
|
||||
a.getFloat(R.styleable.ProfileDisplayOption_twoPanelLandscapeIconSize,
|
||||
iconSizes[INDEX_LANDSCAPE]);
|
||||
iconSizes[INDEX_DEFAULT]);
|
||||
|
||||
textSizes[INDEX_DEFAULT] =
|
||||
a.getFloat(R.styleable.ProfileDisplayOption_iconTextSize, 0);
|
||||
@@ -842,15 +799,18 @@ public class InvariantDeviceProfile {
|
||||
textSizes[INDEX_DEFAULT]);
|
||||
textSizes[INDEX_TWO_PANEL_LANDSCAPE] =
|
||||
a.getFloat(R.styleable.ProfileDisplayOption_twoPanelLandscapeIconTextSize,
|
||||
textSizes[INDEX_LANDSCAPE]);
|
||||
textSizes[INDEX_DEFAULT]);
|
||||
|
||||
horizontalMargin = a.getFloat(R.styleable.ProfileDisplayOption_horizontalMargin, 0);
|
||||
twoPanelLandscapeHorizontalMargin = a.getFloat(
|
||||
horizontalMargin[INDEX_DEFAULT] = a.getFloat(
|
||||
R.styleable.ProfileDisplayOption_horizontalMargin, 0);
|
||||
horizontalMargin[INDEX_LANDSCAPE] = horizontalMargin[INDEX_DEFAULT];
|
||||
horizontalMargin[INDEX_ALL_APPS] = horizontalMargin[INDEX_DEFAULT];
|
||||
horizontalMargin[INDEX_TWO_PANEL_LANDSCAPE] = a.getFloat(
|
||||
R.styleable.ProfileDisplayOption_twoPanelLandscapeHorizontalMargin,
|
||||
horizontalMargin);
|
||||
twoPanelPortraitHorizontalMargin = a.getFloat(
|
||||
horizontalMargin[INDEX_DEFAULT]);
|
||||
horizontalMargin[INDEX_TWO_PANEL_PORTRAIT] = a.getFloat(
|
||||
R.styleable.ProfileDisplayOption_twoPanelPortraitHorizontalMargin,
|
||||
horizontalMargin);
|
||||
horizontalMargin[INDEX_DEFAULT]);
|
||||
|
||||
a.recycle();
|
||||
}
|
||||
@@ -864,12 +824,11 @@ public class InvariantDeviceProfile {
|
||||
minWidthDps = 0;
|
||||
minHeightDps = 0;
|
||||
canBeDefault = false;
|
||||
minCellHeight = 0;
|
||||
minCellWidth = 0;
|
||||
for (int i = 0; i < COUNT_SIZES; i++) {
|
||||
iconSizes[i] = 0;
|
||||
textSizes[i] = 0;
|
||||
borderSpaces[i] = new PointF();
|
||||
minCellSize[i] = new PointF();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -877,21 +836,15 @@ public class InvariantDeviceProfile {
|
||||
for (int i = 0; i < COUNT_SIZES; i++) {
|
||||
iconSizes[i] *= w;
|
||||
textSizes[i] *= w;
|
||||
borderSpaces[i].x *= w;
|
||||
borderSpaces[i].y *= w;
|
||||
borderSpaces[i].x *= w;
|
||||
borderSpaces[i].y *= w;
|
||||
minCellSize[i].x *= w;
|
||||
minCellSize[i].y *= w;
|
||||
horizontalMargin[i] *= w;
|
||||
}
|
||||
minCellHeight *= w;
|
||||
minCellWidth *= w;
|
||||
twoPanelPortraitMinCellHeightDps *= w;
|
||||
twoPanelPortraitMinCellWidthDps *= w;
|
||||
twoPanelLandscapeMinCellHeightDps *= w;
|
||||
twoPanelLandscapeMinCellWidthDps *= w;
|
||||
|
||||
folderBorderSpace *= w;
|
||||
|
||||
horizontalMargin *= w;
|
||||
twoPanelLandscapeHorizontalMargin *= w;
|
||||
twoPanelPortraitHorizontalMargin *= w;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -899,21 +852,15 @@ public class InvariantDeviceProfile {
|
||||
for (int i = 0; i < COUNT_SIZES; i++) {
|
||||
iconSizes[i] += p.iconSizes[i];
|
||||
textSizes[i] += p.textSizes[i];
|
||||
borderSpaces[i].x += p.borderSpaces[i].x;
|
||||
borderSpaces[i].y += p.borderSpaces[i].y;
|
||||
borderSpaces[i].x += p.borderSpaces[i].x;
|
||||
borderSpaces[i].y += p.borderSpaces[i].y;
|
||||
minCellSize[i].x += p.minCellSize[i].x;
|
||||
minCellSize[i].y += p.minCellSize[i].y;
|
||||
horizontalMargin[i] += p.horizontalMargin[i];
|
||||
}
|
||||
minCellHeight += p.minCellHeight;
|
||||
minCellWidth += p.minCellWidth;
|
||||
twoPanelPortraitMinCellHeightDps += p.twoPanelPortraitMinCellHeightDps;
|
||||
twoPanelPortraitMinCellWidthDps += p.twoPanelPortraitMinCellWidthDps;
|
||||
twoPanelLandscapeMinCellHeightDps += p.twoPanelLandscapeMinCellHeightDps;
|
||||
twoPanelLandscapeMinCellWidthDps += p.twoPanelLandscapeMinCellWidthDps;
|
||||
|
||||
folderBorderSpace += p.folderBorderSpace;
|
||||
|
||||
horizontalMargin += p.horizontalMargin;
|
||||
twoPanelLandscapeHorizontalMargin += p.twoPanelLandscapeHorizontalMargin;
|
||||
twoPanelPortraitHorizontalMargin += p.twoPanelPortraitHorizontalMargin;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,7 +142,7 @@ public class Partner {
|
||||
}
|
||||
|
||||
if (iconSize > 0) {
|
||||
inv.iconSize = iconSize;
|
||||
inv.iconSize[InvariantDeviceProfile.INDEX_DEFAULT] = iconSize;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user