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

# Version 9.3.1 Changelog (August 24, 2022)

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

Version: 9.3.1.80205

Release Date: August 24, 2022

## New features

* Added support to pass a custom class for [getThumnailViewerFragment()](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/controls/ThumbnailsViewFragment.html#getThumbnailViewFragment\(\))
* Added [usingFileExtension()](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/config/ViewerBuilder.html#usingFileExtension\(java.lang.String\)) method to ViewerBuilder
* Added option to [remove "Reader Mode Settings" button](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/dialog/ViewModePickerDialogFragment.ViewModePickerItems.html)

## Fixed

* Fixed issue where xod files did not retain page state
* Fixed issue where office files did not load last page
* Fixed issue where DS/DA property were not used before DR in FreeText annots
* Fixed issue were insert image from Camera was not rotated correctly
* Fixed issue with freetext preset labels with large accessibility fonts
* Fixed issue where quick menu may hide rotation handles
* Fixed issue where adding author name after updating annotation list causes the author id lookup to fail
* Fixed issue with no ripple effect on toolbar icons
* Fixed issue with back navigation after serach in outline / annotations list / user bookmarks search
* Fixed issue with share menu in overflow causing UI to push bottom sheet up
* Fixed elements in landscape mode being covered up by system navigation bar

## APIs

### PDFViewCtrlTools package

#### ViewerBuilder

*new* method: `ViewerBuilder usingFileExtension(String)`

#### AddPageDialogFragment

*new* static final field: `String ADD_PAGE_DIALOG_TAG`

#### AnnotationDialogFragment

*new* method: `void finishSearchView()`

*modified* class: `AnnotationDialogFragment`

|       | Declaration                                                                                                                          |
| ----- | ------------------------------------------------------------------------------------------------------------------------------------ |
| From: | public class AnnotationDialogFragment extends NavigationListDialogFragment implements OnQueryTextListener                            |
| To:   | public class AnnotationDialogFragment extends NavigationListDialogFragment implements OnQueryTextListener,IBookmarksDialogSearchView |

#### OutlineDialogFragment

*new* method: `void finishSearchView()`

*modified* class: `OutlineDialogFragment`

|       | Declaration                                                                                                                                                                                                         |
| ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| From: | public class OutlineDialogFragment extends NavigationListDialogFragment implements OnQueryTextListener,BookmarkNodeClickListener,OnBookmarkTreeNodeListener,EditOutlineMoveClickListener                            |
| To:   | public class OutlineDialogFragment extends NavigationListDialogFragment implements OnQueryTextListener,BookmarkNodeClickListener,OnBookmarkTreeNodeListener,EditOutlineMoveClickListener,IBookmarksDialogSearchView |

#### PdfViewCtrlTabBaseFragment

*new* method: `void onFullSaveRequired()`

*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,ActionGoBackListener,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,FullSaveListener,OnReflowTapListener,PortfolioDialogFragmentListener |

#### PdfViewCtrlTabHostFragment2

*new* method: `void onStop()`

#### ThumbnailsViewFragment

*new* static final field: `String TAG`

*new* static method: `Bundle createThumbnailViewFragmentBundle(boolean, boolean, int[], String[])`

#### UserBookmarkDialogFragment

*new* method: `void finishSearchView()`

*modified* class: `UserBookmarkDialogFragment`

|       | Declaration                                                                                                                            |
| ----- | -------------------------------------------------------------------------------------------------------------------------------------- |
| From: | public class UserBookmarkDialogFragment extends NavigationListDialogFragment implements OnQueryTextListener                            |
| To:   | public class UserBookmarkDialogFragment extends NavigationListDialogFragment implements OnQueryTextListener,IBookmarksDialogSearchView |

#### IBookmarksDialogSearchView

*new* interface: `IBookmarksDialogSearchView`

*new* method: `void finishSearchView()`

#### FileInfo

*new* static final field: `String VAR_FILE`

*new* static final field: `String VAR_PATH`

#### AnnotEdit

*new* method: `void updateRotateView()`

#### ToolManager

*new* method: `void addFullSaveListener(FullSaveListener)`

*new* method: `void onQuickMenuLocationRequested()`

*new* method: `void raiseFullSaveRequired()`

*new* method: `void removeFullSaveListener(FullSaveListener)`

#### FullSaveListener

*new* interface: `FullSaveListener`

*new* method: `void onFullSaveRequired()`

#### AnalyticsHandlerAdapter

*new* static final field: `int SCREEN_ACTIONS_FILES`

#### PdfViewCtrlSettingsManager

*new* static method: `String getOpenUrlPageStateAsyncCache(Context)`

*new* static method: `void setOpenUrlPageStateAsyncCache(Context, String)`

#### RequestCode

*new* static final field: `int PICK_CAM_ONLY`

*new* static final field: `int PICK_GALLERY`

*removed* static final field: `int USER_VOICE`

#### Utils

*new* static method: `boolean isUsingDocumentTree()`

#### ViewerUtils

*new* static final field: `String IMAGE_DPI_CONVERSION_OPTION`

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

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

*new* static method: `double getLastZoomForURL(Context, String)`

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

*new* static method: `Uri openCameraIntent(Activity, int)`

*new* static method: `Uri openGalleryIntent(Activity, int)`

*new* static method: `void setLastPageStateForURL(Context, String, double, int, int, int)`

### pdftron-collab package

#### AnnotationDao

*new* method: `void updateAuthorName(String, String)`

#### AnnotationDao\_Impl

*new* method: `void updateAuthorName(String, String)`

### pdfnet-demo-utils package

#### ImportWebpageUrlSelectorDialogFragment

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

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

#### Html2PdfComponent

*new* constructor: `Html2PdfComponent(Context, HtmlConversionListener)`

*removed* constructor: `Html2PdfComponent(View, HtmlConversionListener)`

#### HtmlConversionComponent

*new* method: `void handleWebpageToPDF(FragmentActivity, Uri, OnDismissListener)`

#### HtmlConversionUiView

*new* constructor: `HtmlConversionUiView(Context)`

*removed* constructor: `HtmlConversionUiView(View)`


---

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