summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/BubbleTextView.java
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2011-02-16 17:49:14 -0800
committerMichael Jurka <mikejurka@google.com>2011-02-16 17:49:32 -0800
commitddd62e9f3dd21c52dffceef9b168629ebb7f4c03 (patch)
treeaf3d66496e3317722983de4b78d9560861d5da1a /src/com/android/launcher2/BubbleTextView.java
parenta88b213087ea46060bbbebbae52e069b873f3097 (diff)
downloadandroid_packages_apps_Trebuchet-ddd62e9f3dd21c52dffceef9b168629ebb7f4c03.tar.gz
android_packages_apps_Trebuchet-ddd62e9f3dd21c52dffceef9b168629ebb7f4c03.tar.bz2
android_packages_apps_Trebuchet-ddd62e9f3dd21c52dffceef9b168629ebb7f4c03.zip
Improve feedback when launching apps
- Keep "pressed" state until the activity is launched - Properly invalidate icons, which solves issue where the edge of "pressed" blue glow was still being rendered
Diffstat (limited to 'src/com/android/launcher2/BubbleTextView.java')
-rw-r--r--src/com/android/launcher2/BubbleTextView.java29
1 files changed, 24 insertions, 5 deletions
diff --git a/src/com/android/launcher2/BubbleTextView.java b/src/com/android/launcher2/BubbleTextView.java
index ad01fac4f..3ef054637 100644
--- a/src/com/android/launcher2/BubbleTextView.java
+++ b/src/com/android/launcher2/BubbleTextView.java
@@ -66,6 +66,8 @@ public class BubbleTextView extends TextView implements VisibilityChangedBroadca
private boolean mBackgroundSizeChanged;
private Drawable mBackground;
+ private boolean mStayPressed;
+
private VisibilityChangedListener mOnVisibilityChangedListener;
public BubbleTextView(Context context) {
@@ -124,27 +126,37 @@ public class BubbleTextView extends TextView implements VisibilityChangedBroadca
return who == mBackground || super.verifyDrawable(who);
}
+ private void invalidatePressedOrFocusedBackground() {
+ int padding = HolographicOutlineHelper.MAX_OUTER_BLUR_RADIUS / 2;
+ ((View)getParent()).invalidate(getLeft() - padding, getTop() - padding,
+ getRight() + padding, getBottom() + padding);
+ invalidate();
+ }
+
@Override
protected void drawableStateChanged() {
if (isPressed()) {
// In this case, we have already created the pressed outline on ACTION_DOWN,
// so we just need to do an invalidate to trigger draw
if (!mDidInvalidateForPressedState) {
- invalidate();
+ invalidatePressedOrFocusedBackground();
}
} else {
// Otherwise, either clear the pressed/focused background, or create a background
// for the focused state
final boolean backgroundEmptyBefore = mPressedOrFocusedBackground == null;
- mPressedOrFocusedBackground = null;
+ if (!mStayPressed) {
+ mPressedOrFocusedBackground = null;
+ }
if (isFocused()) {
mPressedOrFocusedBackground = createGlowingOutline(
mTempCanvas, mFocusedGlowColor, mFocusedOutlineColor);
- invalidate();
+ mStayPressed = false;
+ invalidatePressedOrFocusedBackground();
}
final boolean backgroundEmptyNow = mPressedOrFocusedBackground == null;
if (!backgroundEmptyBefore && backgroundEmptyNow) {
- invalidate();
+ invalidatePressedOrFocusedBackground();
}
}
@@ -244,9 +256,16 @@ public class BubbleTextView extends TextView implements VisibilityChangedBroadca
super.onVisibilityChanged(changedView, visibility);
}
+ void setStayPressed(boolean stayPressed) {
+ mStayPressed = stayPressed;
+ if (!stayPressed) {
+ mPressedOrFocusedBackground = null;
+ }
+ invalidatePressedOrFocusedBackground();
+ }
@Override
public void draw(Canvas canvas) {
- if (mPressedOrFocusedBackground != null && (isPressed() || isFocused())) {
+ if (mPressedOrFocusedBackground != null && (isPressed() || isFocused() || mStayPressed)) {
// The blue glow can extend outside of our clip region, so we first temporarily expand
// the canvas's clip region
canvas.save(Canvas.CLIP_SAVE_FLAG);