Some test text!

Hamburger Icon

Android / Changelog / v9.0.2

Version 9.0.2 Changelog (July 21, 2021)


Release Date: July 21, 2021

New features

  • Updated UX for OutlineDialogFragment and new ability to edit PDF outline
Updated Outline ComponentNew Outline Editing


  • Fixes issue where page number indicator would not show when scrollbar is not showing
  • Fixes issue where search was still active when switching to reading mode
  • Fixes issue where system status bar color was incorrect when annotation style dialog is showing
  • Fixes issue where user bookmark changes were not committed right away
  • Fixes issue where smart pen had inconsistent behaviour between markup and inking
  • Fixes issue where conversion option was not used for content URI files
  • Fixes issue where default eraser type was not actually used in the style picker
  • Fixes issue where annotation modification event is raised for stamp rotation when no rotation was changed
  • Improves performance when inflating the annoation toolbars


PDFViewCtrlTools package


new method: ToolManagerBuilder setInkMultiStrokeEnabled(boolean)


new method: EraserType getDefaultEraserType()

new method: void setDefaultEraserType(EraserType)


new method: Builder openSavedCopyInNewTab(boolean)

new method: Builder outlineListEditingEnabled(boolean)

new method: Builder saveToolbarItemOrder(boolean)

new method: Builder showConversionDialog(boolean)

new method: Builder tabletLayoutEnabled(boolean)


new method: boolean handleBackPress()


new static final field: String BUNDLE_EDITING_ENABLED

new method: void enterEditMode()

new method: void exitEditMode()

new method: boolean handleBackPress()

new method: boolean isEditingEnabled()

new method: boolean isEmpty()

new method: boolean moveBookmarkSelected(Bookmark)

new static method: OutlineDialogFragment newInstance(boolean)

new method: boolean onClick(TreeNode<BookmarkNode>, ViewHolder)

new method: void onCreate(Bundle)

new method: void onDestroyView()

new method: void onExpandNode(TreeNode<BookmarkNode>, int)

new method: void onNodeCheckBoxSelected(TreeNode<BookmarkNode>, ViewHolder)

new method: boolean onOptionsItemSelected(MenuItem)

new method: void onPause()

new method: void onStartDrag(TreeNode<BookmarkNode>, int, ViewHolder)

new method: void onToggle(boolean, ViewHolder)

new method: void onViewCreated(View, Bundle)

modified class: OutlineDialogFragment

From:public class OutlineDialogFragment extends NavigationListDialogFragment
To:public class OutlineDialogFragment extends NavigationListDialogFragment implements BookmarkNodeClickListener,OnTreeNodeListener,EditOutlineMoveClickListener


new method: void addPdfOutlineModificationListener(PdfOutlineModificationListener)

new method: boolean isInkMultiStrokeEnabled()

new method: void raisePdfOutlineModified()

new method: void removePdfOutlineModificationListener(PdfOutlineModificationListener)

new method: void setInkMultiStrokeEnabled(boolean)


new interface: PdfOutlineModificationListener

new method: void onOutlineChanged()


new method: void onOutlineChanged()

modified class: UndoRedoManager

From:public class UndoRedoManager implements AnnotationModificationListener,PdfDocModificationListener,PdfTextModificationListener
To:public class UndoRedoManager implements AnnotationModificationListener,PdfDocModificationListener,PdfTextModificationListener,PdfOutlineModificationListener


new static field: boolean CHECK_ALL_FILES_ACCESS_PERMISSION

new static method: boolean isAndroidR()

new static method: boolean isBackupFolderFile(Context, File)

new static method: void validateContentResolver(ContentResolver, Uri)


new method: void showUndoRedoPopup(View)


new static method: int getLastUsedTool(Context)

new static method: void setLastUsedTool(Context, int)

removed static method: int getLastUsedTool(Context, String)

removed static method: void setLastUsedTool(Context, String, int)


new class: UndoActionButton

new constructor: UndoActionButton(Context)

new constructor: UndoActionButton(Context, AttributeSet)

new constructor: UndoActionButton(Context, AttributeSet, int)

