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
This commit is contained in:
Winson Chung
2010-11-12 13:40:58 -08:00
parent cbbaf9862a
commit e22a8e9d3e
5 changed files with 37 additions and 38 deletions

View File

@@ -79,9 +79,13 @@
<!-- External-drop widget pick label format string [CHAR_LIMIT=25] -->
<string name="external_drop_widget_pick_format" translatable="false">%1$s (%2$d x %3$d)</string>
<!-- External-drop widget error string -->
<string name="external_drop_widget_error">Could not install clipboard item</string>
<!-- External-drop widget pick title -->
<!-- External-drop widget error string. This is the error that is shown
when you drag and item into the homescreen and it is unable to fit,
or an error is encountered. [CHAR_LIMIT=50] -->
<string name="external_drop_widget_error">Could not drop item onto this homescreen</string>
<!-- External-drop widget pick title. This is shown as the title of the
dialog which allows you to pick which widgets to handle a particular
drop if there are multiple choices. [CHAR_LIMIT=35] -->
<string name="external_drop_widget_pick_title">Select widget to create</string>
<!-- Folders -->

View File

@@ -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;
}
}

View File

@@ -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));
}
}

View File

@@ -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

View File

@@ -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() {