package com.github.florent37.expectanim.core.position;
import android.view.View;
import java.util.List;
/**
* Created by florentchampigny on 17/02/2017.
*/
public class PositionAnimExpectationCenterBetweenViews extends PositionAnimExpectation {
private View view1;
private View view2;
private boolean horizontal;
private boolean vertical;
public PositionAnimExpectationCenterBetweenViews(View view1, View view2, boolean horizontal, boolean vertical) {
this.view1 = view1;
this.view2 = view2;
this.horizontal = horizontal;
this.vertical = vertical;
setForPositionY(true);
setForPositionX(true);
}
@Override
public Float getCalculatedValueX(View viewToMove) {
if (horizontal) {
final int centerXView1 = (int) (view1.getLeft() + view1.getWidth() / 2f);
final int centerXView2 = (int) (view2.getLeft() + view2.getWidth() / 2f);
return (centerXView1 + centerXView2) / 2f - viewToMove.getWidth() / 2f;
}
return null;
}
@Override
public List<View> getViewsDependencies() {
final List<View> viewsDependencies = super.getViewsDependencies();
viewsDependencies.add(view1);
viewsDependencies.add(view2);
return viewsDependencies;
}
@Override
public Float getCalculatedValueY(View viewToMove) {
if (vertical) {
final int centerYView1 = (int) (view1.getTop() + view1.getHeight() / 2f);
final int centerYView2 = (int) (view2.getTop() + view2.getHeight() / 2f);
return (centerYView1 + centerYView2) / 2f - viewToMove.getHeight() / 2f;
}
return null;
}
}