package com.github.florent37.expectanim.core.scale;
import android.support.annotation.Nullable;
import android.view.View;
import com.github.florent37.expectanim.core.AnimExpectation;
import com.github.florent37.expectanim.core.Expectations;
import com.github.florent37.expectanim.core.position.PositionAnimExpectation;
/**
* Created by florentchampigny on 17/02/2017.
*/
public abstract class ScaleAnimExpectation extends AnimExpectation {
protected boolean toDp = false;
protected boolean keepRatio = false;
@Nullable
private Integer gravityHorizontal;
@Nullable
private Integer gravityVertical;
public ScaleAnimExpectation(@Nullable Integer gravityHorizontal, @Nullable Integer gravityVertical) {
if (gravityHorizontal != null) {
this.gravityHorizontal = gravityHorizontal;
}
if (gravityVertical != null) {
this.gravityVertical = gravityVertical;
}
}
protected int dpToPx(float value, View view) {
final int v = (int) PositionAnimExpectation.dpToPx(view.getContext(), value);
toDp = false;
return v;
}
public abstract Float getCalculatedValueScaleX(View viewToMove);
public abstract Float getCalculatedValueScaleY(View viewToMove);
public Integer getGravityHorizontal() {
return gravityHorizontal;
}
public Integer getGravityVertical() {
return gravityVertical;
}
public ScaleAnimExpectation withGravity(@Expectations.GravityScaleHorizontalIntDef @Nullable Integer gravityHorizontal, @Expectations.GravityScaleVerticalIntDef @Nullable Integer gravityVertical) {
if (gravityHorizontal != null) {
this.gravityHorizontal = gravityHorizontal;
}
if (gravityVertical != null) {
this.gravityVertical = gravityVertical;
}
return this;
}
public ScaleAnimExpectation toDp() {
this.toDp = true;
return this;
}
public ScaleAnimExpectation keepRatio() {
this.keepRatio = true;
return this;
}
}