diff options
-rw-r--r-- | src/com/android/launcher2/AppsCustomizePagedView.java | 112 | ||||
-rw-r--r-- | src/com/android/launcher2/PagedView.java | 58 | ||||
-rw-r--r-- | src/com/android/launcher2/PagedViewCellLayout.java | 50 | ||||
-rw-r--r-- | src/com/android/launcher2/PagedViewCellLayoutChildren.java | 8 | ||||
-rw-r--r-- | src/com/android/launcher2/PagedViewGridLayout.java | 20 |
5 files changed, 143 insertions, 105 deletions
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java index d3e096300..8d49b4ccc 100644 --- a/src/com/android/launcher2/AppsCustomizePagedView.java +++ b/src/com/android/launcher2/AppsCustomizePagedView.java @@ -189,6 +189,14 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen private final float sWidgetPreviewIconPaddingPercentage = 0.25f; private PagedViewCellLayout mWidgetSpacingLayout; + // Relating to the scroll and overscroll effects + Workspace.ZInterpolator mZInterpolator = new Workspace.ZInterpolator(0.5f); + private float mDensity; + private static float CAMERA_DISTANCE = 3500; + private static float TRANSITION_SCALE_FACTOR = 0.6f; + private static float TRANSITION_PIVOT = 0.75f; + private static float TRANSITION_MAX_ROTATION = 26f; + // Previews & outlines ArrayList<AppsCustomizeAsyncTask> mRunningTasks; private HolographicOutlineHelper mHolographicOutlineHelper; @@ -211,6 +219,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen mDefaultWidgetBackground = resources.getDrawable(R.drawable.default_widget_preview_holo); mAppIconSize = resources.getDimensionPixelSize(R.dimen.app_icon_size); mDragViewMultiplyColor = resources.getColor(R.color.drag_view_multiply_color); + mDensity = resources.getDisplayMetrics().density; TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.PagedView, 0, 0); // TODO-APPS_CUSTOMIZE: remove these unnecessary attrs after @@ -265,7 +274,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen int currentPage = getCurrentPage(); switch (mContentType) { case Applications: { - PagedViewCellLayout layout = (PagedViewCellLayout) getChildAt(currentPage); + PagedViewCellLayout layout = (PagedViewCellLayout) getPageAt(currentPage); PagedViewCellLayoutChildren childrenLayout = layout.getChildrenLayout(); int numItemsPerPage = mCellCountX * mCellCountY; int childCount = childrenLayout.getChildCount(); @@ -274,7 +283,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen }} break; case Widgets: { - PagedViewGridLayout layout = (PagedViewGridLayout) getChildAt(currentPage); + PagedViewGridLayout layout = (PagedViewGridLayout) getPageAt(currentPage); int numItemsPerPage = mWidgetCountX * mWidgetCountY; int childCount = layout.getChildCount(); if (childCount > 0) { @@ -526,8 +535,6 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen if (!super.beginDragging(v)) return false; // Go into spring loaded mode (must happen before we startDrag()) - int currentPageIndex = mLauncher.getWorkspace().getCurrentPage(); - CellLayout currentPage = (CellLayout) mLauncher.getWorkspace().getChildAt(currentPageIndex); mLauncher.enterSpringLoadedDragMode(); if (v instanceof PagedViewIcon) { @@ -626,11 +633,10 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen } public void syncAppsPageItems(int page, boolean immediate) { // ensure that we have the right number of items on the pages - int numPages = getPageCount(); int numCells = mCellCountX * mCellCountY; int startIndex = page * numCells; int endIndex = Math.min(startIndex + numCells, mApps.size()); - PagedViewCellLayout layout = (PagedViewCellLayout) getChildAt(page); + PagedViewCellLayout layout = (PagedViewCellLayout) getPageAt(page); layout.removeAllViewsOnPage(); ArrayList<Object> items = new ArrayList<Object>(); @@ -653,8 +659,6 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen images.add(info.iconBitmap); } - // Create the hardware layers - layout.allowHardwareLayerCreation(); layout.createHardwareLayers(); if (mFadeInAdjacentScreens) { @@ -959,6 +963,8 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen } else { prepareLoadWidgetPreviewsTask(page, items, cellWidth, cellHeight, mWidgetCountX); } + PagedViewGridLayout layout = (PagedViewGridLayout) getPageAt(page); + layout.createHardwareLayer(); } private void loadWidgetPreviewsInBackground(AppsCustomizeAsyncTask task, AsyncTaskPageData data) { @@ -997,7 +1003,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen } private void onSyncWidgetPageItems(AsyncTaskPageData data) { int page = data.page; - PagedViewGridLayout layout = (PagedViewGridLayout) getChildAt(page); + PagedViewGridLayout layout = (PagedViewGridLayout) getPageAt(page); // Only set the column count once we have items layout.setColumnCount(layout.getCellCountX()); @@ -1062,7 +1068,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen invalidate(); int page = data.page; - ViewGroup layout = (ViewGroup) getChildAt(page); + ViewGroup layout = (ViewGroup) getPageAt(page); if (layout instanceof PagedViewCellLayout) { PagedViewCellLayout cl = (PagedViewCellLayout) layout; int count = cl.getPageChildCount(); @@ -1114,6 +1120,92 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen } } + // We want our pages to be z-ordered such that the further a page is to the left, the higher + // it is in the z-order. This is important to insure touch events are handled correctly. + View getPageAt(int index) { + return getChildAt(getChildCount() - index - 1); + } + + // In apps customize, we have a scrolling effect which emulates pulling cards off of a stack. + @Override + protected void screenScrolled(int screenCenter) { + super.screenScrolled(screenCenter); + final int halfScreenSize = getMeasuredWidth() / 2; + + for (int i = 0; i < getChildCount(); i++) { + View v = getPageAt(i); + if (v != null) { + int totalDistance = getScaledMeasuredWidth(v) + mPageSpacing; + int delta = screenCenter - (getChildOffset(i) - + getRelativeChildOffset(i) + halfScreenSize); + + float scrollProgress = delta / (totalDistance * 1.0f); + scrollProgress = Math.min(scrollProgress, 1.0f); + scrollProgress = Math.max(scrollProgress, -1.0f); + + float interpolatedProgress = + mZInterpolator.getInterpolation(Math.abs(Math.min(scrollProgress, 0))); + float scale = (1 - interpolatedProgress) + + interpolatedProgress * TRANSITION_SCALE_FACTOR; + float translationX = Math.min(0, scrollProgress) * v.getMeasuredWidth(); + float alpha = scrollProgress < 0 ? 1 - Math.abs(scrollProgress) : 1.0f; + + v.setCameraDistance(mDensity * CAMERA_DISTANCE); + int pageWidth = v.getMeasuredWidth(); + int pageHeight = v.getMeasuredHeight(); + if (i == 0 && scrollProgress < 0) { + // Overscroll to the left + v.setPivotX(TRANSITION_PIVOT * pageWidth); + v.setRotationY(-TRANSITION_MAX_ROTATION * scrollProgress); + scale = 1.0f; + alpha = 1.0f; + // On the first page, we don't want the page to have any lateral motion + translationX = getScrollX(); + } else if (i == getChildCount() - 1 && scrollProgress > 0) { + // Overscroll to the right + v.setPivotX((1 - TRANSITION_PIVOT) * pageWidth); + v.setRotationY(-TRANSITION_MAX_ROTATION * scrollProgress); + scale = 1.0f; + alpha = 1.0f; + // On the last page, we don't want the page to have any lateral motion. + translationX = getScrollX() - mMaxScrollX; + } else { + v.setPivotY(pageHeight / 2.0f); + v.setPivotX(pageWidth / 2.0f); + v.setRotationY(0f); + } + + v.setTranslationX(translationX); + v.setScaleX(scale); + v.setScaleY(scale); + v.setAlpha(alpha); + } + } + } + + protected void overScroll(float amount) { + int screenSize = getMeasuredWidth(); + + // We want to reach the max overscroll effect when the user has + // overscrolled half the size of the screen + float f = 2 * (amount / screenSize); + + if (f == 0) return; + + // Clamp this factor, f, to -1 < f < 1 + if (Math.abs(f) >= 1) { + f /= Math.abs(f); + } + + int overScrollAmount = (int) Math.round(f * screenSize); + if (amount < 0) { + mScrollX = overScrollAmount; + } else { + mScrollX = mMaxScrollX + overScrollAmount; + } + invalidate(); + } + /** * Used by the parent to get the content width to set the tab bar to * @return diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java index 76fa93701..807470c70 100644 --- a/src/com/android/launcher2/PagedView.java +++ b/src/com/android/launcher2/PagedView.java @@ -441,7 +441,7 @@ public abstract class PagedView extends ViewGroup { final int childCount = getChildCount(); for (int i = 0; i < childCount; i++) { // disallowing padding in paged view (just pass 0) - final View child = getChildAt(i); + final View child = getPageAt(i); final LayoutParams lp = (LayoutParams) child.getLayoutParams(); int childWidthMode; @@ -489,7 +489,7 @@ public abstract class PagedView extends ViewGroup { final int pageCount = getChildCount(); for (int i = 0; i < pageCount; i++) { - View page = (View) getChildAt(i); + View page = (View) getPageAt(i); page.setX(page.getX() + delta); } setCurrentPage(newCurrentPage); @@ -506,7 +506,7 @@ public abstract class PagedView extends ViewGroup { float childrenX[] = new float[childCount]; float childrenY[] = new float[childCount]; for (int i = 0; i < childCount; i++) { - final View child = getChildAt(i); + final View child = getPageAt(i); childrenX[i] = child.getX(); childrenY[i] = child.getY(); } @@ -517,7 +517,7 @@ public abstract class PagedView extends ViewGroup { measure(widthSpec, heightSpec); layout(mLeft, mTop, mRight, mBottom); for (int i = 0; i < childCount; i++) { - final View child = getChildAt(i); + final View child = getPageAt(i); child.setX(childrenX[i]); child.setY(childrenY[i]); } @@ -553,7 +553,7 @@ public abstract class PagedView extends ViewGroup { } for (int i = 0; i < childCount; i++) { - final View child = getChildAt(i); + final View child = getPageAt(i); if (child.getVisibility() != View.GONE) { final int childWidth = getScaledMeasuredWidth(child); final int childHeight = child.getMeasuredHeight(); @@ -586,7 +586,7 @@ public abstract class PagedView extends ViewGroup { int screenCenter = mScrollX + halfScreenSize + mPaddingLeft; final int childCount = getChildCount(); for (int i = 0; i < childCount; ++i) { - View layout = (View) getChildAt(i); + View layout = (View) getPageAt(i); int childWidth = getScaledMeasuredWidth(layout); int halfChildWidth = (childWidth / 2); int childCenter = getChildOffset(i) + halfChildWidth; @@ -603,13 +603,13 @@ public abstract class PagedView extends ViewGroup { int distanceFromScreenCenter = childCenter - screenCenter; if (distanceFromScreenCenter > 0) { if (i > 0) { - d += getScaledMeasuredWidth(getChildAt(i - 1)) / 2; + d += getScaledMeasuredWidth(getPageAt(i - 1)) / 2; } else { continue; } } else { if (i < childCount - 1) { - d += getScaledMeasuredWidth(getChildAt(i + 1)) / 2; + d += getScaledMeasuredWidth(getPageAt(i + 1)) / 2; } else { continue; } @@ -663,21 +663,19 @@ public abstract class PagedView extends ViewGroup { // page. final int pageCount = getChildCount(); if (pageCount > 0) { - final int pageWidth = getScaledMeasuredWidth(getChildAt(0)); + final int pageWidth = getScaledMeasuredWidth(getPageAt(0)); final int screenWidth = getMeasuredWidth(); int x = getScaledRelativeChildOffset(0) + pageWidth; int leftScreen = 0; int rightScreen = 0; - while (x <= mScrollX) { + while (x <= mScrollX && leftScreen < pageCount - 1) { leftScreen++; - x += getScaledMeasuredWidth(getChildAt(leftScreen)) + mPageSpacing; + x += getScaledMeasuredWidth(getPageAt(leftScreen)) + mPageSpacing; } rightScreen = leftScreen; - while (x < mScrollX + screenWidth && rightScreen < pageCount) { + while (x < mScrollX + screenWidth && rightScreen < pageCount - 1) { rightScreen++; - if (rightScreen < pageCount) { - x += getScaledMeasuredWidth(getChildAt(rightScreen)) + mPageSpacing; - } + x += getScaledMeasuredWidth(getPageAt(rightScreen)) + mPageSpacing; } rightScreen = Math.min(getChildCount() - 1, rightScreen); @@ -687,8 +685,8 @@ public abstract class PagedView extends ViewGroup { canvas.clipRect(mScrollX, mScrollY, mScrollX + mRight - mLeft, mScrollY + mBottom - mTop); - for (int i = leftScreen; i <= rightScreen; i++) { - drawChild(canvas, getChildAt(i), drawingTime); + for (int i = rightScreen; i >= leftScreen; i--) { + drawChild(canvas, getPageAt(i), drawingTime); } canvas.restore(); } @@ -787,7 +785,7 @@ public abstract class PagedView extends ViewGroup { if (disallowIntercept) { // We need to make sure to cancel our long press if // a scrollable widget takes over touch events - final View currentPage = getChildAt(mCurrentPage); + final View currentPage = getPageAt(mCurrentPage); currentPage.cancelLongPress(); } super.requestDisallowInterceptTouchEvent(disallowIntercept); @@ -1092,7 +1090,7 @@ public abstract class PagedView extends ViewGroup { // in the opposite direction, we use a threshold to determine whether we should // just return to the starting page, or if we should skip one further. boolean returnToOriginalPage = false; - final int pageWidth = getScaledMeasuredWidth(getChildAt(mCurrentPage)); + final int pageWidth = getScaledMeasuredWidth(getPageAt(mCurrentPage)); if (Math.abs(deltaX) > pageWidth * RETURN_TO_ORIGINAL_PAGE_THRESHOLD && Math.signum(velocityX) != Math.signum(deltaX)) { returnToOriginalPage = true; @@ -1241,7 +1239,7 @@ public abstract class PagedView extends ViewGroup { int right; for (int i = 0; i < childCount; ++i) { left = getRelativeChildOffset(i); - right = (left + getScaledMeasuredWidth(getChildAt(i))); + right = (left + getScaledMeasuredWidth(getPageAt(i))); if (left <= relativeOffset && relativeOffset <= right) { return i; } @@ -1259,7 +1257,7 @@ public abstract class PagedView extends ViewGroup { protected int getChildWidth(int index) { // This functions are called enough times that it actually makes a difference in the // profiler -- so just inline the max() here - final int measuredWidth = getChildAt(index).getMeasuredWidth(); + final int measuredWidth = getPageAt(index).getMeasuredWidth(); final int minWidth = mMinimumWidth; return (minWidth > measuredWidth) ? minWidth : measuredWidth; } @@ -1271,7 +1269,7 @@ public abstract class PagedView extends ViewGroup { protected int getScaledRelativeChildOffset(int index) { int padding = mPaddingLeft + mPaddingRight; return mPaddingLeft + (getMeasuredWidth() - padding - - getScaledMeasuredWidth(getChildAt(index))) / 2; + getScaledMeasuredWidth(getPageAt(index))) / 2; } protected int getChildOffset(int index) { @@ -1280,7 +1278,7 @@ public abstract class PagedView extends ViewGroup { int offset = getRelativeChildOffset(0); for (int i = 0; i < index; ++i) { - offset += getScaledMeasuredWidth(getChildAt(i)) + mPageSpacing; + offset += getScaledMeasuredWidth(getPageAt(i)) + mPageSpacing; } return offset; } @@ -1295,12 +1293,12 @@ public abstract class PagedView extends ViewGroup { } int getPageNearestToCenterOfScreen() { - int minDistanceFromScreenCenter = getMeasuredWidth(); + int minDistanceFromScreenCenter = Integer.MAX_VALUE; int minDistanceFromScreenCenterIndex = -1; int screenCenter = mScrollX + (getMeasuredWidth() / 2); final int childCount = getChildCount(); for (int i = 0; i < childCount; ++i) { - View layout = (View) getChildAt(i); + View layout = (View) getPageAt(i); int childWidth = getScaledMeasuredWidth(layout); int halfChildWidth = (childWidth / 2); int childCenter = getChildOffset(i) + halfChildWidth; @@ -1395,7 +1393,7 @@ public abstract class PagedView extends ViewGroup { View focusedChild = getFocusedChild(); if (focusedChild != null && whichPage != mCurrentPage && - focusedChild == getChildAt(mCurrentPage)) { + focusedChild == getPageAt(mCurrentPage)) { focusedChild.clearFocus(); } @@ -1441,7 +1439,7 @@ public abstract class PagedView extends ViewGroup { ViewParent vp = v.getParent(); int count = getChildCount(); for (int i = 0; i < count; i++) { - if (vp == getChildAt(i)) { + if (vp == getPageAt(i)) { return i; } } @@ -1509,7 +1507,7 @@ public abstract class PagedView extends ViewGroup { if ((i != page) && immediateAndOnly) { continue; } - Page layout = (Page) getChildAt(i); + Page layout = (Page) getPageAt(i); final int childCount = layout.getPageChildCount(); if (lowerPageBound <= i && i <= upperPageBound) { if (mDirtyPageContent.get(i)) { @@ -1559,7 +1557,7 @@ public abstract class PagedView extends ViewGroup { ArrayList<Checkable> checked = new ArrayList<Checkable>(); final int childCount = getChildCount(); for (int i = 0; i < childCount; ++i) { - Page layout = (Page) getChildAt(i); + Page layout = (Page) getPageAt(i); final int grandChildCount = layout.getPageChildCount(); for (int j = 0; j < grandChildCount; ++j) { final View v = layout.getChildOnPageAt(j); @@ -1579,7 +1577,7 @@ public abstract class PagedView extends ViewGroup { if (mChoiceMode != CHOICE_MODE_MULTIPLE) { final int childCount = getChildCount(); for (int i = 0; i < childCount; ++i) { - Page layout = (Page) getChildAt(i); + Page layout = (Page) getPageAt(i); final int grandChildCount = layout.getPageChildCount(); for (int j = 0; j < grandChildCount; ++j) { final View v = layout.getChildOnPageAt(j); diff --git a/src/com/android/launcher2/PagedViewCellLayout.java b/src/com/android/launcher2/PagedViewCellLayout.java index 803e70060..29dc3521b 100644 --- a/src/com/android/launcher2/PagedViewCellLayout.java +++ b/src/com/android/launcher2/PagedViewCellLayout.java @@ -47,9 +47,6 @@ public class PagedViewCellLayout extends ViewGroup implements Page { private int mHeightGap; private int mMaxGap; protected PagedViewCellLayoutChildren mChildren; - private PagedViewCellLayoutChildren mHolographicChildren; - private boolean mAllowHardwareLayerCreation = false; - private boolean mCreateHardwareLayersIfAllowed = false; public PagedViewCellLayout(Context context) { this(context, null); @@ -80,12 +77,6 @@ public class PagedViewCellLayout extends ViewGroup implements Page { mChildren.setGap(mWidthGap, mHeightGap); addView(mChildren); - mHolographicChildren = new PagedViewCellLayoutChildren(context); - mHolographicChildren.setAlpha(0f); - mHolographicChildren.setCellDimensions(mCellWidth, mCellHeight); - mHolographicChildren.setGap(mWidthGap, mHeightGap); - - addView(mHolographicChildren); } public int getCellWidth() { @@ -96,41 +87,20 @@ public class PagedViewCellLayout extends ViewGroup implements Page { return mCellHeight; } - public void allowHardwareLayerCreation() { - // This is called after the first time we launch into All Apps. Before that point, - // there's no need for hardware layers here since there's a hardware layer set on the - // parent, AllAppsTabbed, during the AllApps transition -- creating hardware layers here - // before the animation is done slows down the animation - if (!mAllowHardwareLayerCreation) { - mAllowHardwareLayerCreation = true; - if (mCreateHardwareLayersIfAllowed) { - createHardwareLayers(); - } - } - } - @Override public void setAlpha(float alpha) { - mChildren.setAlpha(HolographicOutlineHelper.viewAlphaInterpolator(alpha)); - mHolographicChildren.setAlpha(HolographicOutlineHelper.highlightAlphaInterpolator(alpha)); + mChildren.setAlpha(alpha); } void destroyHardwareLayers() { // called when a page is no longer visible (triggered by loadAssociatedPages -> // removeAllViewsOnPage) - mCreateHardwareLayersIfAllowed = false; - if (mAllowHardwareLayerCreation) { - mChildren.destroyHardwareLayer(); - mHolographicChildren.destroyHardwareLayer(); - } + mChildren.destroyHardwareLayer(); } + void createHardwareLayers() { // called when a page is visible (triggered by loadAssociatedPages -> syncPageItems) - mCreateHardwareLayersIfAllowed = true; - if (mAllowHardwareLayerCreation) { - mChildren.createHardwareLayer(); - mHolographicChildren.createHardwareLayer(); - } + mChildren.createHardwareLayer(); } @Override @@ -163,11 +133,7 @@ public class PagedViewCellLayout extends ViewGroup implements Page { if (child instanceof PagedViewIcon) { PagedViewIcon pagedViewIcon = (PagedViewIcon) child; - if (mAllowHardwareLayerCreation) { - pagedViewIcon.disableCache(); - } - mHolographicChildren.addView(pagedViewIcon.getHolographicOutlineView(), - index, lp); + pagedViewIcon.disableCache(); } return true; } @@ -177,14 +143,12 @@ public class PagedViewCellLayout extends ViewGroup implements Page { @Override public void removeAllViewsOnPage() { mChildren.removeAllViews(); - mHolographicChildren.removeAllViews(); destroyHardwareLayers(); } @Override public void removeViewOnPageAt(int index) { mChildren.removeViewAt(index); - mHolographicChildren.removeViewAt(index); } @Override @@ -237,7 +201,6 @@ public class PagedViewCellLayout extends ViewGroup implements Page { mHeightGap = Math.min(mMaxGap,numHeightGaps > 0 ? (vFreeSpace / numHeightGaps) : 0); mChildren.setGap(mWidthGap, mHeightGap); - mHolographicChildren.setGap(mWidthGap, mHeightGap); } else { mWidthGap = mOriginalWidthGap; mHeightGap = mOriginalHeightGap; @@ -317,13 +280,11 @@ public class PagedViewCellLayout extends ViewGroup implements Page { public void enableCenteredContent(boolean enabled) { mChildren.enableCenteredContent(enabled); - mHolographicChildren.enableCenteredContent(enabled); } @Override protected void setChildrenDrawingCacheEnabled(boolean enabled) { mChildren.setChildrenDrawingCacheEnabled(enabled); - mHolographicChildren.setChildrenDrawingCacheEnabled(enabled); } public void setCellCount(int xCount, int yCount) { @@ -336,7 +297,6 @@ public class PagedViewCellLayout extends ViewGroup implements Page { mWidthGap = widthGap; mHeightGap = heightGap; mChildren.setGap(widthGap, heightGap); - mHolographicChildren.setGap(widthGap, heightGap); } public int[] getCellCountForDimensions(int width, int height) { diff --git a/src/com/android/launcher2/PagedViewCellLayoutChildren.java b/src/com/android/launcher2/PagedViewCellLayoutChildren.java index 0907c6058..eaef682bb 100644 --- a/src/com/android/launcher2/PagedViewCellLayoutChildren.java +++ b/src/com/android/launcher2/PagedViewCellLayoutChildren.java @@ -142,14 +142,10 @@ public class PagedViewCellLayoutChildren extends ViewGroup { } void destroyHardwareLayer() { - if (getLayerType() != LAYER_TYPE_NONE) { - setLayerType(LAYER_TYPE_NONE, null); - } + setLayerType(LAYER_TYPE_NONE, null); } void createHardwareLayer() { - if (getLayerType() != LAYER_TYPE_HARDWARE) { - setLayerType(LAYER_TYPE_HARDWARE, null); - } + setLayerType(LAYER_TYPE_HARDWARE, null); } public void enableCenteredContent(boolean enabled) { diff --git a/src/com/android/launcher2/PagedViewGridLayout.java b/src/com/android/launcher2/PagedViewGridLayout.java index 4131d8b64..93626f09b 100644 --- a/src/com/android/launcher2/PagedViewGridLayout.java +++ b/src/com/android/launcher2/PagedViewGridLayout.java @@ -40,6 +40,7 @@ public class PagedViewGridLayout extends GridLayout implements Page { int getCellCountX() { return mCellCountX; } + int getCellCountY() { return mCellCountY; } @@ -69,27 +70,18 @@ public class PagedViewGridLayout extends GridLayout implements Page { return result; } - @Override - protected boolean onSetAlpha(int alpha) { - return true; - } - - @Override - public void setAlpha(float alpha) { - setChildrenAlpha(alpha); - super.setAlpha(alpha); + void destroyHardwareLayer() { + setLayerType(LAYER_TYPE_NONE, null); } - private void setChildrenAlpha(float alpha) { - final int childCount = getChildCount(); - for (int i = 0; i < childCount; i++) { - getChildAt(i).setAlpha(alpha); - } + void createHardwareLayer() { + setLayerType(LAYER_TYPE_HARDWARE, null); } @Override public void removeAllViewsOnPage() { removeAllViews(); + destroyHardwareLayer(); } @Override |