package com.reactnativenavigation.views.sharedElementTransition; import com.reactnativenavigation.params.PathInterpolationParams; import com.reactnativenavigation.params.parsers.SharedElementTransitionParams; class ReversedAnimatorValuesResolver extends AnimatorValuesResolver { ReversedAnimatorValuesResolver(SharedElementTransition from, SharedElementTransition to, SharedElementTransitionParams params) { super(from, to, params); } @Override protected void calculateControlPoints(PathInterpolationParams interpolation) { controlX1 = dx * interpolation.p1.x; controlY1 = dy * interpolation.p1.y; controlX2 = dx * interpolation.p2.x; controlY2 = dy * interpolation.p2.y; } @Override protected float calculateEndScaleY(SharedElementTransition from, SharedElementTransition to) { return ((float) to.getHeight()) / from.getHeight(); } @Override protected float calculateStartScaleY(SharedElementTransition from, SharedElementTransition to) { return 1; } @Override protected float calculateEndScaleX(SharedElementTransition from, SharedElementTransition to) { return ((float) to.getWidth()) / from.getWidth(); } @Override protected float calculateStartScaleX(SharedElementTransition from, SharedElementTransition to) { return 1; } @Override protected void calculateEndPoint() { endX = dx; endY = dy; } @Override protected void calculateStartPoint() { startX = 0; startY = 0; } @Override protected void calculateDeltas() { dx = toXy.x - fromXy.x; dy = toXy.y - fromXy.y; } }