package org.ebookdroid.core.curl; import org.ebookdroid.common.settings.AppSettings; import org.ebookdroid.core.EventGLDraw; import org.ebookdroid.core.Page; import org.ebookdroid.core.SinglePageController; import org.ebookdroid.core.ViewState; import org.ebookdroid.ui.viewer.views.DragMark; import android.view.MotionEvent; import org.emdev.common.log.LogContext; import org.emdev.common.log.LogManager; public class SinglePageView implements PageAnimator { protected static final LogContext LCTX = LogManager.root().lctx("View", false); protected final PageAnimationType type; protected final SinglePageController view; protected boolean bViewDrawn; protected int foreIndex = -1; protected int backIndex = -1; public SinglePageView(final SinglePageController view) { this(PageAnimationType.NONE, view); } protected SinglePageView(final PageAnimationType type, final SinglePageController view) { this.type = type; this.view = view; } /** * {@inheritDoc} * * @see org.ebookdroid.core.curl.PageAnimator#init() */ @Override public void init() { } /** * {@inheritDoc} * * @see org.ebookdroid.core.curl.PageAnimator#getType() */ @Override public final PageAnimationType getType() { return type; } /** * {@inheritDoc} * * @see org.ebookdroid.common.touch.IGestureDetector#enabled() */ @Override public boolean enabled() { return false; } /** * {@inheritDoc} * * @see org.ebookdroid.common.touch.IGestureDetector#onTouchEvent(android.view.MotionEvent) */ @Override public boolean onTouchEvent(final MotionEvent event) { return false; } /** * {@inheritDoc} * * @see org.ebookdroid.core.curl.PageAnimator#isPageVisible(org.ebookdroid.core.Page, org.ebookdroid.core.ViewState) */ @Override public boolean isPageVisible(final Page page, final ViewState viewState) { final int pageIndex = page.index.viewIndex; return pageIndex == viewState.model.getCurrentViewPageIndex(); } /** * {@inheritDoc} * * @see org.ebookdroid.core.curl.PageAnimator#draw(org.ebookdroid.core.EventGLDraw) */ @Override public void draw(final EventGLDraw event) { final Page page = event.viewState.model.getCurrentPageObject(); if (page != null) { event.process(page); if (AppSettings.current().showAnimIcon) { DragMark.DRAG.draw(event.canvas, event.viewState); } } } /** * {@inheritDoc} * * @see org.ebookdroid.core.curl.PageAnimator#resetPageIndexes(int) */ @Override public final void resetPageIndexes(final int currentIndex) { if (foreIndex != currentIndex) { foreIndex = backIndex = currentIndex; } } /** * {@inheritDoc} * * @see org.ebookdroid.core.curl.PageAnimator#flipAnimationStep() */ @Override public void flipAnimationStep() { } /** * {@inheritDoc} * * @see org.ebookdroid.core.curl.PageAnimator#setViewDrawn(boolean) */ @Override public final void setViewDrawn(final boolean bViewDrawn) { this.bViewDrawn = bViewDrawn; } public boolean isViewDrawn() { return bViewDrawn; } /** * {@inheritDoc} * * @see org.ebookdroid.core.curl.PageAnimator#pageUpdated(org.ebookdroid.core.ViewState, org.ebookdroid.core.Page) */ @Override public void pageUpdated(final ViewState viewState, final Page page) { } /** * {@inheritDoc} * * @see org.ebookdroid.core.curl.PageAnimator#animate(int) */ @Override public void animate(final int direction) { view.goToPage(view.model.getCurrentViewPageIndex() + direction); } }