diff --git a/res/values/attrs.xml b/res/values/attrs.xml index 16ea0cd11e..4dddb9a506 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -268,6 +268,9 @@ defaults to @dimen/taskbar_button_margin_default --> + + + diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java index 1b38695acf..7112a1bfb1 100644 --- a/src/com/android/launcher3/InvariantDeviceProfile.java +++ b/src/com/android/launcher3/InvariantDeviceProfile.java @@ -510,7 +510,7 @@ public class InvariantDeviceProfile implements SafeCloseable { } } - private List getPredefinedDeviceProfiles(Context context, + private static List getPredefinedDeviceProfiles(Context context, String gridName, @DeviceType int deviceType, boolean allowDisabledGrid) { ArrayList profiles = new ArrayList<>(); @@ -524,7 +524,7 @@ public class InvariantDeviceProfile implements SafeCloseable { GridOption gridOption = new GridOption(context, Xml.asAttributeSet(parser)); if ((gridOption.isEnabled(deviceType) || allowDisabledGrid) - && (Flags.oneGridSpecs() == gridOption.isNewGridOption())) { + && gridOption.filterByFlag(deviceType)) { final int displayDepth = parser.getDepth(); while (((type = parser.next()) != XmlPullParser.END_TAG || parser.getDepth() > displayDepth) @@ -680,7 +680,7 @@ public class InvariantDeviceProfile implements SafeCloseable { return parseAllDefinedGridOptions(context) .stream() .filter(go -> go.isEnabled(deviceType)) - .filter(go -> (Flags.oneGridSpecs() == go.isNewGridOption())) + .filter(go -> go.filterByFlag(deviceType)) .collect(Collectors.toList()); } @@ -937,6 +937,7 @@ public class InvariantDeviceProfile implements SafeCloseable { private final int demoModeLayoutId; private final boolean isScalable; + private final boolean mIsDualGrid; private final int devicePaddingId; private final int mWorkspaceSpecsId; private final int mWorkspaceSpecsTwoPanelId; @@ -961,6 +962,7 @@ public class InvariantDeviceProfile implements SafeCloseable { DEVICE_CATEGORY_ALL); mRowCountSpecsId = a.getResourceId( R.styleable.GridDisplayOption_rowCountSpecsId, INVALID_RESOURCE_HANDLE); + mIsDualGrid = a.getBoolean(R.styleable.GridDisplayOption_isDualGrid, false); if (mRowCountSpecsId != INVALID_RESOURCE_HANDLE) { ResourceHelper resourceHelper = new ResourceHelper(context, mRowCountSpecsId); NumRows numR = getRowCount(resourceHelper, context, deviceCategory); @@ -1124,6 +1126,13 @@ public class InvariantDeviceProfile implements SafeCloseable { public boolean isNewGridOption() { return mRowCountSpecsId != INVALID_RESOURCE_HANDLE; } + + public boolean filterByFlag(int deviceType) { + if (deviceType == TYPE_TABLET) { + return Flags.oneGridRotationHandling() == mIsDualGrid; + } + return Flags.oneGridSpecs() == isNewGridOption(); + } } public static final class NumRows {