public boolean jumpBack() { try { if (getTextView() != BookTextView) { showBookTextView(); return true; } if (myJumpEndPosition == null || myJumpTimeStamp == null) { return false; } // more than 2 minutes ago if (myJumpTimeStamp.getTime() + 2 * 60 * 1000 < new Date().getTime()) { return false; } if (!myJumpEndPosition.equals(BookTextView.getStartCursor())) { return false; } final List<Bookmark> bookmarks = Library.Instance().invisibleBookmarks(Model.Book); if (bookmarks.isEmpty()) { return false; } final Bookmark b = bookmarks.get(0); b.delete(); gotoBookmark(b); return true; } finally { myJumpEndPosition = null; myJumpTimeStamp = null; } }