package ru.noties.scrollable;
/**
* Default implementation of the {@link CloseUpAlgorithm}
* With this implementation {@link ScrollableLayout} would have only two states - collapsed & expanded
* @see ScrollableLayout#setCloseUpAlgorithm(CloseUpAlgorithm)
* Created by Dimitry Ivanov on 23.05.2015.
*/
public class DefaultCloseUpAlgorithm implements CloseUpAlgorithm {
/**
* {@inheritDoc}
*/
@Override
public int getFlingFinalY(ScrollableLayout layout, boolean isScrollingBottom, int nowY, int suggestedY, int maxY) {
return isScrollingBottom ? 0 : maxY;
}
/**
* {@inheritDoc}
*/
@Override
public int getIdleFinalY(ScrollableLayout layout, int nowY, int maxY) {
final boolean shouldScrollToTop = nowY < (maxY / 2);
return shouldScrollToTop ? 0 : maxY;
}
}