[DO NOT MERGE] updateOverlayBounds no longer rely on LauncherCallback method
mFixedSearchBarBounds is no longer used.

b/25255451

Change-Id: I3e2f7511c7a418f211a8b17a62b98f2736dfc91d
diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml
index 06a9984..fa36231 100644
--- a/res/values-land/dimens.xml
+++ b/res/values-land/dimens.xml
@@ -18,4 +18,6 @@
 <!-- QSB -->
     <dimen name="toolbar_button_vertical_padding">8dip</dimen>
     <dimen name="toolbar_button_horizontal_padding">0dip</dimen>
+     <!-- Container -->
+     <item name="container_margin" format="fraction" type="fraction">12%</item>
 </resources>
diff --git a/res/values-sw600dp-land/dimens.xml b/res/values-sw600dp-land/dimens.xml
index f9ca01b..644c891 100644
--- a/res/values-sw600dp-land/dimens.xml
+++ b/res/values-sw600dp-land/dimens.xml
@@ -18,4 +18,8 @@
 <!-- QSB -->
     <dimen name="toolbar_button_vertical_padding">12dip</dimen>
     <dimen name="toolbar_button_horizontal_padding">20dip</dimen>
+
+<!-- Container -->
+     <dimen name="container_max_width">736dp</dimen>
+
 </resources>
diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
index feb1a00..0756dc9 100644
--- a/res/values-sw600dp/dimens.xml
+++ b/res/values-sw600dp/dimens.xml
@@ -15,7 +15,10 @@
 -->
 
 <resources>
-<!-- All Apps -->
+    <!-- Container -->
+    <dimen name="container_min_margin">16dp</dimen>
+
+    <!-- All Apps -->
     <dimen name="all_apps_grid_view_start_margin">0dp</dimen>
     <dimen name="all_apps_grid_section_text_size">26sp</dimen>
     <dimen name="all_apps_icon_top_bottom_padding">12dp</dimen>
diff --git a/res/values-sw768dp-port/dimens.xml b/res/values-sw768dp-port/dimens.xml
new file mode 100644
index 0000000..4df1725
--- /dev/null
+++ b/res/values-sw768dp-port/dimens.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources>
+<!-- Container -->
+    <dimen name="container_max_width">736dp</dimen>
+
+</resources>
\ No newline at end of file
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index a303dab..af4ae5e 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -60,6 +60,10 @@
     <dimen name="toolbar_button_horizontal_padding">12dip</dimen>
 
 <!-- Container -->
+    <item name="container_margin" format="fraction" type="fraction">0%</item>
+    <dimen name="container_min_margin">8dp</dimen>
+    <dimen name="container_max_width">0dp</dimen>
+
     <!-- Note: This needs to match the fixed insets for the search box. -->
     <dimen name="container_bounds_inset">8dp</dimen>
     <!-- Notes: container_bounds_inset - quantum_panel_outer_padding -->
@@ -160,5 +164,4 @@
 <!-- Pending widget -->
     <dimen name="pending_widget_min_padding">8dp</dimen>
     <dimen name="pending_widget_elevation">2dp</dimen>
-
 </resources>
diff --git a/src/com/android/launcher3/BaseContainerView.java b/src/com/android/launcher3/BaseContainerView.java
index 7de2774..538c24a 100644
--- a/src/com/android/launcher3/BaseContainerView.java
+++ b/src/com/android/launcher3/BaseContainerView.java
@@ -22,7 +22,6 @@
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.InsetDrawable;
 import android.util.AttributeSet;
-import android.util.Log;
 import android.view.View;
 import android.widget.FrameLayout;
 
@@ -35,9 +34,6 @@
 
     // The window insets
     private final Rect mInsets = new Rect();
-    // The bounds of the search bar.  Only the left, top, right are used to inset the
-    // search bar and the height is determined by the measurement of the layout
-    private final Rect mFixedSearchBarBounds = new Rect();
     // The computed padding to apply to the container to achieve the container bounds
     protected final Rect mContentPadding = new Rect();
     // The inset to apply to the edges and between the search bar and the container
@@ -48,6 +44,8 @@
     private View mRevealView;
     private View mContent;
 
+    protected final int mHorizontalPadding;
+
     public BaseContainerView(Context context) {
         this(context, null);
     }
@@ -64,6 +62,17 @@
                 R.styleable.BaseContainerView, defStyleAttr, 0);
         mRevealDrawable = a.getDrawable(R.styleable.BaseContainerView_revealBackground);
         a.recycle();
+
+        int maxSize = getResources().getDimensionPixelSize(R.dimen.container_max_width);
+        int minMargin = getResources().getDimensionPixelSize(R.dimen.container_min_margin);
+        int width = ((Launcher) context).getDeviceProfile().availableWidthPx;
+
+        if (maxSize > 0) {
+            mHorizontalPadding = Math.max(minMargin, (width - maxSize) / 2);
+        } else {
+            mHorizontalPadding = Math.max(minMargin,
+                    (int) getResources().getFraction(R.fraction.container_margin, width, 1));
+        }
     }
 
     @Override
@@ -84,12 +93,6 @@
      * Sets the search bar bounds for this container view to match.
      */
     final public void setSearchBarBounds(Rect bounds) {
-        if (LauncherAppState.isDogfoodBuild() && !isValidSearchBarBounds(bounds)) {
-            Log.e(TAG, "Invalid search bar bounds: " + bounds);
-        }
-
-        mFixedSearchBarBounds.set(bounds);
-
         // Post the updates since they can trigger a relayout, and this call can be triggered from
         // a layout pass itself.
         post(new Runnable() {
@@ -105,21 +108,12 @@
      */
     protected void updateBackgroundAndPaddings() {
         Rect padding;
-        if (isValidSearchBarBounds(mFixedSearchBarBounds)) {
-            padding = new Rect(
-                    mFixedSearchBarBounds.left,
-                    mInsets.top + mContainerBoundsInset,
-                    getMeasuredWidth() - mFixedSearchBarBounds.right,
-                    mInsets.bottom + mContainerBoundsInset
-            );
-        } else {
-            padding = new Rect(
-                    mInsets.left + mContainerBoundsInset,
-                    mInsets.top + mContainerBoundsInset,
-                    mInsets.right + mContainerBoundsInset,
-                    mInsets.bottom + mContainerBoundsInset
-            );
-        }
+        padding = new Rect(
+                mHorizontalPadding,
+                mInsets.top + mContainerBoundsInset,
+                mHorizontalPadding,
+                mInsets.bottom + mContainerBoundsInset
+        );
 
         // The container padding changed, notify the container.
         if (!padding.equals(mContentPadding)) {
@@ -149,15 +143,6 @@
 
     protected abstract void onUpdateBgPadding(Rect padding, Rect bgPadding);
 
-    /**
-     * Returns whether the search bar bounds we got are considered valid.
-     */
-    private boolean isValidSearchBarBounds(Rect searchBarBounds) {
-        return !searchBarBounds.isEmpty() &&
-                searchBarBounds.right <= getMeasuredWidth() &&
-                searchBarBounds.bottom <= getMeasuredHeight();
-    }
-
     public final View getContentView() {
         return mContent;
     }