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; class CriteriaAdditionalRow extends FinishingCriteriaDecorator implements IFinishingCriteria, ILayouterListener { private int requiredRowsCount; private int additionalRowsCount; CriteriaAdditionalRow(IFinishingCriteria finishingCriteria, int requiredRowsCount) { super(finishingCriteria); this.requiredRowsCount = requiredRowsCount; } @Override public boolean isFinishedLayouting(AbstractLayouter abstractLayouter) { abstractLayouter.addLayouterListener(this); return super.isFinishedLayouting(abstractLayouter) && additionalRowsCount >= requiredRowsCount; } @Override public void onLayoutRow(ILayouter layouter) { if (super.isFinishedLayouting((AbstractLayouter) layouter)) { additionalRowsCount++; } } }