Fix clone() for Animators with just a 'to' value
Previously, clone() on an Animator with only one value would mistakenly think that the clone had a real starting value (which would end up being 0 in the int and float cases). Fix is to set the 'mHasFirstValue' flag appropriately for the clone, based on the state of the cloned animator. Issue #7106442 ObjectAnimator.clone() does not work properly for single parameter Change-Id: I08bf03b7687a65eb613c1671a58e4cbfae66a30e
This commit is contained in:
@@ -261,7 +261,7 @@ public abstract class Keyframe implements Cloneable {
|
||||
|
||||
@Override
|
||||
public ObjectKeyframe clone() {
|
||||
ObjectKeyframe kfClone = new ObjectKeyframe(getFraction(), mValue);
|
||||
ObjectKeyframe kfClone = new ObjectKeyframe(getFraction(), mHasValue ? mValue : null);
|
||||
kfClone.setInterpolator(getInterpolator());
|
||||
return kfClone;
|
||||
}
|
||||
@@ -306,7 +306,9 @@ public abstract class Keyframe implements Cloneable {
|
||||
|
||||
@Override
|
||||
public IntKeyframe clone() {
|
||||
IntKeyframe kfClone = new IntKeyframe(getFraction(), mValue);
|
||||
IntKeyframe kfClone = mHasValue ?
|
||||
new IntKeyframe(getFraction(), mValue) :
|
||||
new IntKeyframe(getFraction());
|
||||
kfClone.setInterpolator(getInterpolator());
|
||||
return kfClone;
|
||||
}
|
||||
@@ -350,7 +352,9 @@ public abstract class Keyframe implements Cloneable {
|
||||
|
||||
@Override
|
||||
public FloatKeyframe clone() {
|
||||
FloatKeyframe kfClone = new FloatKeyframe(getFraction(), mValue);
|
||||
FloatKeyframe kfClone = mHasValue ?
|
||||
new FloatKeyframe(getFraction(), mValue) :
|
||||
new FloatKeyframe(getFraction());
|
||||
kfClone.setInterpolator(getInterpolator());
|
||||
return kfClone;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user