Reset the size of hotseat cells

When resetting the hotseat layout, the size of cells also can be changed based on changes in DeviceProfile. In this case, the border size changes when rotating the device.

Fixes 216071526
Test: manual and HSV

Change-Id: Idf7b7972e7be347a991cad1cb8ee8cf95cbc4a87
This commit is contained in:
Thales Lima
2022-03-15 20:15:14 +00:00
parent 85978e7dc8
commit 8cd020bb1d
2 changed files with 36 additions and 17 deletions

View File

@@ -93,7 +93,7 @@ public class CellLayout extends ViewGroup {
private int mFixedCellWidth;
private int mFixedCellHeight;
@ViewDebug.ExportedProperty(category = "launcher")
private final Point mBorderSpace;
private Point mBorderSpace;
@ViewDebug.ExportedProperty(category = "launcher")
private int mCountX;
@@ -238,22 +238,7 @@ public class CellLayout extends ViewGroup {
mActivity = ActivityContext.lookupContext(context);
DeviceProfile deviceProfile = mActivity.getDeviceProfile();
switch (mContainerType) {
case FOLDER:
mBorderSpace = new Point(deviceProfile.folderCellLayoutBorderSpacePx);
break;
case HOTSEAT:
mBorderSpace = new Point(deviceProfile.hotseatBorderSpace,
deviceProfile.hotseatBorderSpace);
break;
case WORKSPACE:
default:
mBorderSpace = new Point(deviceProfile.cellLayoutBorderSpacePx);
break;
}
mCellWidth = mCellHeight = -1;
mFixedCellWidth = mFixedCellHeight = -1;
resetCellSizeInternal(deviceProfile);
mCountX = deviceProfile.inv.numColumns;
mCountY = deviceProfile.inv.numRows;
@@ -376,6 +361,12 @@ public class CellLayout extends ViewGroup {
return mShortcutsAndWidgets.getLayerType() == LAYER_TYPE_HARDWARE;
}
/**
* Change sizes of cells
*
* @param width the new width of the cells
* @param height the new height of the cells
*/
public void setCellDimensions(int width, int height) {
mFixedCellWidth = mCellWidth = width;
mFixedCellHeight = mCellHeight = height;
@@ -383,6 +374,33 @@ public class CellLayout extends ViewGroup {
mBorderSpace);
}
private void resetCellSizeInternal(DeviceProfile deviceProfile) {
switch (mContainerType) {
case FOLDER:
mBorderSpace = new Point(deviceProfile.folderCellLayoutBorderSpacePx);
break;
case HOTSEAT:
mBorderSpace = new Point(deviceProfile.hotseatBorderSpace,
deviceProfile.hotseatBorderSpace);
break;
case WORKSPACE:
default:
mBorderSpace = new Point(deviceProfile.cellLayoutBorderSpacePx);
break;
}
mCellWidth = mCellHeight = -1;
mFixedCellWidth = mFixedCellHeight = -1;
}
/**
* Reset the cell sizes and border space
*/
public void resetCellSize(DeviceProfile deviceProfile) {
resetCellSizeInternal(deviceProfile);
requestLayout();
}
public void setGridSize(int x, int y) {
mCountX = x;
mCountY = y;