diff options
-rw-r--r-- | res/layout-xlarge/apps_customize_widget.xml | 80 | ||||
-rw-r--r-- | res/layout/apps_customize_widget.xml | 14 | ||||
-rw-r--r-- | res/values-land/dimens.xml | 2 | ||||
-rw-r--r-- | res/values-large-land/dimens.xml | 2 | ||||
-rw-r--r-- | res/values-large-port/dimens.xml | 2 | ||||
-rw-r--r-- | res/values-port/dimens.xml | 2 | ||||
-rw-r--r-- | res/values-xlarge-land/dimens.xml | 20 | ||||
-rw-r--r-- | res/values-xlarge-port/dimens.xml | 2 | ||||
-rw-r--r-- | src/com/android/launcher2/AppsCustomizePagedView.java | 2 | ||||
-rw-r--r-- | src/com/android/launcher2/BubbleTextView.java | 16 | ||||
-rw-r--r-- | src/com/android/launcher2/CachedViewGroup.java | 262 | ||||
-rw-r--r-- | src/com/android/launcher2/CellLayout.java | 24 | ||||
-rw-r--r-- | src/com/android/launcher2/Launcher.java | 3 | ||||
-rw-r--r-- | src/com/android/launcher2/LauncherAppWidgetHostView.java | 16 | ||||
-rw-r--r-- | src/com/android/launcher2/PagedViewWidget.java | 6 | ||||
-rw-r--r-- | src/com/android/launcher2/Workspace.java | 34 |
16 files changed, 150 insertions, 337 deletions
diff --git a/res/layout-xlarge/apps_customize_widget.xml b/res/layout-xlarge/apps_customize_widget.xml new file mode 100644 index 000000000..31c3fbe58 --- /dev/null +++ b/res/layout-xlarge/apps_customize_widget.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 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. +--> +<com.android.launcher2.PagedViewWidget + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher" + + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1" + android:orientation="vertical" + + launcher:blurColor="#FF6B8CF0" + launcher:outlineColor="#FF8CD2FF" + + android:background="@drawable/focusable_view_bg" + android:focusable="true"> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="4dp" + android:orientation="vertical" + android:background="@drawable/widget_info_bg"> + <!-- The name of the widget. --> + <TextView xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/widget_name" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="0" + android:gravity="left|bottom" + android:singleLine="true" + android:ellipsize="marquee" + android:fadingEdge="horizontal" + + android:textColor="#FFBBBBBB" + android:textSize="14sp" + android:shadowColor="#FF000000" + android:shadowDx="0.0" + android:shadowDy="1.0" + android:shadowRadius="1.0" /> + + <!-- The original dimensions of the widget (can't be the same text as above due to different + style. --> + <TextView xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/widget_dims" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="0" + android:gravity="left|bottom" + + android:textColor="#FF999999" + android:textSize="12sp" + android:shadowColor="#99000000" + android:shadowDx="0.0" + android:shadowDy="1.0" + android:shadowRadius="1.0" /> + </LinearLayout> + + <!-- The icon of the widget. --> + <ImageView + android:id="@+id/widget_preview" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_weight="1" + android:adjustViewBounds="true" + android:scaleType="fitStart" /> +</com.android.launcher2.PagedViewWidget> diff --git a/res/layout/apps_customize_widget.xml b/res/layout/apps_customize_widget.xml index 31c3fbe58..57a996288 100644 --- a/res/layout/apps_customize_widget.xml +++ b/res/layout/apps_customize_widget.xml @@ -29,18 +29,18 @@ android:focusable="true"> <LinearLayout - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="4dp" - android:orientation="vertical" + android:orientation="horizontal" android:background="@drawable/widget_info_bg"> <!-- The name of the widget. --> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/widget_name" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_weight="0" - android:gravity="left|bottom" + android:layout_weight="1" + android:gravity="left" android:singleLine="true" android:ellipsize="marquee" android:fadingEdge="horizontal" @@ -58,10 +58,12 @@ android:id="@+id/widget_dims" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_gravity="bottom" + android:layout_marginLeft="5dp" android:layout_weight="0" - android:gravity="left|bottom" + android:gravity="left" - android:textColor="#FF999999" + android:textColor="#FF666666" android:textSize="12sp" android:shadowColor="#99000000" android:shadowDx="0.0" diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml index ea761ce91..4f6bc41be 100644 --- a/res/values-land/dimens.xml +++ b/res/values-land/dimens.xml @@ -60,5 +60,5 @@ <dimen name="apps_customize_widget_cell_width_gap">30dp</dimen> <dimen name="apps_customize_widget_cell_height_gap">5dp</dimen> <integer name="apps_customize_widget_cell_count_x">3</integer> - <integer name="apps_customize_widget_cell_count_y">1</integer> + <integer name="apps_customize_widget_cell_count_y">2</integer> </resources> diff --git a/res/values-large-land/dimens.xml b/res/values-large-land/dimens.xml index 4358ff940..61d993e31 100644 --- a/res/values-large-land/dimens.xml +++ b/res/values-large-land/dimens.xml @@ -35,4 +35,6 @@ <dimen name="apps_customize_pageLayoutPaddingBottom">14dp</dimen> <dimen name="apps_customize_pageLayoutPaddingLeft">40dp</dimen> <dimen name="apps_customize_pageLayoutPaddingRight">40dp</dimen> + <integer name="apps_customize_widget_cell_count_x">3</integer> + <integer name="apps_customize_widget_cell_count_y">2</integer> </resources> diff --git a/res/values-large-port/dimens.xml b/res/values-large-port/dimens.xml index 4e1cf8fc9..ebf837d82 100644 --- a/res/values-large-port/dimens.xml +++ b/res/values-large-port/dimens.xml @@ -38,4 +38,6 @@ <dimen name="apps_customize_pageLayoutPaddingBottom">10dp</dimen> <dimen name="apps_customize_pageLayoutPaddingLeft">10dp</dimen> <dimen name="apps_customize_pageLayoutPaddingRight">10dp</dimen> + <integer name="apps_customize_widget_cell_count_x">2</integer> + <integer name="apps_customize_widget_cell_count_y">3</integer> </resources>
\ No newline at end of file diff --git a/res/values-port/dimens.xml b/res/values-port/dimens.xml index 088d3fd11..2abd9d722 100644 --- a/res/values-port/dimens.xml +++ b/res/values-port/dimens.xml @@ -36,5 +36,5 @@ <dimen name="apps_customize_widget_cell_width_gap">20dp</dimen> <dimen name="apps_customize_widget_cell_height_gap">10dp</dimen> <integer name="apps_customize_widget_cell_count_x">2</integer> - <integer name="apps_customize_widget_cell_count_y">2</integer> + <integer name="apps_customize_widget_cell_count_y">3</integer> </resources> diff --git a/res/values-xlarge-land/dimens.xml b/res/values-xlarge-land/dimens.xml new file mode 100644 index 000000000..6a54265d9 --- /dev/null +++ b/res/values-xlarge-land/dimens.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 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> + <integer name="apps_customize_widget_cell_count_x">4</integer> + <integer name="apps_customize_widget_cell_count_y">2</integer> +</resources>
\ No newline at end of file diff --git a/res/values-xlarge-port/dimens.xml b/res/values-xlarge-port/dimens.xml index 0850e8c75..22d56d979 100644 --- a/res/values-xlarge-port/dimens.xml +++ b/res/values-xlarge-port/dimens.xml @@ -18,4 +18,6 @@ <!-- We can also afford to have a slightly wider portrait layout in xlarge --> <dimen name="apps_customize_pageLayoutWidthGap">36dp</dimen> + <integer name="apps_customize_widget_cell_count_x">3</integer> + <integer name="apps_customize_widget_cell_count_y">3</integer> </resources>
\ No newline at end of file diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java index 16dad1be9..9d0399544 100644 --- a/src/com/android/launcher2/AppsCustomizePagedView.java +++ b/src/com/android/launcher2/AppsCustomizePagedView.java @@ -282,8 +282,6 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen mWidgetSpacingLayout.calculateCellCount(width, height, maxCellCountX, maxCellCountY); mCellCountX = mWidgetSpacingLayout.getCellCountX(); mCellCountY = mWidgetSpacingLayout.getCellCountY(); - mWidgetCountX = Math.max(1, (int) Math.round(mCellCountX / 2f)); - mWidgetCountY = Math.max(1, (int) Math.round(mCellCountY / 3f)); // Force a measure to update recalculate the gaps int widthSpec = MeasureSpec.makeMeasureSpec(getMeasuredWidth(), MeasureSpec.AT_MOST); diff --git a/src/com/android/launcher2/BubbleTextView.java b/src/com/android/launcher2/BubbleTextView.java index 45f58a4fd..e25ce5cc9 100644 --- a/src/com/android/launcher2/BubbleTextView.java +++ b/src/com/android/launcher2/BubbleTextView.java @@ -38,7 +38,7 @@ import android.widget.TextView; * because we want to make the bubble taller than the text and TextView's clip is * too aggressive. */ -public class BubbleTextView extends TextView implements VisibilityChangedBroadcaster { +public class BubbleTextView extends TextView { static final float CORNER_RADIUS = 4.0f; static final float SHADOW_LARGE_RADIUS = 4.0f; static final float SHADOW_SMALL_RADIUS = 1.75f; @@ -67,8 +67,6 @@ public class BubbleTextView extends TextView implements VisibilityChangedBroadca private boolean mStayPressed; - private VisibilityChangedListener mOnVisibilityChangedListener; - public BubbleTextView(Context context) { super(context); init(); @@ -240,18 +238,6 @@ public class BubbleTextView extends TextView implements VisibilityChangedBroadca return result; } - public void setVisibilityChangedListener(VisibilityChangedListener listener) { - mOnVisibilityChangedListener = listener; - } - - @Override - protected void onVisibilityChanged(View changedView, int visibility) { - if (mOnVisibilityChangedListener != null) { - mOnVisibilityChangedListener.receiveVisibilityChangedMessage(this); - } - super.onVisibilityChanged(changedView, visibility); - } - void setStayPressed(boolean stayPressed) { mStayPressed = stayPressed; if (!stayPressed) { diff --git a/src/com/android/launcher2/CachedViewGroup.java b/src/com/android/launcher2/CachedViewGroup.java deleted file mode 100644 index f314b32c6..000000000 --- a/src/com/android/launcher2/CachedViewGroup.java +++ /dev/null @@ -1,262 +0,0 @@ -/* - * Copyright (C) 2008 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. - */ - -package com.android.launcher2; - -import com.android.launcher.R; - -import android.content.Context; -import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.Rect; -import android.graphics.Bitmap.Config; -import android.graphics.PorterDuff.Mode; -import android.util.AttributeSet; -import android.view.View; -import android.view.ViewGroup; - -// This class caches the drawing of this View's children in a bitmap when the scale factor -// falls below a certain size. Only used by CellLayout, but in a separate class to keep cache -// logic separate from the other logic in CellLayout -public class CachedViewGroup extends ViewGroup implements VisibilityChangedListener { - static final String TAG = "CachedViewGroup"; - - private Bitmap mCache; - private Canvas mCacheCanvas; - private Rect mCacheRect; - private Paint mCachePaint; - - private boolean mIsCacheEnabled = true; - private boolean mDisableCacheUpdates = false; - private boolean mForceCacheUpdate = false; - private boolean isUpdatingCache = false; - private boolean mIsCacheDirty = true; - private float mBitmapCacheScale; - private float mMaxScaleForUsingBitmapCache; - - private Rect mBackgroundRect; - - public CachedViewGroup(Context context) { - super(context); - init(); - } - - public CachedViewGroup(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - init(); - } - - private void init() { - mBackgroundRect = new Rect(); - mCacheRect = new Rect(); - final Resources res = getResources(); - mBitmapCacheScale = - res.getInteger(R.integer.config_workspaceScreenBitmapCacheScale) / 100.0f; - mMaxScaleForUsingBitmapCache = - res.getInteger(R.integer.config_maxScaleForUsingWorkspaceScreenBitmapCache) / 100.0f; - mCacheCanvas = new Canvas(); - } - - @Override - protected void onLayout(boolean changed, int l, int t, int r, int b) { - // sub-classes (namely CellLayout) will need to implement this - prepareCacheBitmap(); - invalidateCache(); - } - - private void invalidateIfNeeded() { - if (mIsCacheDirty) { - // Force a redraw to update the cache if it's dirty - invalidate(); - } - } - - public void enableCache() { - mIsCacheEnabled = true; - invalidateIfNeeded(); - } - - public void disableCache() { - mIsCacheEnabled = false; - } - - public void disableCacheUpdates() { - mDisableCacheUpdates = true; - // Force just one update before we enter a period of no cache updates - mForceCacheUpdate = true; - } - - public void enableCacheUpdates() { - mDisableCacheUpdates = false; - invalidateIfNeeded(); - } - - private void invalidateCache() { - mIsCacheDirty = true; - invalidate(); - } - - public void receiveVisibilityChangedMessage(View v) { - invalidateCache(); - } - - private void prepareCacheBitmap() { - if (mCache == null) { - mCache = Bitmap.createBitmap((int) (getWidth() * mBitmapCacheScale), - (int) (getHeight() * mBitmapCacheScale), Config.ARGB_8888); - - mCachePaint = new Paint(); - mCachePaint.setFilterBitmap(true); - mCacheCanvas.setBitmap(mCache); - mCacheCanvas.scale(mBitmapCacheScale, mBitmapCacheScale); - } - } - - - public void updateCache() { - mCacheCanvas.drawColor(0, Mode.CLEAR); - - float alpha = getAlpha(); - setAlpha(1.0f); - isUpdatingCache = true; - drawChildren(mCacheCanvas); - isUpdatingCache = false; - setAlpha(alpha); - - mIsCacheDirty = false; - } - - public void drawChildren(Canvas canvas) { - super.dispatchDraw(canvas); - } - - @Override - public void removeAllViews() { - super.removeAllViews(); - invalidateCache(); - } - - @Override - public void removeAllViewsInLayout() { - super.removeAllViewsInLayout(); - invalidateCache(); - } - - @Override - public void removeView(View view) { - super.removeView(view); - invalidateCache(); - } - - @Override - public void removeViewAt(int index) { - super.removeViewAt(index); - invalidateCache(); - } - - @Override - public void removeViewInLayout(View view) { - super.removeViewInLayout(view); - invalidateCache(); - } - - @Override - public void removeViews(int start, int count) { - super.removeViews(start, count); - invalidateCache(); - } - - @Override - public void removeViewsInLayout(int start, int count) { - super.removeViewsInLayout(start, count); - invalidateCache(); - } - - @Override - public void dispatchDraw(Canvas canvas) { - final int count = getChildCount(); - - boolean useBitmapCache = false; - if (!isUpdatingCache) { - if (!mIsCacheDirty) { - // Check if one of the children (an icon or widget) is dirty - for (int i = 0; i < count; i++) { - final View child = getChildAt(i); - if (child.isDirty()) { - mIsCacheDirty = true; - break; - } - } - } - - useBitmapCache = mIsCacheEnabled && getScaleX() < mMaxScaleForUsingBitmapCache; - if (mForceCacheUpdate || - (useBitmapCache && !mDisableCacheUpdates)) { - // Sometimes we force a cache update-- this is used to make sure the cache will look as - // up-to-date as possible right when we disable cache updates - if (mIsCacheDirty) { - updateCache(); - } - mForceCacheUpdate = false; - } - } - - if (useBitmapCache) { - mCachePaint.setAlpha((int)(255*getAlpha())); - canvas.drawBitmap(mCache, mCacheRect, mBackgroundRect, mCachePaint); - } else { - super.dispatchDraw(canvas); - } - } - - @Override - public void addView(View child, int index, ViewGroup.LayoutParams params) { - super.addView(child, index, params); - - // invalidate the cache to have it reflect the new item - invalidateCache(); - - if (child instanceof VisibilityChangedBroadcaster) { - VisibilityChangedBroadcaster v = (VisibilityChangedBroadcaster) child; - v.setVisibilityChangedListener(this); - } - } - - - @Override - protected void onSizeChanged(int w, int h, int oldw, int oldh) { - super.onSizeChanged(w, h, oldw, oldh); - mBackgroundRect.set(0, 0, w, h); - mCacheRect.set(0, 0, (int) (mBitmapCacheScale * w), (int) (mBitmapCacheScale * h)); - mCache = null; - prepareCacheBitmap(); - invalidateCache(); - } -} - - -//Custom interfaces used to listen to "visibility changed" events of *children* of Views. Avoided -//using "onVisibilityChanged" in the names because there's a method of that name in framework -//(which can only can be used to listen to ancestors' "visibility changed" events) -interface VisibilityChangedBroadcaster { - public void setVisibilityChangedListener(VisibilityChangedListener listener); -} - -interface VisibilityChangedListener { - public void receiveVisibilityChangedMessage(View v); -}
\ No newline at end of file diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java index a17e2d604..6f59d1f3c 100644 --- a/src/com/android/launcher2/CellLayout.java +++ b/src/com/android/launcher2/CellLayout.java @@ -292,8 +292,20 @@ public class CellLayout extends ViewGroup { return minGap * (numCells - 1) + cellHeight * numCells; } + @Override + public void setChildrenLayersEnabled(boolean enabled) { + // see "Hardware Layer Note" lower in the code + if (LauncherApplication.isScreenLarge()) { + super.setChildrenLayersEnabled(enabled); + } else { + mChildren.setChildrenLayersEnabled(enabled); + } + } public void enableHardwareLayers() { - mChildren.enableHardwareLayers(); + // see "Hardware Layer Note" lower in the code + if (LauncherApplication.isScreenLarge()) { + mChildren.enableHardwareLayers(); + } } public void setGridSize(int x, int y) { @@ -638,6 +650,16 @@ public class CellLayout extends ViewGroup { child.setId(childId); + if (!LauncherApplication.isScreenLarge()) { + // Hardware Layer Note: + // On phones, we set hardware layers on individual items + // On tablets, we set hardware layers on the entire mChildren view + // Setting the hardware layers on individual items only uses + // less memory but on tablet-size devices it has worse performance + // (a drop of ~6fps) whereas on phones the performance is the same + // with both approaches + child.setLayerType(LAYER_TYPE_HARDWARE, null); + } mChildren.addView(child, index, lp); if (markCells) markCellsAsOccupiedForView(child); diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index 490971ecd..7ab41bc4e 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -1709,7 +1709,8 @@ public final class Launcher extends Activity FolderInfo info = (FolderInfo) fi.getTag(); if (info.container == LauncherSettings.Favorites.CONTAINER_HOTSEAT) { CellLayout cl = (CellLayout) fi.getParent().getParent(); - cl.setFolderLeaveBehindCell(info.cellX, info.cellY); + CellLayout.LayoutParams lp = (CellLayout.LayoutParams) fi.getLayoutParams(); + cl.setFolderLeaveBehindCell(lp.cellX, lp.cellY); } ObjectAnimator oa = ObjectAnimator.ofPropertyValuesHolder(fi, alpha, scaleX, scaleY); diff --git a/src/com/android/launcher2/LauncherAppWidgetHostView.java b/src/com/android/launcher2/LauncherAppWidgetHostView.java index 670c8b666..7c3b993ce 100644 --- a/src/com/android/launcher2/LauncherAppWidgetHostView.java +++ b/src/com/android/launcher2/LauncherAppWidgetHostView.java @@ -30,12 +30,10 @@ import com.android.launcher.R; /** * {@inheritDoc} */ -public class LauncherAppWidgetHostView extends AppWidgetHostView - implements VisibilityChangedBroadcaster { +public class LauncherAppWidgetHostView extends AppWidgetHostView { private boolean mHasPerformedLongPress; private CheckForLongPress mPendingCheckForLongPress; private LayoutInflater mInflater; - private VisibilityChangedListener mOnVisibilityChangedListener; public LauncherAppWidgetHostView(Context context) { super(context); @@ -120,18 +118,6 @@ public class LauncherAppWidgetHostView extends AppWidgetHostView } } - public void setVisibilityChangedListener(VisibilityChangedListener listener) { - mOnVisibilityChangedListener = listener; - } - - @Override - protected void onVisibilityChanged(View changedView, int visibility) { - if (mOnVisibilityChangedListener != null) { - mOnVisibilityChangedListener.receiveVisibilityChangedMessage(this); - } - super.onVisibilityChanged(changedView, visibility); - } - @Override public int getDescendantFocusability() { return ViewGroup.FOCUS_BLOCK_DESCENDANTS; diff --git a/src/com/android/launcher2/PagedViewWidget.java b/src/com/android/launcher2/PagedViewWidget.java index d9c2a84a1..053c2ea1a 100644 --- a/src/com/android/launcher2/PagedViewWidget.java +++ b/src/com/android/launcher2/PagedViewWidget.java @@ -111,8 +111,10 @@ public class PagedViewWidget extends LinearLayout implements Checkable { name.setText(info.label); name.setLayerType(View.LAYER_TYPE_SOFTWARE, null); final TextView dims = (TextView) findViewById(R.id.widget_dims); - dims.setText(String.format(mDimensionsFormatString, cellSpan[0], cellSpan[1])); - dims.setLayerType(View.LAYER_TYPE_SOFTWARE, null); + if (dims != null) { + dims.setText(String.format(mDimensionsFormatString, cellSpan[0], cellSpan[1])); + dims.setLayerType(View.LAYER_TYPE_SOFTWARE, null); + } } public void applyFromResolveInfo(PackageManager pm, ResolveInfo info, diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index e2fcfecf4..947c94624 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -390,7 +390,9 @@ public class Workspace extends SmoothPagedView return SmoothPagedView.X_LARGE_MODE; } - private void onAddView(View child) { + @Override + protected void onViewAdded(View child) { + super.onViewAdded(child); if (!(child instanceof CellLayout)) { throw new IllegalArgumentException("A Workspace can only have CellLayout children."); } @@ -400,36 +402,6 @@ public class Workspace extends SmoothPagedView cl.enableHardwareLayers(); } - @Override - public void addView(View child, int index, LayoutParams params) { - onAddView(child); - super.addView(child, index, params); - } - - @Override - public void addView(View child) { - onAddView(child); - super.addView(child); - } - - @Override - public void addView(View child, int index) { - onAddView(child); - super.addView(child, index); - } - - @Override - public void addView(View child, int width, int height) { - onAddView(child); - super.addView(child, width, height); - } - - @Override - public void addView(View child, LayoutParams params) { - onAddView(child); - super.addView(child, params); - } - /** * @return The open folder on the current screen, or null if there is none */ |