package org.ebookdroid.core;
import android.graphics.RectF;
import java.util.Queue;
import org.emdev.utils.LengthUtils;
public class EventScrollTo extends AbstractEventScroll<EventScrollTo> {
public int viewIndex;
public EventScrollTo(final Queue<EventScrollTo> eventQueue) {
super(eventQueue);
}
final void init(final AbstractViewController ctrl, final int viewIndex) {
super.init(ctrl);
this.viewIndex = viewIndex;
}
/**
* {@inheritDoc}
*
* @see org.ebookdroid.core.AbstractEvent#calculatePageVisibility(org.ebookdroid.core.ViewState)
*/
@Override
protected void calculatePageVisibility() {
int firstVisiblePage = viewIndex;
int lastVisiblePage = viewIndex;
final Page[] pages = ctrl.model.getPages();
if (LengthUtils.isEmpty(pages)) {
return;
}
final RectF bounds = new RectF();
while (firstVisiblePage > 0) {
final int index = firstVisiblePage - 1;
if (!ctrl.isPageVisible(pages[index], viewState, bounds)) {
break;
}
firstVisiblePage = index;
}
while (lastVisiblePage < pages.length - 1) {
final int index = lastVisiblePage + 1;
if (!ctrl.isPageVisible(pages[index], viewState, bounds)) {
break;
}
lastVisiblePage = index;
}
viewState.update(firstVisiblePage, lastVisiblePage);
}
}