diff options
author | Michael Jurka <mikejurka@google.com> | 2011-02-01 15:05:06 -0800 |
---|---|---|
committer | Michael Jurka <mikejurka@google.com> | 2011-02-01 15:35:32 -0800 |
commit | bdb5c5342adc550559fd723af461e53248f2fba8 (patch) | |
tree | 63873a289d28ccd9d23b32a785f8f2b22d2e61b0 /src/com/android/launcher2/BubbleTextView.java | |
parent | bfadaad3522dc6b1cf3c95c08031ae088a3f610a (diff) | |
download | android_packages_apps_Trebuchet-bdb5c5342adc550559fd723af461e53248f2fba8.tar.gz android_packages_apps_Trebuchet-bdb5c5342adc550559fd723af461e53248f2fba8.tar.bz2 android_packages_apps_Trebuchet-bdb5c5342adc550559fd723af461e53248f2fba8.zip |
Turning on hardware layers for the workspace
- Obsoletes need for CachedViewGroup and CachedTextView on workspace as well
Bug #3413433
Diffstat (limited to 'src/com/android/launcher2/BubbleTextView.java')
-rw-r--r-- | src/com/android/launcher2/BubbleTextView.java | 65 |
1 files changed, 27 insertions, 38 deletions
diff --git a/src/com/android/launcher2/BubbleTextView.java b/src/com/android/launcher2/BubbleTextView.java index f3aa3426d..a842d78ac 100644 --- a/src/com/android/launcher2/BubbleTextView.java +++ b/src/com/android/launcher2/BubbleTextView.java @@ -31,13 +31,14 @@ import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; +import android.widget.TextView; /** * TextView that draws a bubble behind the text. We cannot use a LineBackgroundSpan * because we want to make the bubble taller than the text and TextView's clip is * too aggressive. */ -public class BubbleTextView extends CachedTextView implements VisibilityChangedBroadcaster { +public class BubbleTextView extends TextView implements VisibilityChangedBroadcaster { static final float CORNER_RADIUS = 4.0f; static final float SHADOW_LARGE_RADIUS = 4.0f; static final float SHADOW_SMALL_RADIUS = 1.75f; @@ -98,19 +99,6 @@ public class BubbleTextView extends CachedTextView implements VisibilityChangedB mPressedGlowColor = res.getColor(R.color.workspace_item_pressed_glow_color); } - protected int getCacheTopPadding() { - return (int) PADDING_V; - } - protected int getCacheBottomPadding() { - return (int) (PADDING_V + SHADOW_LARGE_RADIUS + SHADOW_Y_OFFSET); - } - protected int getCacheLeftPadding() { - return (int) (PADDING_H + SHADOW_LARGE_RADIUS); - } - protected int getCacheRightPadding() { - return (int) (PADDING_H + SHADOW_LARGE_RADIUS); - } - public void applyFromShortcutInfo(ShortcutInfo info, IconCache iconCache) { Bitmap b = info.getIcon(iconCache); @@ -269,33 +257,34 @@ public class BubbleTextView extends CachedTextView implements VisibilityChangedB mScrollX - padding, mScrollY - padding, mTempPaint); canvas.restore(); } - if (isBuildingCache()) { - // We enhance the shadow by drawing the shadow twice - this.setShadowLayer(SHADOW_LARGE_RADIUS, 0.0f, SHADOW_Y_OFFSET, SHADOW_LARGE_COLOUR); - super.draw(canvas); - this.setShadowLayer(SHADOW_SMALL_RADIUS, 0.0f, 0.0f, SHADOW_SMALL_COLOUR); - super.draw(canvas); - } else { - final Drawable background = mBackground; - if (background != null) { - final int scrollX = mScrollX; - final int scrollY = mScrollY; - - if (mBackgroundSizeChanged) { - background.setBounds(0, 0, mRight - mLeft, mBottom - mTop); - mBackgroundSizeChanged = false; - } - if ((scrollX | scrollY) == 0) { - background.draw(canvas); - } else { - canvas.translate(scrollX, scrollY); - background.draw(canvas); - canvas.translate(-scrollX, -scrollY); - } + final Drawable background = mBackground; + if (background != null) { + final int scrollX = mScrollX; + final int scrollY = mScrollY; + + if (mBackgroundSizeChanged) { + background.setBounds(0, 0, mRight - mLeft, mBottom - mTop); + mBackgroundSizeChanged = false; + } + + if ((scrollX | scrollY) == 0) { + background.draw(canvas); + } else { + canvas.translate(scrollX, scrollY); + background.draw(canvas); + canvas.translate(-scrollX, -scrollY); } - super.draw(canvas); } + // We enhance the shadow by drawing the shadow twice + setShadowLayer(SHADOW_LARGE_RADIUS, 0.0f, SHADOW_Y_OFFSET, SHADOW_LARGE_COLOUR); + super.draw(canvas); + canvas.save(Canvas.CLIP_SAVE_FLAG); + canvas.clipRect(mScrollX, mScrollY + getExtendedPaddingTop(), mScrollX + getWidth(), + mScrollY + getHeight(), Region.Op.REPLACE); + setShadowLayer(SHADOW_SMALL_RADIUS, 0.0f, 0.0f, SHADOW_SMALL_COLOUR); + super.draw(canvas); + canvas.restore(); } @Override |