Allow grids to specify if we should start align taskbar in 3 button
nav.
Bug: 259712417
Test: check layout on tablet
check layout on multi_display devices
Change-Id: I282f51e5d76a30e9ad9d8c52d03d4853e965d65a
diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java
index 485b36c..4c34648 100644
--- a/src/com/android/launcher3/InvariantDeviceProfile.java
+++ b/src/com/android/launcher3/InvariantDeviceProfile.java
@@ -149,6 +149,8 @@
public float[] transientTaskbarIconSize;
+ public boolean[] startAlignTaskbar;
+
/**
* Number of icons inside the hotseat area.
*/
@@ -394,6 +396,8 @@
transientTaskbarIconSize = displayOption.transientTaskbarIconSize;
+ startAlignTaskbar = displayOption.startAlignTaskbar;
+
// If the partner customization apk contains any grid overrides, apply them
// Supported overrides: numRows, numColumns, iconSize
applyPartnerDeviceProfileOverrides(context, metrics);
@@ -915,6 +919,8 @@
private final float[] transientTaskbarIconSize = new float[COUNT_SIZES];
+ private final boolean[] startAlignTaskbar = new boolean[COUNT_SIZES];
+
DisplayOption(GridOption grid, Context context, AttributeSet attrs) {
this.grid = grid;
@@ -1147,6 +1153,18 @@
R.styleable.ProfileDisplayOption_transientTaskbarIconSizeTwoPanelPortrait,
transientTaskbarIconSize[INDEX_DEFAULT]);
+ startAlignTaskbar[INDEX_DEFAULT] = a.getBoolean(
+ R.styleable.ProfileDisplayOption_startAlignTaskbar, false);
+ startAlignTaskbar[INDEX_LANDSCAPE] = a.getBoolean(
+ R.styleable.ProfileDisplayOption_startAlignTaskbarLandscape,
+ startAlignTaskbar[INDEX_DEFAULT]);
+ startAlignTaskbar[INDEX_TWO_PANEL_LANDSCAPE] = a.getBoolean(
+ R.styleable.ProfileDisplayOption_startAlignTaskbarTwoPanelLandscape,
+ startAlignTaskbar[INDEX_LANDSCAPE]);
+ startAlignTaskbar[INDEX_TWO_PANEL_PORTRAIT] = a.getBoolean(
+ R.styleable.ProfileDisplayOption_startAlignTaskbarTwoPanelPortrait,
+ startAlignTaskbar[INDEX_DEFAULT]);
+
a.recycle();
}
@@ -1169,6 +1187,7 @@
allAppsIconTextSizes[i] = 0;
allAppsBorderSpaces[i] = new PointF();
transientTaskbarIconSize[i] = 0;
+ startAlignTaskbar[i] = false;
}
}
@@ -1213,6 +1232,7 @@
allAppsBorderSpaces[i].x += p.allAppsBorderSpaces[i].x;
allAppsBorderSpaces[i].y += p.allAppsBorderSpaces[i].y;
transientTaskbarIconSize[i] += p.transientTaskbarIconSize[i];
+ startAlignTaskbar[i] |= p.startAlignTaskbar[i];
}
return this;