32 lines
1.7 KiB
Java
32 lines
1.7 KiB
Java
package androidx.constraintlayout.motion.widget;
|
|
|
|
import androidx.constraintlayout.motion.widget.MotionScene;
|
|
import androidx.constraintlayout.widget.ConstraintSet;
|
|
public class TransitionBuilder {
|
|
private static final String TAG = "TransitionBuilder";
|
|
|
|
public static MotionScene.Transition buildTransition(MotionScene motionScene, int i, int i2, ConstraintSet constraintSet, int i3, ConstraintSet constraintSet2) {
|
|
MotionScene.Transition transition = new MotionScene.Transition(i, motionScene, i2, i3);
|
|
updateConstraintSetInMotionScene(motionScene, transition, constraintSet, constraintSet2);
|
|
return transition;
|
|
}
|
|
|
|
private static void updateConstraintSetInMotionScene(MotionScene motionScene, MotionScene.Transition transition, ConstraintSet constraintSet, ConstraintSet constraintSet2) {
|
|
int startConstraintSetId = transition.getStartConstraintSetId();
|
|
int endConstraintSetId = transition.getEndConstraintSetId();
|
|
motionScene.setConstraintSet(startConstraintSetId, constraintSet);
|
|
motionScene.setConstraintSet(endConstraintSetId, constraintSet2);
|
|
}
|
|
|
|
public static void validate(MotionLayout motionLayout) {
|
|
MotionScene motionScene = motionLayout.mScene;
|
|
if (motionScene == null) {
|
|
throw new RuntimeException("Invalid motion layout. Layout missing Motion Scene.");
|
|
} else if (!motionScene.validateLayout(motionLayout)) {
|
|
throw new RuntimeException("MotionLayout doesn't have the right motion scene.");
|
|
} else if (motionScene.mCurrentTransition == null || motionScene.getDefinedTransitions().isEmpty()) {
|
|
throw new RuntimeException("Invalid motion layout. Motion Scene doesn't have any transition.");
|
|
}
|
|
}
|
|
}
|