public void printBackForwardList() { WebBackForwardList currentList = this.copyBackForwardList(); int currentSize = currentList.getSize(); for(int i = 0; i < currentSize; ++i) { WebHistoryItem item = currentList.getItemAtIndex(i); String url = item.getUrl(); LOG.d(TAG, "The URL at index: " + Integer.toString(i) + " is " + url ); } }
public boolean startOfHistory() { WebBackForwardList currentList = this.copyBackForwardList(); WebHistoryItem item = currentList.getItemAtIndex(0); if( item!=null){ // Null-fence in case they haven't called loadUrl yet (CB-2458) String url = item.getUrl(); String currentUrl = this.getUrl(); LOG.d(TAG, "The current URL is: " + currentUrl); LOG.d(TAG, "The URL at item 0 is: " + url); return currentUrl.equals(url); } return false; }
@Override public void goBack() { WebBackForwardList list = mWebView.copyBackForwardList(); int curIndex = list.getCurrentIndex(); WebHistoryItem curItem = list.getCurrentItem(); WebHistoryItem prevItem = list.getItemAtIndex(curIndex - 1); int steps = 0; if (prevItem != null) { steps--; if (prevItem.getUrl().equals(JoyWeb.getCookie())) { prevItem = list.getItemAtIndex(curIndex - 2); if (prevItem != null) { steps--; if (UriUtils.isEquals(prevItem.getUrl(), curItem.getUrl())) { prevItem = list.getItemAtIndex(curIndex - 3); if (prevItem != null) { steps--; goBackOrForward(steps); } else { mBaseView.finish(); } return; } goBackOrForward(steps); } else { mBaseView.finish(); } return; } if (goBackOrForward(steps)) { return; } } mBaseView.finish(); }
@Override public void goForward() { WebBackForwardList list = mWebView.copyBackForwardList(); int curIndex = list.getCurrentIndex(); WebHistoryItem curItem = list.getCurrentItem(); WebHistoryItem nextItem = list.getItemAtIndex(curIndex + 1); int steps = 0; if (nextItem != null) { steps++; if (nextItem.getUrl().equals(JoyWeb.getCookie())) { nextItem = list.getItemAtIndex(curIndex + 2); if (nextItem != null) { steps++; if (UriUtils.isEquals(nextItem.getUrl(), curItem.getUrl())) { nextItem = list.getItemAtIndex(curIndex + 3); if (nextItem != null) { steps++; goBackOrForward(steps); } else { mBaseView.showToast(R.string.toast_no_next_page); } return; } if (goBackOrForward(steps)) { return; } } } if (goBackOrForward(steps)) { return; } } mBaseView.showToast(R.string.toast_no_next_page); }