> 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-1-4.md).

# Version 7.1.4 Changelog (July 13, 2020)

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

Version: 7.1.4.75316

Release Date: July 13, 2020

## New features

* New lasso annotation selection tool

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

* New signature UI

![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-91526201375e085920ca5e020842ee0c334414d6%2F461531197331e193f91809cb66131f0e95b702a3-2220x1080.png?alt=media)

* [FreeText](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/annots/FreeText.html) appearance is now WYSIWYG, this means languages that were not supported previously, such as Hindi, or emojis will now be supported properly

![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-6143bcc30b69c57237b91b90d6d55570fd7bd57d%2F3adbc0053eadad866bdad2d700992357c09841cc-420x886.gif?alt=media)

* Adds ability to retry a failed remote file opening if it is due to no internet connection

## Breaking changes

* `PdfViewCtrlTabHostFragment.TabHostListener.onOpenDocError` method now returns a boolean. It is now possible to have custom error handling when a document failed to open. Return false to keep the default behaviour.

## Fixed

* Fixed issue where it is not possible to delete author's annotation with XFDF in collaboration viewer
* Fixed issue where the customized quick menu overflow menu is shown even though there is nothing in it
* Fixed issue where saved signatures appears flipped in RTL layout

## APIs

### PDFViewCtrlTools package

#### ToolManagerBuilder

*new* method: `ToolManagerBuilder setMultiSelectMode(SelectionMode)`

#### AnnotStyleView

*new* method: `void setOnDismissListener(OnDialogDismissListener)`

#### DiffActivity

*modified* method: `void onOpenDocError()`

|       | Declaration                     |
| ----- | ------------------------------- |
| From: | public void onOpenDocError()    |
| To:   | public boolean onOpenDocError() |

#### DocumentActivity

*modified* method: `void onOpenDocError()`

|       | Declaration                     |
| ----- | ------------------------------- |
| From: | public void onOpenDocError()    |
| To:   | public boolean onOpenDocError() |

#### DocumentView

*modified* method: `void onOpenDocError()`

|       | Declaration                     |
| ----- | ------------------------------- |
| From: | public void onOpenDocError()    |
| To:   | public boolean onOpenDocError() |

#### PdfViewCtrlTabHostFragment.TabHostListener

*modified* method: `void onOpenDocError()`

|       | Declaration                              |
| ----- | ---------------------------------------- |
| From: | public abstract void onOpenDocError()    |
| To:   | public abstract boolean onOpenDocError() |

#### DigitalSignatureDialogFragment

*new* method: `void onSignatureCreated(String, boolean)`

*removed* method: `void onSignatureCreated(String)`

#### CreateSignatureFragment

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

*new* static method: `CreateSignatureFragment newInstance(int, float, boolean, boolean, boolean, HashMap<Integer, AnnotStyleProperty>)`

*new* method: `void onConfigurationChanged(Configuration)`

*removed* static method: `CreateSignatureFragment newInstance(int, float, boolean, boolean, HashMap<Integer, AnnotStyleProperty>)`

#### SignatureDialogFragment

*new* method: `void onSignatureCreated(String, boolean)`

*removed* method: `void onSignatureCreated(String)`

#### SignatureDialogFragment.DialogMode

*new* final class: `DialogMode`

*new* static final field: `DialogMode MODE_CREATE`

*new* static final field: `DialogMode MODE_SAVED`

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

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

#### OnCreateSignatureListener

*new* method: `void onSignatureCreated(String, boolean)`

*removed* method: `void onSignatureCreated(String)`

#### AnnotStyle

*new* method: `boolean isBasicFreeText()`

#### AnnotEditRectGroup

*new* constructor: `AnnotEditRectGroup(PDFViewCtrl, SelectionMode)`

*new* method: `void setSelectionMode(SelectionMode)`

#### AnnotEditRectGroup.SelectionMode

*new* final class: `SelectionMode`

*new* static final field: `SelectionMode LASSO`

*new* static final field: `SelectionMode RECTANGULAR`

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

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

#### CustomRelativeLayout

*new* method: `void setScreenRect(double, double, double, double, int)`

#### ToolManager

*new* method: `SelectionMode getMultiSelectMode()`

*new* method: `boolean isSignSignatureFieldsWithStamps()`

*new* method: `void setMultiSelectMode(SelectionMode)`

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

#### AnnotUtils

*new* static final field: `String XFDF_ADD`

*new* static final field: `String XFDF_DELETE`

*new* static final field: `String XFDF_MODIFY`

*new* static method: `void createCustomFreeTextAppearance(View, PDFViewCtrl, Annot, int, Rect, boolean)`

*new* static method: `Rect getPageRectFromScreenRect(PDFViewCtrl, Rect, int, int)`

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

*new* static method: `boolean refreshCustomFreeTextAppearance(File, Annot)`

*new* static method: `JSONObject simpleXmlParser(String)`

*new* static method: `void traverseAnnotsWithPage(PDFDoc, AnnotWithPageVisitor)`

*new* static method: `void traverseAnnotsWithPage(Page, AnnotWithPageVisitor)`

*removed* static method: `boolean refreshCustomRichFreeTextAppearance(File, Annot)`

#### AnnotWithPageVisitor

*new* interface: `AnnotWithPageVisitor`

*new* method: `void visit(Pair<Annot, Integer>)`

#### StampManager

*new* method: `void deleteSignature(Context, String)`

#### Utils

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

#### AnnotView

*new* method: `void removeView()`

#### AnnotViewImpl

*new* method: `void loadFont(AnnotViewImplListener)`

*removed* method: `void loadFont()`

#### AnnotViewImplListener

*new* interface: `AnnotViewImplListener`

*new* method: `void fontLoaded()`

#### AutoScrollEditText

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

### pdftron-collab package

#### CollabViewerTabHostFragment.CollabTabHostListener

*modified* method: `void onOpenDocError()`

|       | Declaration                     |
| ----- | ------------------------------- |
| From: | public void onOpenDocError()    |
| To:   | public boolean onOpenDocError() |


---

# 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-1-4.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.
