OSDN Git Service

[DO NOT MERGE] updateOverlayBounds no longer rely on LauncherCallback method
authorHyunyoung Song <hyunyoungs@google.com>
Mon, 4 Apr 2016 20:47:01 +0000 (13:47 -0700)
committerSunny Goyal <sunnygoyal@google.com>
Mon, 4 Apr 2016 23:23:18 +0000 (16:23 -0700)
mFixedSearchBarBounds is no longer used.

b/25255451

Change-Id: I3e2f7511c7a418f211a8b17a62b98f2736dfc91d

res/values-land/dimens.xml
res/values-sw600dp-land/dimens.xml
res/values-sw600dp/dimens.xml
res/values-sw768dp-port/dimens.xml [new file with mode: 0644]
res/values/dimens.xml
src/com/android/launcher3/BaseContainerView.java

index 06a9984..fa36231 100644 (file)
@@ -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>
index f9ca01b..644c891 100644 (file)
@@ -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>
index feb1a00..0756dc9 100644 (file)
 -->
 
 <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 (file)
index 0000000..4df1725
--- /dev/null
@@ -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
index a303dab..af4ae5e 100644 (file)
     <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 -->
 <!-- Pending widget -->
     <dimen name="pending_widget_min_padding">8dp</dimen>
     <dimen name="pending_widget_elevation">2dp</dimen>
-
 </resources>
index 7de2774..538c24a 100644 (file)
@@ -22,7 +22,6 @@ import android.graphics.Rect;
 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 @@ public abstract class BaseContainerView extends FrameLayout implements Insettabl
 
     // 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 @@ public abstract class BaseContainerView extends FrameLayout implements Insettabl
     private View mRevealView;
     private View mContent;
 
+    protected final int mHorizontalPadding;
+
     public BaseContainerView(Context context) {
         this(context, null);
     }
@@ -64,6 +62,17 @@ public abstract class BaseContainerView extends FrameLayout implements Insettabl
                 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 @@ public abstract class BaseContainerView extends FrameLayout implements Insettabl
      * 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 @@ public abstract class BaseContainerView extends FrameLayout implements Insettabl
      */
     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 @@ public abstract class BaseContainerView extends FrameLayout implements Insettabl
 
     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;
     }