Merge "Fix ripple radius calculation" into sc-dev
This commit is contained in:
@@ -184,7 +184,6 @@ public class RippleDrawable extends LayerDrawable {
|
|||||||
private PorterDuffColorFilter mMaskColorFilter;
|
private PorterDuffColorFilter mMaskColorFilter;
|
||||||
private PorterDuffColorFilter mFocusColorFilter;
|
private PorterDuffColorFilter mFocusColorFilter;
|
||||||
private boolean mHasValidMask;
|
private boolean mHasValidMask;
|
||||||
private int mComputedRadius = -1;
|
|
||||||
|
|
||||||
/** The current ripple. May be actively animating or pending entry. */
|
/** The current ripple. May be actively animating or pending entry. */
|
||||||
private RippleForeground mRipple;
|
private RippleForeground mRipple;
|
||||||
@@ -390,8 +389,6 @@ public class RippleDrawable extends LayerDrawable {
|
|||||||
if (mRipple != null) {
|
if (mRipple != null) {
|
||||||
mRipple.onBoundsChange();
|
mRipple.onBoundsChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
mComputedRadius = Math.round(computeRadius());
|
|
||||||
invalidateSelf();
|
invalidateSelf();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -750,7 +747,7 @@ public class RippleDrawable extends LayerDrawable {
|
|||||||
if (mBackground != null) {
|
if (mBackground != null) {
|
||||||
mBackground.onHotspotBoundsChanged();
|
mBackground.onHotspotBoundsChanged();
|
||||||
}
|
}
|
||||||
float newRadius = Math.round(computeRadius());
|
float newRadius = Math.round(getComputedRadius());
|
||||||
for (int i = 0; i < mRunningAnimations.size(); i++) {
|
for (int i = 0; i < mRunningAnimations.size(); i++) {
|
||||||
RippleAnimationSession s = mRunningAnimations.get(i);
|
RippleAnimationSession s = mRunningAnimations.get(i);
|
||||||
s.setRadius(newRadius);
|
s.setRadius(newRadius);
|
||||||
@@ -939,14 +936,13 @@ public class RippleDrawable extends LayerDrawable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private float computeRadius() {
|
private float computeRadius() {
|
||||||
Rect b = getDirtyBounds();
|
final float halfWidth = mHotspotBounds.width() / 2.0f;
|
||||||
float radius = (float) Math.sqrt(b.width() * b.width() + b.height() * b.height()) / 2;
|
final float halfHeight = mHotspotBounds.height() / 2.0f;
|
||||||
return radius;
|
return (float) Math.sqrt(halfWidth * halfWidth + halfHeight * halfHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getComputedRadius() {
|
private int getComputedRadius() {
|
||||||
if (mState.mMaxRadius >= 0) return mState.mMaxRadius;
|
if (mState.mMaxRadius >= 0) return mState.mMaxRadius;
|
||||||
if (mComputedRadius >= 0) return mComputedRadius;
|
|
||||||
return (int) computeRadius();
|
return (int) computeRadius();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user