> For the complete documentation index, see [llms.txt](https://docs.apryse.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.apryse.com/android/changelogs/version-7/v7-0-2.md).

# Version 7.0.2 Changelog (September 18, 2019)

World's #1 PDF SDK Library for Web, Mobile, Server, Desktop

Version: 7.0.2.72576

Release Date: September 18, 2019

## New features

* New icon set

| Viewer                                                                                                                                                                                                                                           | Annotation tools                                                                                                                                                                                                                                 |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| ![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-d3797de129c2f0fa3eb263f4557efccb3669939c%2Fc5b380681b9814fecbdaba5019b74060f00fe4d7-1080x1920.png?alt=media) | ![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-db65ef1e80b612749b64c173821209d50cd75004%2F6f61df64f77b2cab1663bf1cda60aeefff359be9-1080x1920.png?alt=media) |

* Annotation selection handle appearance has been updated; in addition, a 16 dp margin has been added between the selection box and annotation bounding box, you can change the margin with [`ToolManagerBuilder.setSelectionBoxMargin(int)`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/config/ToolManagerBuilder.html#setSelectionBoxMargin\(int\))
* New navigation side sheet on large screen, you can now navigate through annotations, bookmarks and outline while viewing and editing the document; it can be disabled with [`ViewerConfig.Builder.navigationListAsSheetOnLargeDevice(boolean)`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/config/ViewerConfig.Builder.html#navigationListAsSheetOnLargeDevice\(boolean\))

![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-0bc375c123625b076ba7a0dc91a51f5787325b8c%2F63814d7b4670288b3dfda213ad10a57fb0952571-2048x1536.png?alt=media)

* If navigation side sheet is opened in collaboration viewer, annotation reply will be shown in the side sheet

![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-caf7f8829297982dc1007832cf876af39754c22f%2F519f7c2dc432a5150861021586aab0a462d5ffb7-600x450.gif?alt=media)

* New non-continuous vertical scrolling mode, see guide: [view mode](/android/viewer/view-mode.md)

![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-2421422e0eb1685be0c61f055eaf304d228091fb%2Fbfe3bb2eafe65c00d436aab9ee7c5b7fbe732c24-481x860.gif?alt=media)

* Eraser will now erase both ink strokes and non-ink annotations, you can change eraser type with [`ToolManagerBuilder.setEraserType(Eraser.EraserType)`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/config/ToolManagerBuilder.html#setEraserType\(com.pdftron.pdf.tools.Eraser.EraserType\)), available values are `INK_ERASER`, `ANNOTATION_ERASER` and `HYBRID_ERASER`
* Form field highlight color can now be customized with [`setFieldHighlightColor`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/PDFViewCtrl.html#setFieldHighlightColor\(com.pdftron.pdf.ColorPt\)) and [`setSignatureHighlightColor`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/PDFViewCtrl.html#setSignatureHighlightColor\(com.pdftron.pdf.ColorPt\))
* New API to disable undo and redo menus with [`ToolManagerBuilder.setShowUndoRedo(boolean)`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/config/ToolManagerBuilder.html#setShowUndoRedo\(boolean\))
* Click on a link annotation to a remote file that is located in the same directory as the current file will now open the remote file in a new tab
* Click on a link with `tel:` action will now launch a dial intent
* Free highlighter tool now support real time editing

## Fixed

* Fixed issue where duplicating an annotation may create an annotation group with the original annotation
* Fixed issue where the text selection loupe may get stuck in some situations
* Fixed potential ANR when selecting large image stamps
* Fixed issue where FreeText can be still editable even if `Annot.e_read_only` flag is true
* Fixed issue where back press would delete contents in the annotation notes dialog
* Fixed issue where the default ink tool color was not set properly from `freehand_default_style` attribute
* Fixed issue where annotation without a valid "P" entry would behave strangely
* Fixed potential ANR when closing the annotation list dialog
* Fixed potential ANR when deleting item in the user bookmark dialog

## APIs

### Apryse package

#### PDFViewCtrl

*new* static final field: `PagePresentationMode SINGLE_VERT`

*new* static final field: `PagePresentationMode FACING_VERT`

*new* static final field: `PagePresentationMode FACING_COVER_VERT`

*new* method: `void setFieldHighlightColor(ColorPt)`

*new* method: `void setSignatureHighlightColor(ColorPt)`

### PDFViewCtrlTools package

#### ToolManagerBuilder

*new* method: `ToolManagerBuilder setEraserType(EraserType)`

*new* method: `ToolManagerBuilder setSelectionBoxMargin(int)`

*new* method: `ToolManagerBuilder setShowUndoRedo(boolean)`

#### ViewerConfig.Builder

*new* method: `Builder navigationListAsSheetOnLargeDevice(boolean)`

#### AnnotationDialogFragment

*new* method: `void prepareOptionsMenu(Menu)`

*removed* method: `void onCreateOptionsMenu(Menu, MenuInflater)`

*removed* method: `void onToolbarMenuItemClicked(MenuItem)`

#### AnnotationToolbar

*new* method: `void show(int, Annot, int, ToolMode, boolean)`

*new* method: `void showEditToolbar(ToolMode)`

*new* method: `void showEditToolbar(ToolMode, Annot, int)`

*removed* method: `void show(int, Annot, ToolMode, boolean)`

*removed* method: `void showEditToolbar(ToolMode, Annot)`

#### BookmarksTabLayout

*new* method: `boolean onMenuItemClicked(MenuItem, Fragment)`

*new* method: `void onPrepareMenu(Menu, Fragment)`

*removed* method: `void onAnnotationMenuItemClicked(MenuItem)`

#### EditToolbarImpl

*new* constructor: `EditToolbarImpl(FragmentActivity, EditToolbar, ToolManager, ToolMode, Annot, int, boolean)`

*removed* constructor: `EditToolbarImpl(FragmentActivity, EditToolbar, ToolManager, ToolMode, Annot, boolean)`

#### PdfViewCtrlTabFragment

*new* method: `void closeNavigationList()`

*new* method: `boolean isNavigationListShowing()`

*new* method: `boolean isNonContinuousVerticalPageMode()`

*new* method: `boolean newFileSelectedFromTool(String)`

*new* method: `void openNavigationList(BookmarksDialogFragment, int, int)`

*new* method: `void showAnnotationToolbar(int, Annot, int, ToolMode, boolean)`

*new* method: `void updateNavigationListLayout(int, int, boolean)`

*removed* method: `void newFileSelectedFromTool(File)`

*removed* method: `void showAnnotationToolbar(int, Annot, ToolMode, boolean)`

#### TabListener

*new* method: `void onInkEditSelected(Annot, int)`

*removed* method: `void onInkEditSelected(Annot)`

#### PdfViewCtrlTabHostFragment

*new* method: `boolean isInFullScreenMode()`

*new* method: `void onBookmarksDialogWillDismiss(int)`

*new* method: `void onInkEditSelected(Annot, int)`

*removed* method: `void onInkEditSelected(Annot)`

#### BookmarksDialogFragment

*new* static method: `BookmarksDialogFragment newInstance(DialogMode)`

*new* method: `void onCreate(Bundle)`

*new* method: `void onDestroyView()`

*new* method: `boolean onMenuItemClick(MenuItem)`

*removed* method: `void onDismiss(DialogInterface)`

*modified* class: `BookmarksDialogFragment`

|       | Declaration                                                                                                              |
| ----- | ------------------------------------------------------------------------------------------------------------------------ |
| From: | public class BookmarksDialogFragment extends DialogFragment implements BaseOnTabSelectedListener                         |
| To:   | public class BookmarksDialogFragment extends DialogFragment implements BaseOnTabSelectedListener,OnMenuItemClickListener |

#### BookmarksDialogListener

*new* method: `void onBookmarksDialogWillDismiss(int)`

#### DialogMode

*new* final class: `DialogMode`

*new* static final field: `DialogMode DIALOG`

*new* static final field: `DialogMode SHEET`

*new* static method: `DialogMode valueOf(String)`

*new* static method: `DialogMode[] values()`

#### AnnotationListUtil

*new* static method: `AnnotationInfo toAnnotationInfo(Annot, Page, TextExtractor)`

#### DigitalSignatureViewModel

*new* constructor: `DigitalSignatureViewModel(Application)`

*removed* constructor: `DigitalSignatureViewModel()`

*modified* class: `DigitalSignatureViewModel`

|       | Declaration                                                     |
| ----- | --------------------------------------------------------------- |
| From: | public class DigitalSignatureViewModel extends ViewModel        |
| To:   | public class DigitalSignatureViewModel extends AndroidViewModel |

#### OnEditToolbarListener

*new* method: `void showEditToolbar(ToolMode, Annot, int)`

*removed* method: `void showEditToolbar(ToolMode, Annot)`

#### AnnotEdit

*new* method: `boolean showMenu(RectF)`

#### BaseTool

*new* method: `boolean isDrawingLoupe()`

#### EraserType

*new* final class: `EraserType`

*new* static final field: `EraserType ANNOTATION_ERASER`

*new* static final field: `EraserType HYBRID_ERASER`

*new* static final field: `EraserType INK_ERASER`

*new* static method: `EraserType valueOf(String)`

*new* static method: `EraserType[] values()`

#### FreehandCreate

*new* method: `void setInitInkItem(Annot, int)`

*new* static method: `void setupInkItem(Ink, InkItem, int)`

*removed* method: `void setInitInkItem(Annot)`

*removed* static method: `void setupInkItem(Ink, InkItem)`

#### ToolManager

*new* method: `EraserType getEraserType()`

*new* method: `int getSelectionBoxMargin()`

*new* method: `boolean isShowUndoRedo()`

*new* method: `void onInkEditSelected(Annot, int)`

*new* method: `boolean onNewFileCreated(String)`

*new* method: `void setEraserType(EraserType)`

*new* method: `void setSelectionBoxMargin(int)`

*new* method: `void setShowUndoRedo(boolean)`

*removed* method: `void onInkEditSelected(Annot)`

*removed* method: `void onNewFileCreated(File)`

#### AdvancedAnnotationListener

*new* method: `boolean newFileSelectedFromTool(String)`

*removed* method: `void newFileSelectedFromTool(File)`

#### AnnotationToolbarListener

*new* method: `void inkEditSelected(Annot, int)`

*removed* method: `void inkEditSelected(Annot)`

#### AnnotUtils

*new* static method: `boolean canUseBitmapAppearance(Annot)`

*new* static method: `Single<Bitmap> getAnnotationAppearanceAsync(PDFViewCtrl, Annot)`

#### DialogFragmentTab

*new* constructor: `DialogFragmentTab(Class<?>, String, Drawable, String, String, Bundle, int)`

*new* field: `int menuResId`

#### PdfViewCtrlSettingsManager

*new* static method: `boolean getUnlimitedTabsEnabled(Context, boolean)`

*new* static method: `boolean isVerticalScrollSnap(Context)`

*new* static method: `void setVerticalScrollSnap(Context, boolean)`

#### Utils

*new* static method: `boolean isLargeTablet(Context)`

#### AnnotDrawingView

*new* method: `void initInkItem(Annot, int, PointF)`

*new* method: `void setAnnotStyle(AnnotViewImpl)`

*removed* method: `PointF[] getPolyShapeCtrlPts()`

*removed* method: `ArrayList<PointF> getVertices()`

*removed* method: `void initInkItem(Annot, PointF)`

*removed* method: `void setAnnotStyle(PDFViewCtrl, AnnotStyle)`

*removed* method: `void setVertices()`

#### AnnotTextView

*new* method: `void setAnnotStyle(AnnotViewImpl)`

*removed* method: `void setAnnotStyle(PDFViewCtrl, AnnotStyle)`

#### AnnotView

*new* method: `RotateInfo handleRotation(PointF, PointF, boolean)`

*new* method: `void layoutSelectionHandle(PointF[])`

*new* method: `void setSelectionHandleVisible(boolean)`

*new* method: `void setVertices()`

*new* method: `void updateVertices(int, PointF)`

#### AnnotViewImpl

*new* field: `ArrayList<PointF> mVertices`

*new* method: `boolean isAnnotEditAdvancedShape()`

*new* method: `boolean isAnnotEditLine()`

*new* method: `boolean isAnnotResizable()`

*new* method: `boolean isCallout()`

*new* method: `boolean isFreeHighlighter()`

*new* method: `boolean isStamp()`

*new* method: `void setVertices()`

#### SelectionHandleView

*new* class: `SelectionHandleView`

*new* constructor: `SelectionHandleView(Context)`

*new* constructor: `SelectionHandleView(Context, AttributeSet)`

*new* constructor: `SelectionHandleView(Context, AttributeSet, int)`

*new* method: `boolean onTouchEvent(MotionEvent)`

### pdftron-collab package

#### CollabAnnotationListFragment

*new* method: `void prepareOptionsMenu(Menu)`

*removed* method: `void onCreateOptionsMenu(Menu, MenuInflater)`


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.apryse.com/android/changelogs/version-7/v7-0-2.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
