private void slideToNextPage() { System.out.println("debug slide to next"); try { if (preparingWindow == null && !prepareFail) preparingWindow = forward ? slidingWindows.getNextWindow() : slidingWindows.getPreviousWindow(); else { if (previousDirection != forward) { if (previousDirection) { if (currentPageIndex == 0) { finishActivity(); return; } preparingWindow = slidingWindows.getPreviousWindow(); preparingWindow = slidingWindows.getPreviousWindow(); } else { preparingWindow = slidingWindows.getNextWindow(); preparingWindow = slidingWindows.getNextWindow(); } } if (next.isLastPage()) { handler.post( new Runnable() { public void run() { showAnimation(); } }); return; } boolean preparingWindowReady = preparingWindow.isLoaded(); if (!preparingWindowReady) { preparingWindow.registerOnLoadListener(PageActivity.this); handler.post( new Runnable() { public void run() { current.showLoading(); } }); return; } } final com.goal98.flipdroid.model.Window nextWindow = preparingWindow; preparingWindow = null; if (nextWindow.isLoading()) { // Log.d("SLIDING", "register on load listener..."); handler.post( new Runnable() { public void run() { nextWindow.registerOnLoadListener(PageActivity.this); current.showLoading(); } }); return; } else if (nextWindow.isSkip()) { // Log.d("SLIDING", "slide to next page..."); current.setLoadingNext(false); slideToNextPage(); return; } else { if (next.isLastPage()) { //// System.out.println("lastpage"); } else { if (forward) next = nextWindow.get(); else previous = nextWindow.get(); } handler.post( new Runnable() { public void run() { if (forward) next.removeLoadingIfNecessary(); else { if (previous == null) return; previous.removeLoadingIfNecessary(); } showAnimation(); } }); } } catch (Exception e) { e.printStackTrace(); next = pageViewFactory.createLastPage(); handler.post( new Runnable() { public void run() { showAnimation(); } }); } }