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 {