Merge "Set the stash handle bounds deterministically" into udc-qpr-dev
diff --git a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java
index f5e2ddc..6da1a2a 100644
--- a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java
@@ -152,6 +152,11 @@
         return mBarView.getBubbleBarBounds();
     }
 
+    /** The horizontal margin of the bubble bar from the edge of the screen. */
+    public int getHorizontalMargin() {
+        return mBarView.getHorizontalMargin();
+    }
+
     /**
      * When the bubble bar is not stashed, it can be collapsed (the icons are in a stack) or
      * expanded (the icons are in a row). This indicates whether the bubble bar is expanded.
diff --git a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleStashedHandleViewController.java b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleStashedHandleViewController.java
index 4c197f6..fbab595 100644
--- a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleStashedHandleViewController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleStashedHandleViewController.java
@@ -123,13 +123,15 @@
     private void updateBounds() {
         // As more bubbles get added, the icon bounds become larger. To ensure a consistent
         // handle bar position, we pin it to the edge of the screen.
-        Rect bubblebarRect = mBarViewController.getBubbleBarBounds();
+        final int right =
+                mActivity.getDeviceProfile().widthPx - mBarViewController.getHorizontalMargin();
+
         final int stashedCenterY = mStashedHandleView.getHeight() - mStashedTaskbarHeight / 2;
 
         mStashedHandleBounds.set(
-                bubblebarRect.right - mStashedHandleWidth,
+                right - mStashedHandleWidth,
                 stashedCenterY - mStashedHandleHeight / 2,
-                bubblebarRect.right,
+                right,
                 stashedCenterY + mStashedHandleHeight / 2);
         mStashedHandleView.updateSampledRegion(mStashedHandleBounds);
 
@@ -240,9 +242,6 @@
      */
     public Animator createRevealAnimToIsStashed(boolean isStashed) {
         Rect bubbleBarBounds = new Rect(mBarViewController.getBubbleBarBounds());
-        // the bubble bar may have been invisible when the bounds were previously calculated,
-        // update them again to ensure they're correct.
-        updateBounds();
 
         // Account for the full visual height of the bubble bar
         int heightDiff = (mBarSize - bubbleBarBounds.height()) / 2;