new constructor: UndoActionButton(Context, AttributeSet, int, int)


new class: BookmarkNode

new constructor: BookmarkNode(Bookmark)

new constructor: BookmarkNode(PDFDoc, Bookmark)

new static final field: String PLACEHOLDER_TAG

new field: boolean mIsOpen

new field: boolean mIsSelected

new method: BookmarkNode commitAdd(BookmarkNode)

new method: BookmarkNode commitDelete()

new method: BookmarkNode commitMoveToNewParent(BookmarkNode)

new method: BookmarkNode commitMoveToNext(BookmarkNode)

new method: BookmarkNode commitMoveToPrev(BookmarkNode)

new method: BookmarkNode commitOpen()

new method: BookmarkNode commitRename()

new method: Bookmark getBookmark()

new method: int getLayoutId()

new method: int getPageNumber()

new method: String getTitle()

new method: boolean isOpen()

new method: BookmarkNode setOpen(boolean)

new method: BookmarkNode setPageNumber(int)

new method: BookmarkNode setTitle(String)


new class: EditOutlineMoveDialog

new constructor: EditOutlineMoveDialog(int, ArrayList<Bookmark>, PDFViewCtrl, EditOutlineMoveClickListener, Bookmark)

new method: Dialog onCreateDialog(Bundle)


new class: TreeViewAdapter

new constructor: TreeViewAdapter(List<? extends TreeViewBinder>, PDFViewCtrl)

new constructor: TreeViewAdapter(List<TreeNode<BookmarkNode>>, List<? extends TreeViewBinder>, PDFViewCtrl, float)

new method: void addChildNode(TreeNode<BookmarkNode>, TreeNode<BookmarkNode>)

new method: int addChildNodes(TreeNode<BookmarkNode>, int)

new static method: void addPlaceHolderNode(TreeNode<BookmarkNode>)

new method: void addToRoot(TreeNode<BookmarkNode>)

new static method: List<TreeNode<BookmarkNode>> buildBookmarkTreeNodeList(PDFViewCtrl, Bookmark)

new method: void collapseAll()

new method: void collapseBrotherNode(TreeNode<BookmarkNode>)

new method: void collapseNode(TreeNode<BookmarkNode>)

new method: void disableEditOutline()

new method: void enableEditOutline()

new method: void expandAll(List<TreeNode<BookmarkNode>>)

new method: void expandAllNodes(TreeNode<BookmarkNode>)

new method: void expandNodes(List<TreeNode<BookmarkNode>>)

new method: void findAndCollapseNode(int)

new method: void findAndExpandNode(int)

new method: TreeNode<BookmarkNode> findNode(Bookmark)

new method: Iterator<TreeNode<BookmarkNode>> getDisplayNodesIterator()

new method: int getExpandableStartPosition(TreeNode<BookmarkNode>)

new method: int getItemCount()

new method: long getItemId(int)

new method: int getItemViewType(int)

new method: int getSelectedPosition(TreeNode<BookmarkNode>)

new method: void ifCollapseChildWhileCollapseParent(boolean)

new method: boolean isEditingOutline()

new method: void itemMoved(ViewHolder, int, int)

new method: void moveChildNode(TreeNode<BookmarkNode>, TreeNode<BookmarkNode>)

new method: void onBindViewHolder(ViewHolder, int)

new method: void onBindViewHolder(ViewHolder, int, List<Object>)

new method: ViewHolder onCreateViewHolder(ViewGroup, int)

new method: void onItemDrag(TreeNode<BookmarkNode>, int)

new method: void onItemDrop(ViewHolder, int, int)

new method: void refresh(List<TreeNode<BookmarkNode>>)

new method: int removeChildNodes(TreeNode<BookmarkNode>, boolean)

new method: int removeNode(TreeNode<BookmarkNode>)

new static method: void setBookMarkTreeNode(PDFViewCtrl, TreeNode<BookmarkNode>)

new method: void setItems(List<TreeNode<BookmarkNode>>)

new method: void setOnTreeNodeListener(OnTreeNodeListener)

new method: void setSelectionCount(int)

new method: void setTheme(Theme)

Get the answers you need: Chat with us