Loading graphics/java/android/graphics/drawable/RippleBackground.java +13 −11 Original line number Diff line number Diff line Loading @@ -63,15 +63,21 @@ class RippleBackground extends RippleComponent { } } public void setState(boolean focused, boolean hovered, boolean animateChanged) { public void setState(boolean focused, boolean hovered, boolean pressed) { if (!mFocused) { focused = focused && !pressed; } if (!mHovered) { hovered = hovered && !pressed; } if (mHovered != hovered || mFocused != focused) { mHovered = hovered; mFocused = focused; onStateChanged(animateChanged); onStateChanged(); } } private void onStateChanged(boolean animateChanged) { private void onStateChanged() { float newOpacity = 0.0f; if (mHovered) newOpacity += .25f; if (mFocused) newOpacity += .75f; Loading @@ -79,14 +85,10 @@ class RippleBackground extends RippleComponent { mAnimator.cancel(); mAnimator = null; } if (animateChanged) { mAnimator = ObjectAnimator.ofFloat(this, OPACITY, newOpacity); mAnimator.setDuration(OPACITY_DURATION); mAnimator.setInterpolator(LINEAR_INTERPOLATOR); mAnimator.start(); } else { mOpacity = newOpacity; } } public void jumpToFinal() { Loading graphics/java/android/graphics/drawable/RippleDrawable.java +7 −4 Original line number Diff line number Diff line Loading @@ -264,7 +264,7 @@ public class RippleDrawable extends LayerDrawable { } setRippleActive(enabled && pressed); setBackgroundActive(hovered, focused); setBackgroundActive(hovered, focused, pressed); return changed; } Loading @@ -280,13 +280,13 @@ public class RippleDrawable extends LayerDrawable { } } private void setBackgroundActive(boolean hovered, boolean focused) { private void setBackgroundActive(boolean hovered, boolean focused, boolean pressed) { if (mBackground == null && (hovered || focused)) { mBackground = new RippleBackground(this, mHotspotBounds, isBounded()); mBackground.setup(mState.mMaxRadius, mDensity); } if (mBackground != null) { mBackground.setState(focused, hovered, true); mBackground.setState(focused, hovered, pressed); } } Loading Loading @@ -878,7 +878,10 @@ public class RippleDrawable extends LayerDrawable { // Grab the color for the current state and cut the alpha channel in // half so that the ripple and background together yield full alpha. final int color = mState.mColor.getColorForState(getState(), Color.BLACK); int color = mState.mColor.getColorForState(getState(), Color.BLACK); if (Color.alpha(color) > 128) { color = (color & 0x00FFFFFF) | 0x80000000; } final Paint p = mRipplePaint; if (mMaskColorFilter != null) { Loading graphics/java/android/graphics/drawable/RippleForeground.java +1 −0 Original line number Diff line number Diff line Loading @@ -289,6 +289,7 @@ class RippleForeground extends RippleComponent { opacity.setInterpolator(LINEAR_INTERPOLATOR); opacity.addListener(mAnimationListener); opacity.setStartDelay(computeFadeOutDelay()); opacity.setStartValue(mOwner.getRipplePaint().getAlpha()); mPendingHwAnimators.add(opacity); invalidateSelf(); } Loading Loading
graphics/java/android/graphics/drawable/RippleBackground.java +13 −11 Original line number Diff line number Diff line Loading @@ -63,15 +63,21 @@ class RippleBackground extends RippleComponent { } } public void setState(boolean focused, boolean hovered, boolean animateChanged) { public void setState(boolean focused, boolean hovered, boolean pressed) { if (!mFocused) { focused = focused && !pressed; } if (!mHovered) { hovered = hovered && !pressed; } if (mHovered != hovered || mFocused != focused) { mHovered = hovered; mFocused = focused; onStateChanged(animateChanged); onStateChanged(); } } private void onStateChanged(boolean animateChanged) { private void onStateChanged() { float newOpacity = 0.0f; if (mHovered) newOpacity += .25f; if (mFocused) newOpacity += .75f; Loading @@ -79,14 +85,10 @@ class RippleBackground extends RippleComponent { mAnimator.cancel(); mAnimator = null; } if (animateChanged) { mAnimator = ObjectAnimator.ofFloat(this, OPACITY, newOpacity); mAnimator.setDuration(OPACITY_DURATION); mAnimator.setInterpolator(LINEAR_INTERPOLATOR); mAnimator.start(); } else { mOpacity = newOpacity; } } public void jumpToFinal() { Loading
graphics/java/android/graphics/drawable/RippleDrawable.java +7 −4 Original line number Diff line number Diff line Loading @@ -264,7 +264,7 @@ public class RippleDrawable extends LayerDrawable { } setRippleActive(enabled && pressed); setBackgroundActive(hovered, focused); setBackgroundActive(hovered, focused, pressed); return changed; } Loading @@ -280,13 +280,13 @@ public class RippleDrawable extends LayerDrawable { } } private void setBackgroundActive(boolean hovered, boolean focused) { private void setBackgroundActive(boolean hovered, boolean focused, boolean pressed) { if (mBackground == null && (hovered || focused)) { mBackground = new RippleBackground(this, mHotspotBounds, isBounded()); mBackground.setup(mState.mMaxRadius, mDensity); } if (mBackground != null) { mBackground.setState(focused, hovered, true); mBackground.setState(focused, hovered, pressed); } } Loading Loading @@ -878,7 +878,10 @@ public class RippleDrawable extends LayerDrawable { // Grab the color for the current state and cut the alpha channel in // half so that the ripple and background together yield full alpha. final int color = mState.mColor.getColorForState(getState(), Color.BLACK); int color = mState.mColor.getColorForState(getState(), Color.BLACK); if (Color.alpha(color) > 128) { color = (color & 0x00FFFFFF) | 0x80000000; } final Paint p = mRipplePaint; if (mMaskColorFilter != null) { Loading
graphics/java/android/graphics/drawable/RippleForeground.java +1 −0 Original line number Diff line number Diff line Loading @@ -289,6 +289,7 @@ class RippleForeground extends RippleComponent { opacity.setInterpolator(LINEAR_INTERPOLATOR); opacity.addListener(mAnimationListener); opacity.setStartDelay(computeFadeOutDelay()); opacity.setStartValue(mOwner.getRipplePaint().getAlpha()); mPendingHwAnimators.add(opacity); invalidateSelf(); } Loading