> 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-9/v9-3-0.md).

# Version 9.3.0 Changelog (July 13, 2022)

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

Version: 9.3.0.80109

Release Date: July 13, 2022

## New features

* New API to [show all comments as replies in collaboration viewer](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/config/ViewerConfig.Builder.html#alwaysShowAsReply\(boolean\))
* New API for [custom signature colors](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/config/ToolManagerBuilder.html#setSignatureColors\(int...\))
* New API to [expose the Annotation in Tool](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/tools/Tool.html#getAnnot\(\))
* Adds support for GoBack action
* Improves annotation list for collaboration viewer

## Notes

This release of Apryse for Android brings the core PDF functionality inline with version 9.3.0 of the Apryse cross-platform APIs. More information can be found on [What's new for cross-platform APIs](/core/changelogs/version-9/9-3-0.md). All none-module related changes apply to Android.

## Fixed

* Fixes issue where bad tool state when signature dialog is intercepted
* Fixes issue where Count Tool annotation is not anchored at the center when created
* Fixes issue where re-open converted documents would not go back to the previously saved page number
* Fixes issue where app crashes when an expired Apryse license key is used
* Fixes issue where reply fragment does not opening in collaboration viewer
* Fixes issue where Dutch translation is incorrect in the view mode dialog
* Fixes issue where disabled annotation toolbar items are still clickable
* Fixes issue where sound permissions not added/granted causes crash in sound annotation
* Fixes issue where app crashes when sound annotation is paused
* Fixes issue where viewer top app bar has too much whitespace
* Fixes issue where measurement tools pan off screen
* Fixes issue where bottom bar moves when Android share dialog appears

## APIs

### PDFViewCtrlTools package

#### ToolManagerBuilder

*new* method: `ToolManagerBuilder setSignatureColors()`

#### ViewerConfig

*new* method: `boolean alwaysShowAsReply()`

#### Builder

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

#### PdfViewCtrlTabBaseFragment

*new* method: `void onActionGoBack()`

*modified* abstract class: `PdfViewCtrlTabBaseFragment`

|       | Declaration                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| From: | public abstract class PdfViewCtrlTabBaseFragment extends Fragment implements PageChangeListener,DocumentDownloadListener,UniversalDocumentConversionListener,DocumentLoadListener,RenderingListener,UniversalDocumentProgressIndicatorListener,PreToolManagerListener,QuickMenuListener,AnnotationModificationListener,PdfDocModificationListener,PdfTextModificationListener,BasicAnnotationListener,OnGenericMotionEventListener,ToolChangedListener,AdvancedAnnotationListener,FileAttachmentAnnotationListener,OnReflowTapListener,PortfolioDialogFragmentListener                      |
| To:   | public abstract class PdfViewCtrlTabBaseFragment extends Fragment implements PageChangeListener,DocumentDownloadListener,UniversalDocumentConversionListener,DocumentLoadListener,RenderingListener,UniversalDocumentProgressIndicatorListener,PreToolManagerListener,QuickMenuListener,AnnotationModificationListener,PdfDocModificationListener,PdfTextModificationListener,BasicAnnotationListener,OnGenericMotionEventListener,ToolChangedListener,AdvancedAnnotationListener,FileAttachmentAnnotationListener,ActionGoBackListener,OnReflowTapListener,PortfolioDialogFragmentListener |

#### CreateSignatureFragment

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

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

#### SignatureDialogFragmentBuilder

*new* method: `SignatureDialogFragmentBuilder usingSignatureColors()`

#### SignatureFragmentAdapter

*new* method: `SignatureFragmentAdapter setSignatureColors()`

#### Tool

*new* method: `Annot getAnnot()`

#### ToolManager

*new* method: `void addActionGoBackListener(ActionGoBackListener)`

*new* method: `int[] getSignatureColors()`

*new* method: `void onGoBackSelected()`

*new* method: `void removeActionGoBackListener(ActionGoBackListener)`

*new* method: `void setSignatureColors()`

#### ActionGoBackListener

*new* interface: `ActionGoBackListener`

*new* method: `void onActionGoBack()`

#### ActionUtils

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

#### AnnotSnappingManager

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

#### EventHandler

*new* static final field: `String ANNOT_TOOLBAR_EVENT`

*new* static final field: `String REFLOW_TEXT_MARKUP`

#### Utils

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

*new* static method: `void requestRecordAudioPermissions(Activity, View, int)`

*removed* static method: `boolean hasAudioPermission(Activity, View, int)`

#### AutoScrollEditText

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

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

#### PresetBarViewModel

*removed* method: `void observeAnnotStyles(LifecycleOwner, Observer<ArrayList<AnnotStyle>>)`

*removed* method: `void populateAnnotationStylesAsync()`

### pdftron-collab package

#### ReplyUIViewModel

*new* method: `void setParentAnnotation(AnnotationEntity)`

#### ReplyHeader

*new* static method: `String getTitleFromContent(Context, String, int, String)`


---

# 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-9/v9-3-0.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.
