From e22a8e9d3eafe569fe0f4d284c77af08c6e2fe28 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Fri, 12 Nov 2010 13:40:58 -0800 Subject: Minor fixes to Launcher - Adding checks to prevent multiple onSetAlpha's to be called (especially now that we are using display lists) - Removing an old change to keep artificially make the last page wider - Fixing issue where you could click on an item in the paged view while the page it was on is being faded out Change-Id: I9b194565602b5200c0688da2caec9c3c829b3bb0 --- res/values/strings.xml | 10 ++++-- src/com/android/launcher2/BubbleTextView.java | 9 +++-- src/com/android/launcher2/CustomizePagedView.java | 42 ++++++++--------------- src/com/android/launcher2/PagedView.java | 2 +- src/com/android/launcher2/PagedViewIcon.java | 12 ++++--- 5 files changed, 37 insertions(+), 38 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index f26dfc855..a8a996935 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -79,9 +79,13 @@ %1$s (%2$d x %3$d) - - Could not install clipboard item - + + Could not drop item onto this homescreen + Select widget to create diff --git a/src/com/android/launcher2/BubbleTextView.java b/src/com/android/launcher2/BubbleTextView.java index 076f574de..f4a3d4499 100644 --- a/src/com/android/launcher2/BubbleTextView.java +++ b/src/com/android/launcher2/BubbleTextView.java @@ -39,6 +39,7 @@ public class BubbleTextView extends TextView { private final RectF mRect = new RectF(); private Paint mPaint; + private int mPrevAlpha = -1; private boolean mBackgroundSizeChanged; private Drawable mBackground; @@ -147,7 +148,11 @@ public class BubbleTextView extends TextView { @Override protected boolean onSetAlpha(int alpha) { - mPaint.setAlpha(alpha); - return super.onSetAlpha(alpha); + if (mPrevAlpha != alpha) { + mPrevAlpha = alpha; + mPaint.setAlpha(alpha); + super.onSetAlpha(alpha); + } + return true; } } diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java index 1763a00f6..a0e3528ec 100644 --- a/src/com/android/launcher2/CustomizePagedView.java +++ b/src/com/android/launcher2/CustomizePagedView.java @@ -303,9 +303,10 @@ public class CustomizePagedView extends PagedView @Override public void onClick(View v) { - if (!v.isInTouchMode()) { - return; - } + // Return early if this is not initiated from a touch + if (!v.isInTouchMode()) return; + // Return early if we are still animating the pages + if (mNextPage == INVALID_PAGE) return; // On certain pages, we allow single tap to mark items as selected so that they can be // dropped onto the mini workspaces @@ -368,9 +369,10 @@ public class CustomizePagedView extends PagedView @Override public boolean onLongClick(View v) { - if (!v.isInTouchMode()) { - return false; - } + // Return early if this is not initiated from a touch + if (!v.isInTouchMode()) return false; + // Return early if we are still animating the pages + if (mNextPage == INVALID_PAGE) return false; // End the current choice mode before we start dragging anything if (isChoiceMode(CHOICE_MODE_SINGLE)) { @@ -604,17 +606,9 @@ public class CustomizePagedView extends PagedView layout.setPadding(mPageLayoutPaddingLeft, mPageLayoutPaddingTop, mPageLayoutPaddingRight, mPageLayoutPaddingBottom); - // Temporary change to prevent the last page from being too small (and items bleeding - // onto it). We can remove this once we properly fix the fading algorithm - if (i < numPages - 1) { - addView(layout, new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.WRAP_CONTENT, - LinearLayout.LayoutParams.MATCH_PARENT)); - } else { - addView(layout, new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, - LinearLayout.LayoutParams.MATCH_PARENT)); - } + addView(layout, new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.WRAP_CONTENT, + LinearLayout.LayoutParams.MATCH_PARENT)); } } @@ -665,17 +659,9 @@ public class CustomizePagedView extends PagedView layout.setPadding(mPageLayoutPaddingLeft, mPageLayoutPaddingTop, mPageLayoutPaddingRight, mPageLayoutPaddingBottom); - // Temporary change to prevent the last page from being too small (and items bleeding - // onto it). We can remove this once we properly fix the fading algorithm - if (i < numPages - 1) { - addView(layout, new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.WRAP_CONTENT, - LinearLayout.LayoutParams.MATCH_PARENT)); - } else { - addView(layout, new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, - LinearLayout.LayoutParams.MATCH_PARENT)); - } + addView(layout, new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.WRAP_CONTENT, + LinearLayout.LayoutParams.MATCH_PARENT)); } } diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java index 109696c0a..caa1e1298 100644 --- a/src/com/android/launcher2/PagedView.java +++ b/src/com/android/launcher2/PagedView.java @@ -57,7 +57,7 @@ public abstract class PagedView extends ViewGroup { // The min drag distance to trigger a page shift (regardless of velocity) private static final int MIN_LENGTH_FOR_MOVE = 200; - private static final int PAGE_SNAP_ANIMATION_DURATION = 1000; + private static final int PAGE_SNAP_ANIMATION_DURATION = 750; protected static final float NANOTIME_DIV = 1000000000.0f; // the velocity at which a fling gesture will cause us to snap to the next page diff --git a/src/com/android/launcher2/PagedViewIcon.java b/src/com/android/launcher2/PagedViewIcon.java index 50ba8d459..b9b9b377e 100644 --- a/src/com/android/launcher2/PagedViewIcon.java +++ b/src/com/android/launcher2/PagedViewIcon.java @@ -52,7 +52,7 @@ public class PagedViewIcon extends TextView implements Checkable { private Object mIconCacheKey; private PagedViewIconCache mIconCache; - private int mAlpha; + private int mAlpha = -1; private int mHolographicAlpha; private boolean mIsChecked; @@ -162,9 +162,13 @@ public class PagedViewIcon extends TextView implements Checkable { public void setAlpha(float alpha) { final float viewAlpha = sHolographicOutlineHelper.viewAlphaInterpolator(alpha); final float holographicAlpha = sHolographicOutlineHelper.highlightAlphaInterpolator(alpha); - mAlpha = (int) (viewAlpha * 255); - mHolographicAlpha = (int) (holographicAlpha * 255); - super.setAlpha(viewAlpha); + int newViewAlpha = (int) (viewAlpha * 255); + int newHolographicAlpha = (int) (holographicAlpha * 255); + if ((mAlpha != newViewAlpha) || (mHolographicAlpha != newHolographicAlpha)) { + mAlpha = newViewAlpha; + mHolographicAlpha = newHolographicAlpha; + super.setAlpha(viewAlpha); + } } public void invalidateCheckedImage() { -- cgit v1.2.3