Fixing issue where holographic icons could get out of sync in AllApps (when number of pages changes).

Change-Id: I1a63d4837c5b726a90229430f5fc698aa1db5550
This commit is contained in:
Winson Chung
2011-05-17 16:24:49 -07:00
parent 2801cafe62
commit 6a70e9fc3c
6 changed files with 60 additions and 29 deletions

View File

@@ -153,16 +153,29 @@ public class PagedViewIcon extends CachedTextView implements Checkable {
return false;
}
public void loadHolographicIcon() {
if (mHolographicOutline == null) {
mHolographicOutline = mIconCache.getOutline(mIconCacheKey);
if (!queueHolographicOutlineCreation()) {
getHolographicOutlineView().invalidate();
}
}
}
public void clearHolographicIcon() {
mHolographicOutline = null;
getHolographicOutlineView().invalidate();
}
public void applyFromApplicationInfo(ApplicationInfo info, PagedViewIconCache cache,
boolean scaleUp, boolean createHolographicOutlines) {
mIconCache = cache;
mIconCacheKey = new PagedViewIconCache.Key(info);
mIcon = info.iconBitmap;
setCompoundDrawablesWithIntrinsicBounds(null, new FastBitmapDrawable(mIcon), null, null);
setText(info.title);
setTag(info);
if (createHolographicOutlines) {
mIconCache = cache;
mIconCacheKey = new PagedViewIconCache.Key(info);
mHolographicOutline = mIconCache.getOutline(mIconCacheKey);
if (!queueHolographicOutlineCreation()) {
getHolographicOutlineView().invalidate();
@@ -217,13 +230,7 @@ public class PagedViewIcon extends CachedTextView implements Checkable {
Bitmap overlay = null;
// draw any blended overlays
if (mCheckedOutline == null) {
if (canvas.isHardwareAccelerated() && mHolographicOutline != null
&& mHolographicAlpha > 0) {
mPaint.setAlpha(mHolographicAlpha);
overlay = mHolographicOutline;
}
} else {
if (mCheckedOutline != null) {
mPaint.setAlpha(255);
overlay = mCheckedOutline;
}