Space out 3 button nav on taskbar

* Add additional margin on nav buttons if
there's overlap w/ contextual button
* End spacing is dependent on grid layout

Bug: 223724516
Test: Tested on unfolded with different
grid sizes.

Change-Id: Ie814f35cd1f35629744050ee3f7242c5a8599883
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index d09642a..561d4f1 100644
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -424,11 +424,13 @@
         if (areNavButtonsInline) {
             /*
              * 3 nav buttons +
+             * Spacing between nav buttons +
              * Little space at the end for contextual buttons +
              * Little space between icons and nav buttons
              */
             hotseatBarEndOffset = 3 * res.getDimensionPixelSize(R.dimen.taskbar_nav_buttons_size)
-                    + res.getDimensionPixelSize(R.dimen.taskbar_contextual_button_margin)
+                    + 2 * res.getDimensionPixelSize(R.dimen.taskbar_button_space_inbetween)
+                    + res.getDimensionPixelSize(inv.inlineNavButtonsEndSpacing)
                     + res.getDimensionPixelSize(R.dimen.taskbar_hotseat_nav_spacing);
         } else {
             hotseatBarEndOffset = 0;
diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java
index 2085b84..c051292 100644
--- a/src/com/android/launcher3/InvariantDeviceProfile.java
+++ b/src/com/android/launcher3/InvariantDeviceProfile.java
@@ -127,6 +127,7 @@
     public PointF[] borderSpaces;
     public float folderBorderSpace;
     public float[] hotseatBorderSpaces;
+    public int inlineNavButtonsEndSpacing;
 
     public float[] horizontalMargin;
 
@@ -339,6 +340,8 @@
         devicePaddingId = closestProfile.devicePaddingId;
         this.deviceType = deviceType;
 
+        inlineNavButtonsEndSpacing = closestProfile.inlineNavButtonsEndSpacing;
+
         mExtraAttrs = closestProfile.extraAttrs;
 
         iconSize = displayOption.iconSizes;
@@ -735,6 +738,7 @@
 
         private final int[] hotseatColumnSpan = new int[COUNT_SIZES];
 
+        private int inlineNavButtonsEndSpacing;
         private final String dbFile;
 
         private final int defaultLayoutId;
@@ -785,6 +789,9 @@
                     R.styleable.GridDisplayOption_hotseatColumnSpanTwoPanelPortrait,
                     numColumns);
 
+            inlineNavButtonsEndSpacing =
+                    a.getResourceId(R.styleable.GridDisplayOption_inlineNavButtonsEndSpacing,
+                    R.dimen.taskbar_button_margin_default);
             numFolderRows = a.getInt(
                     R.styleable.GridDisplayOption_numFolderRows, numRows);
             numFolderColumns = a.getInt(