Skip to content

Commit d982b58

Browse files
George MountAndroid (Google) Code Review
authored andcommitted
Merge "Fix ChangeTransform works only once on a View." into lmp-dev
2 parents 7fe9552 + 24314e7 commit d982b58

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

core/java/android/transition/ChangeTransform.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,8 @@ public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues
228228
}
229229

230230
// Next handle the normal matrix transform:
231-
ObjectAnimator transformAnimator = createTransformAnimator(startValues, endValues);
231+
ObjectAnimator transformAnimator = createTransformAnimator(startValues, endValues,
232+
handleParentChange);
232233

233234
if (handleParentChange && transformAnimator != null && mUseOverlay) {
234235
createGhostView(sceneRoot, startValues, endValues);
@@ -238,7 +239,7 @@ public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues
238239
}
239240

240241
private ObjectAnimator createTransformAnimator(TransitionValues startValues,
241-
TransitionValues endValues) {
242+
TransitionValues endValues, final boolean handleParentChange) {
242243
Matrix startMatrix = (Matrix) startValues.values.get(PROPNAME_MATRIX);
243244
Matrix endMatrix = (Matrix) endValues.values.get(PROPNAME_MATRIX);
244245

@@ -277,7 +278,12 @@ public void onAnimationCancel(Animator animation) {
277278
@Override
278279
public void onAnimationEnd(Animator animation) {
279280
if (!mIsCanceled) {
280-
setCurrentMatrix(finalEndMatrix);
281+
if (handleParentChange && mUseOverlay) {
282+
setCurrentMatrix(finalEndMatrix);
283+
} else {
284+
view.setTagInternal(R.id.transitionTransform, null);
285+
view.setTagInternal(R.id.parentMatrix, null);
286+
}
281287
}
282288
ANIMATION_MATRIX_PROPERTY.set(view, null);
283289
transforms.restore(view);

0 commit comments

Comments
 (0)