mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-20 03:08:19 +00:00
Improving responsive grid xml parser
Refactors AllAppsSpecs, FolderSpecs and WorkspaceSpecs initialization to use the same code to parse the xml with different map function. This CL improves the readability of the code and remove code duplication. Fix: 286538013 Flag: ENABLE_RESPONSIVE_WORKSPACE Test: AllAppsSpecsTes Test: CalculatedAllAppsSpecTest Test: CalculatedFolderSpecsTest Test: CalculatedWorkspaceSpecTest Test: FolderSpecsTest Test: WorkspaceSpecsTest Test: DeviceProfileResponsiveDumpTest Test: DeviceProfileResponsiveAlternativeDisplaysDumpTest Change-Id: Iec5863619399efd2e80f3db46b75c4d785e1656f
This commit is contained in:
@@ -56,15 +56,15 @@ import com.android.launcher3.model.data.ItemInfo;
|
||||
import com.android.launcher3.responsive.AllAppsSpecs;
|
||||
import com.android.launcher3.responsive.CalculatedAllAppsSpec;
|
||||
import com.android.launcher3.responsive.CalculatedFolderSpec;
|
||||
import com.android.launcher3.responsive.CalculatedWorkspaceSpec;
|
||||
import com.android.launcher3.responsive.FolderSpecs;
|
||||
import com.android.launcher3.responsive.WorkspaceSpecs;
|
||||
import com.android.launcher3.uioverrides.ApiWrapper;
|
||||
import com.android.launcher3.util.DisplayController;
|
||||
import com.android.launcher3.util.DisplayController.Info;
|
||||
import com.android.launcher3.util.IconSizeSteps;
|
||||
import com.android.launcher3.util.ResourceHelper;
|
||||
import com.android.launcher3.util.WindowBounds;
|
||||
import com.android.launcher3.workspace.CalculatedWorkspaceSpec;
|
||||
import com.android.launcher3.workspace.WorkspaceSpecs;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Locale;
|
||||
@@ -115,13 +115,10 @@ public class DeviceProfile {
|
||||
|
||||
// Responsive grid
|
||||
private final boolean mIsResponsiveGrid;
|
||||
private WorkspaceSpecs mWorkspaceSpecs;
|
||||
private CalculatedWorkspaceSpec mResponsiveWidthSpec;
|
||||
private CalculatedWorkspaceSpec mResponsiveHeightSpec;
|
||||
private AllAppsSpecs mAllAppsSpecs;
|
||||
private CalculatedAllAppsSpec mAllAppsResponsiveWidthSpec;
|
||||
private CalculatedAllAppsSpec mAllAppsResponsiveHeightSpec;
|
||||
private FolderSpecs mFolderSpecs;
|
||||
private CalculatedFolderSpec mResponsiveFolderWidthSpec;
|
||||
private CalculatedFolderSpec mResponsiveFolderHeightSpec;
|
||||
|
||||
@@ -545,29 +542,31 @@ public class DeviceProfile {
|
||||
// Needs to be calculated after hotseatBarSizePx is correct,
|
||||
// for the available height to be correct
|
||||
if (mIsResponsiveGrid) {
|
||||
mWorkspaceSpecs = new WorkspaceSpecs(new ResourceHelper(context, inv.workspaceSpecsId));
|
||||
WorkspaceSpecs workspaceSpecs = WorkspaceSpecs.create(
|
||||
new ResourceHelper(context, inv.workspaceSpecsId));
|
||||
int availableResponsiveWidth =
|
||||
availableWidthPx - (isVerticalBarLayout() ? hotseatBarSizePx : 0);
|
||||
// don't use availableHeightPx because it subtracts bottom padding,
|
||||
// but the workspace go behind it
|
||||
int availableResponsiveHeight =
|
||||
heightPx - mInsets.top - (isVerticalBarLayout() ? 0 : hotseatBarSizePx);
|
||||
mResponsiveWidthSpec = mWorkspaceSpecs.getCalculatedWidthSpec(inv.numColumns,
|
||||
mResponsiveWidthSpec = workspaceSpecs.getCalculatedWidthSpec(inv.numColumns,
|
||||
availableResponsiveWidth);
|
||||
mResponsiveHeightSpec = mWorkspaceSpecs.getCalculatedHeightSpec(inv.numRows,
|
||||
mResponsiveHeightSpec = workspaceSpecs.getCalculatedHeightSpec(inv.numRows,
|
||||
availableResponsiveHeight);
|
||||
|
||||
mAllAppsSpecs = new AllAppsSpecs(new ResourceHelper(context, inv.allAppsSpecsId));
|
||||
mAllAppsResponsiveWidthSpec = mAllAppsSpecs.getCalculatedWidthSpec(inv.numColumns,
|
||||
AllAppsSpecs allAppsSpecs = AllAppsSpecs.create(
|
||||
new ResourceHelper(context, inv.allAppsSpecsId));
|
||||
mAllAppsResponsiveWidthSpec = allAppsSpecs.getCalculatedWidthSpec(inv.numColumns,
|
||||
mResponsiveWidthSpec.getAvailableSpace(), mResponsiveWidthSpec);
|
||||
mAllAppsResponsiveHeightSpec = mAllAppsSpecs.getCalculatedHeightSpec(inv.numRows,
|
||||
mResponsiveHeightSpec.getAvailableSpace(),
|
||||
mResponsiveHeightSpec);
|
||||
mAllAppsResponsiveHeightSpec = allAppsSpecs.getCalculatedHeightSpec(inv.numRows,
|
||||
mResponsiveHeightSpec.getAvailableSpace(), mResponsiveHeightSpec);
|
||||
|
||||
mFolderSpecs = new FolderSpecs(new ResourceHelper(context, inv.folderSpecsId));
|
||||
mResponsiveFolderWidthSpec = mFolderSpecs.getWidthSpec(inv.numFolderColumns,
|
||||
FolderSpecs folderSpecs = FolderSpecs.create(
|
||||
new ResourceHelper(context, inv.folderSpecsId));
|
||||
mResponsiveFolderWidthSpec = folderSpecs.getCalculatedWidthSpec(inv.numFolderColumns,
|
||||
mResponsiveWidthSpec.getAvailableSpace(), mResponsiveWidthSpec);
|
||||
mResponsiveFolderHeightSpec = mFolderSpecs.getHeightSpec(inv.numFolderRows,
|
||||
mResponsiveFolderHeightSpec = folderSpecs.getCalculatedHeightSpec(inv.numFolderRows,
|
||||
mResponsiveHeightSpec.getAvailableSpace(), mResponsiveHeightSpec);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user