package com.beloo.widget.chipslayoutmanager.layouter.criteria;
import com.beloo.widget.chipslayoutmanager.layouter.AbstractLayouter;
import com.beloo.widget.chipslayoutmanager.layouter.ILayouter;
import com.beloo.widget.chipslayoutmanager.layouter.ILayouterListener;
import com.beloo.widget.chipslayoutmanager.layouter.Item;
public class CriteriaPolitePositionReached extends FinishingCriteriaDecorator implements IFinishingCriteria, ILayouterListener {
private boolean isPositionReached;
private int reachedPosition;
CriteriaPolitePositionReached(AbstractLayouter abstractLayouter, IFinishingCriteria finishingCriteria, int reachedPosition) {
super(finishingCriteria);
this.reachedPosition = reachedPosition;
abstractLayouter.addLayouterListener(this);
}
@Override
public boolean isFinishedLayouting(AbstractLayouter abstractLayouter) {
boolean isFinishedFlow = super.isFinishedLayouting(abstractLayouter);
return isFinishedFlow || isPositionReached;
}
@Override
public void onLayoutRow(ILayouter layouter) {
if (isPositionReached) return;
if (layouter.getRowSize() == 0) return;
for (Item item : layouter.getCurrentRowItems()) {
if (item.getViewPosition() == reachedPosition) {
isPositionReached = true;
return;
}
}
}
}