package com.github.florent37.expectanim.core; import android.support.annotation.IntDef; import android.view.Gravity; import android.view.View; import com.github.florent37.expectanim.core.alpha.AlphaAnimExpectation; import com.github.florent37.expectanim.core.alpha.AlphaAnimExpectationValue; import com.github.florent37.expectanim.core.anim3d.CameraDistanceExpectation; import com.github.florent37.expectanim.core.anim3d.CameraDistanceExpectationValue; import com.github.florent37.expectanim.core.custom.CustomAnimExpectation; import com.github.florent37.expectanim.core.custom.TextColorAnimExpectation; import com.github.florent37.expectanim.core.custom.ViewBackgroundAlphaAnimExpectation; import com.github.florent37.expectanim.core.position.PositionAnimExpectation; import com.github.florent37.expectanim.core.position.PositionAnimExpectationAboveOf; import com.github.florent37.expectanim.core.position.PositionAnimExpectationAlignBottom; import com.github.florent37.expectanim.core.position.PositionAnimExpectationAlignLeft; import com.github.florent37.expectanim.core.position.PositionAnimExpectationAlignRight; import com.github.florent37.expectanim.core.position.PositionAnimExpectationAlignTop; import com.github.florent37.expectanim.core.position.PositionAnimExpectationBelowOf; import com.github.florent37.expectanim.core.position.PositionAnimExpectationBottomOfParent; import com.github.florent37.expectanim.core.position.PositionAnimExpectationCenterBetweenViewAndParent; import com.github.florent37.expectanim.core.position.PositionAnimExpectationCenterBetweenViews; import com.github.florent37.expectanim.core.position.PositionAnimExpectationCenterInParent; import com.github.florent37.expectanim.core.position.PositionAnimExpectationLeftOf; import com.github.florent37.expectanim.core.position.PositionAnimExpectationLeftOfParent; import com.github.florent37.expectanim.core.position.PositionAnimExpectationOriginal; import com.github.florent37.expectanim.core.position.PositionAnimExpectationOutOfScreen; import com.github.florent37.expectanim.core.position.PositionAnimExpectationRightOf; import com.github.florent37.expectanim.core.position.PositionAnimExpectationRightOfParent; import com.github.florent37.expectanim.core.position.PositionAnimExpectationSameCenterAs; import com.github.florent37.expectanim.core.position.PositionAnimExpectationTopOfParent; import com.github.florent37.expectanim.core.rotation.RotationExpectation; import com.github.florent37.expectanim.core.rotation.RotationExpectationOriginal; import com.github.florent37.expectanim.core.rotation.RotationExpectationValue; import com.github.florent37.expectanim.core.rotation.RotationFlipExpectationValue; import com.github.florent37.expectanim.core.scale.ScaleAnimExpectation; import com.github.florent37.expectanim.core.scale.ScaleAnimExpectationHeight; import com.github.florent37.expectanim.core.scale.ScaleAnimExpectationOriginalScale; import com.github.florent37.expectanim.core.scale.ScaleAnimExpectationSameHeightAs; import com.github.florent37.expectanim.core.scale.ScaleAnimExpectationSameScaleAs; import com.github.florent37.expectanim.core.scale.ScaleAnimExpectationSameWidthAs; import com.github.florent37.expectanim.core.scale.ScaleAnimExpectationValues; import com.github.florent37.expectanim.core.scale.ScaleAnimExpectationWidth; /** * Created by florentchampigny on 20/02/2017. */ public class Expectations { //region position public static PositionAnimExpectation toRightOf(View view) { return new PositionAnimExpectationRightOf(view); } public static PositionAnimExpectation toLeftOf(View view) { return new PositionAnimExpectationLeftOf(view); } public static PositionAnimExpectation belowOf(View view) { return new PositionAnimExpectationBelowOf(view); } public static PositionAnimExpectation aboveOf(View view) { return new PositionAnimExpectationAboveOf(view); } public static PositionAnimExpectation atItsOriginalPosition() { return new PositionAnimExpectationOriginal(); } public static PositionAnimExpectation sameCenterAs(View view, boolean horizontal, boolean vertical) { return new PositionAnimExpectationSameCenterAs(view, horizontal, vertical); } public static PositionAnimExpectation sameCenterHorizontalAs(View view) { return sameCenterAs(view, true, false); } public static PositionAnimExpectation sameCenterVerticalAs(View view) { return sameCenterAs(view, false, true); } public static PositionAnimExpectation centerInParent(boolean horizontal, boolean vertical) { return new PositionAnimExpectationCenterInParent(horizontal, vertical); } public static PositionAnimExpectation centerVerticalInParent() { return centerInParent(false, true); } public static PositionAnimExpectation centerHorizontalInParent() { return centerInParent(true, false); } public static PositionAnimExpectation outOfScreen(@GravityIntDef int... gravities) { return new PositionAnimExpectationOutOfScreen(gravities); } public static PositionAnimExpectation centerBetweenViews(View view1, View view2, boolean horizontal, boolean vertical) { return new PositionAnimExpectationCenterBetweenViews(view1, view2, horizontal, vertical); } public static PositionAnimExpectation topOfParent() { return new PositionAnimExpectationTopOfParent(); } public static PositionAnimExpectation rightOfParent() { return new PositionAnimExpectationRightOfParent(); } public static PositionAnimExpectation bottomOfParent() { return new PositionAnimExpectationBottomOfParent(); } public static PositionAnimExpectation leftOfParent() { return new PositionAnimExpectationLeftOfParent(); } public static PositionAnimExpectation centerBetweenViewAndParent(View otherView, boolean horizontal, boolean vertical, boolean toBeOnRight, boolean toBeOnBottom) { return new PositionAnimExpectationCenterBetweenViewAndParent(otherView, horizontal, vertical, toBeOnRight, toBeOnBottom); } public static PositionAnimExpectation alignBottom(View otherView) { return new PositionAnimExpectationAlignBottom(otherView); } public static PositionAnimExpectation alignTop(View otherView) { return new PositionAnimExpectationAlignTop(otherView); } public static PositionAnimExpectation alignLeft(View otherView) { return new PositionAnimExpectationAlignLeft(otherView); } public static PositionAnimExpectation alignRight(View otherView) { return new PositionAnimExpectationAlignRight(otherView); } @IntDef(value = {Gravity.LEFT, Gravity.RIGHT, Gravity.END, Gravity.START, Gravity.TOP, Gravity.BOTTOM}) @interface GravityIntDef { } //endregion //region alpha public static AlphaAnimExpectation alpha(float alpha) { return new AlphaAnimExpectationValue(alpha); } public static AlphaAnimExpectation sameAlphaAs(View otherView) { return new AlphaAnimExpectationValue(otherView.getAlpha()); } public static AlphaAnimExpectation visible() { return new AlphaAnimExpectationValue(1f); } public static AlphaAnimExpectation invisible() { return new AlphaAnimExpectationValue(0f); } //endregion //region scale @IntDef(value = {Gravity.TOP, Gravity.BOTTOM, Gravity.CENTER, Gravity.CENTER_VERTICAL}) public @interface GravityScaleVerticalIntDef { } @IntDef(value = {Gravity.LEFT, Gravity.RIGHT, Gravity.END, Gravity.START, Gravity.CENTER, Gravity.CENTER_HORIZONTAL}) public @interface GravityScaleHorizontalIntDef { } public static ScaleAnimExpectation atItsOriginalScale() { return new ScaleAnimExpectationOriginalScale(); } public static ScaleAnimExpectation scale(float scaleX, float scaleY, @GravityScaleHorizontalIntDef int gravityHorizontal, @GravityScaleVerticalIntDef int gravityVertical) { return new ScaleAnimExpectationValues(scaleX, scaleY, gravityHorizontal, gravityVertical); } public static ScaleAnimExpectation scale(float scaleX, float scaleY) { return new ScaleAnimExpectationValues(scaleX, scaleY, null, null); } public static ScaleAnimExpectation height(int height, @GravityScaleHorizontalIntDef int gravityHorizontal, @GravityScaleVerticalIntDef int gravityVertical) { return new ScaleAnimExpectationHeight(height, gravityHorizontal, gravityVertical); } public static ScaleAnimExpectation height(int height) { return new ScaleAnimExpectationHeight(height, null, null); } public static ScaleAnimExpectation width(int width, @GravityScaleHorizontalIntDef int gravityHorizontal, @GravityScaleVerticalIntDef int gravityVertical) { return new ScaleAnimExpectationWidth(width, gravityHorizontal, gravityVertical); } public static ScaleAnimExpectation width(int width) { return new ScaleAnimExpectationWidth(width, null, null); } public static ScaleAnimExpectation sameScaleAs(View otherView) { return new ScaleAnimExpectationSameScaleAs(otherView); } public static ScaleAnimExpectation sameWidthAs(View otherView) { return new ScaleAnimExpectationSameWidthAs(otherView, null, null); } public static ScaleAnimExpectation sameHeightAs(View otherView) { return new ScaleAnimExpectationSameHeightAs(otherView, null, null); } //endregion //region custom public static CustomAnimExpectation toHaveTextColor(int textColor) { return new TextColorAnimExpectation(textColor); } public static CustomAnimExpectation toHaveBackgroundAlpha(float alpha) { return new ViewBackgroundAlphaAnimExpectation(alpha); } //endregion //region rotation public static RotationExpectation rotated(float rotation) { return new RotationExpectationValue(rotation); } public static CameraDistanceExpectation withCameraDistance(float cameraDistance) { return new CameraDistanceExpectationValue(cameraDistance); } public static RotationExpectation flippedHorizontally() { return new RotationFlipExpectationValue(0f, 180f); } public static RotationExpectation flippedVertically() { return new RotationFlipExpectationValue(180f, 0f); } public static RotationExpectation flippedHorizontallyAndVertically() { return new RotationFlipExpectationValue(180f, 180f); } public static RotationExpectation vertical(boolean bottomOfViewAtLeft) { if (bottomOfViewAtLeft) { return new RotationExpectationValue(90); } else { return new RotationExpectationValue(270); } } public static RotationExpectation atItsOriginalRotation() { return new RotationExpectationOriginal(); } //endregion }