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

# Version 7.0.5 Changelog (February 3, 2020)

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

Version: 7.0.5.73943

Release Date: February 3, 2020

## New features

* Adds pressure sensitive inking for [`FreehandCreate`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/tools/FreehandCreate.html) tool, it is possible to switch between pressure and no pressure in the style picker prior to drawing. Pressure is disabled by default, enable programmatically with [`FreehandCreate.setPressureSensitive(boolean)`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/tools/FreehandCreate.html#setPressureSensitive\(boolean\))

![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-da3361163cd23cad300581bda2e77e55771daae0%2F400ade01c22d60fdcb67a6ead8c8a3bf28221cef-1600x2297.png?alt=media)

* [Reflow (reading) mode](/android/viewer/view-mode.md#reflow) now comes with images

| Document with images                                                                                                                                                                                                                           | Reflow with images                                                                                                                                                                                                                             |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-73475cfa43e24e7fc8fc2f0bcb8a20d50f0d8dd4%2Fcbd89abb266ceea866e2c6045fde8d37d0432fc2-540x960.png?alt=media) | ![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-8abe0cfdc2095627f96e67b4f23c84ea68edd7b3%2F238f60d095175e4d03eeab9495ffe3b269ee56d7-540x960.png?alt=media) |

* Filter by annotated pages and bookmarked pages is now supported in the [thumbnails browser](/android/page-manipulation/thumbnails-view-a.md)

![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-67e78088e68aff99a866f5afca6d9d5ceae606b6%2F83adb4029aa5767ebf23ed6f44e7cd5e810fc50a-480x859.gif?alt=media)

* Adds dotted and isometric dotted page template in [AddPageDialogFragment](/android/page-manipulation/create.md)

| Dotted page                                                                                                                                                                                                                                    | Isometric dotted page                                                                                                                                                                                                                          |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-f78913fbc081b5761fae2ee7020587ed0ea435d5%2F3b08560ace20dde28216e696afe09977c300476d-540x960.png?alt=media) | ![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-8520c0310e8c841a022d78f4b4b7124d5451c7c1%2F8e51e6b5c9a957bb04976af66a7bf1b40028c85e-540x960.png?alt=media) |

* Adds new menu editor to allow customization of the home toolbar in [`PdfViewCtrlTabHostFragment`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/controls/PdfViewCtrlTabHostFragment.html), to disable, use [`ViewerConfig.Builder.showEditMenuOption(false)`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/config/ViewerConfig.Builder.html#showEditMenuOption\(boolean\))

![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-75db16a47276753b1e34e06751799b703ee9a980%2F3ff173c2858672a768ce793589cb9e84dbe01e5a-480x859.gif?alt=media)

* It is now possible to use `PdfViewCtrlTabHostFragment` with the [standard version](/android/get-started/faq/full-vs-standard.md) of the library, use [`ViewerConfig.Builder.useStandardLibrary(true)`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/config/ViewerConfig.Builder.html#useStandardLibrary\(boolean\))
* AES 128 is now used when creating a password protected copy with `PdfViewCtrlTabHostFragment`
* Adds new API to customize the [view mode dialog](/android/viewer/view-mode.md), use [`ViewerConfig.Builder.hideViewModeItems(ViewModePickerItems[])`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/config/ViewerConfig.Builder.html#hideViewModeItems\(com.pdftron.pdf.dialog.ViewModePickerDialogFragment.ViewModePickerItems\))
* Adds new APIs to help locking [`PDFDoc`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/PDFDoc.html) while it is displayed in the viewer, see [`PDFViewCtrl.docLockRead(LockRunnable)`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/PDFViewCtrl.html#docLockRead\(com.pdftron.pdf.PDFViewCtrl.LockRunnable\)) and \[`PDFViewCtrl.docLock(boolean, LockRunnable)`]\(<https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/PDFViewCtrl.html#docLock(boolean>, com.pdftron.pdf.PDFViewCtrl.LockRunnable))
* Stability and usability improvements for [`FreehandCreate`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/tools/FreehandCreate.html) tool
* New style picker option to select whether to use object eraser or ink eraser
* Pressing the side button of an S-Pen will now act as an eraser
* [`AdvancedReaderActivity`](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/demo/app/AdvancedReaderActivity.html) has been updated to use Android 10's [scoped storage](https://developer.android.com/training/data-storage#scoped-storage)
* It is now possible to scan QR code shown in the [WebViewer's collaboration sample](https://showcase.apryse.com/document-collaboration) in the Android's showcase app and open the same document collaboration session

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

* Korean translation is now shipped with the library

## Dependency changes

* Compile and target Android version is changed from `28` to `29`
* `com.squareup.picasso:picasso` version is changed from `2.5.2` to `2.71828`
* `com.pdftron:floatingactionbutton` is now **removed** from the `PDFViewCtrlTools` library project and all samples
* `com.github.clans:fab` is now **added** to the `PDFViewCtrlTools` library project and all samples

## Fixed

* Fixed issue where the page number indicator is clickable when hidden
* Fixed issue where ink and ink highlighter annotations appear to be incorrect size when resizing
* Fixed issue where author is missing for stamp type annotations
* Fixed issue where font entry in style picker showing incorrect selected font
* Fixed issue where RTL setting is not preserved when using `PdfViewCtrlTabHostFragment`
* Fixed issue where new free text will be wrongly populated with previous free text content
* Fixed issue where sticky note with custom appearance will disappear when selected
* Fixed potential crash related to showing toast on API 25
* Fixed potential crash in `CollabViewerTabHostFragment` when initial load of XFDF is too large
* Many UI polish improvements

## APIs

### Apryse package

#### PDFViewCtrl

new method: `void docLockRead(LockRunnable)`

new method: `void docLock(boolean, LockRunnable)`

### PDFViewCtrlTools package

#### SimpleItemTouchHelperCallback

new method: `void setAllowDragAmongSections(boolean)`

#### PDFViewCtrlConfig

new method: `boolean isQuickScaleEnabled()`

new method: `PDFViewCtrlConfig setQuickScaleEnabled(boolean)`

#### ToolStyleConfig

new method: `EraserType getCustomEraserType(Context, int, String)`

new method: `boolean getCustomPressureSensitive(Context, int, String)`

new method: `boolean getDefaultPressureSensitivity(Context, int)`

new method: `boolean getDefaultPressureSensitivity(Context, int, int)`

new method: `String getEraserTypeKey(int, String)`

new method: `String getPressureSensitiveKey(int, String)`

#### ViewerConfig.Builder

new method: `Builder hideViewModeItems(ViewModePickerItems[])`

new method: `Builder showEditMenuOption(boolean)`

new method: `Builder showReflowOption(boolean)`

new method: `Builder useStandardLibrary(boolean)`

#### AddPageDialogFragment.PageType

new static final field: `PageType Dotted`

new static final field: `PageType IsometricDotted`

#### AnnotStyleDialogFragment

new method: `void setCanShowPressureSwitch(boolean)`

#### AnnotStyleView

new method: `void setCanShowPressureSwitch(boolean)`

#### DocumentView

new field: `ViewerBuilder mViewerBuilder`

#### PdfViewCtrlTabHostFragment

new method: `void onEditToolbarMenu()`

new method: `void restoreSavedMenu()`

#### ThumbnailsViewAdapter

new constructor: `ThumbnailsViewAdapter(Context, EditPagesListener, FragmentManager, PDFViewCtrl, List<Integer>, int, ViewHolderBindListener)`

new method: `void add(Integer)`

new method: `void addAll(List<Integer>)`

new method: `void clear()`

new method: `int getPositionForPage(int)`

new method: `void insert(Integer, int)`

new method: `boolean remove(Integer)`

new method: `void setData(List<Integer>)`

new method: `void setItem(int, int)`

removed constructor: `ThumbnailsViewAdapter(Context, EditPagesListener, FragmentManager, PDFViewCtrl, List<Map<String, Object>>, int, ViewHolderBindListener)`

removed method: `void add(Map<String, Object>)`

removed method: `void clearOffScreenResources()`

removed method: `void insert(Map<String, Object>, int)`

removed method: `boolean remove(Map<String, Object>)`

modified class: `ThumbnailsViewAdapter`

|       | Declaration                                                                                                                                                                                       |
| ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| From: | public class ThumbnailsViewAdapter extends SimpleRecyclerViewAdapter\<Map\<String, Object>, PageViewHolder> implements ThumbAsyncListener, ItemTouchHelperAdapter, PasswordDialogFragmentListener |
| To:   | public class ThumbnailsViewAdapter extends SimpleRecyclerViewAdapter\<Integer, PageViewHolder> implements ThumbAsyncListener, ItemTouchHelperAdapter, PasswordDialogFragmentListener              |

#### ThumbnailsViewFilterMode

new class: `ThumbnailsViewFilterMode`

new constructor: `ThumbnailsViewFilterMode(Integer)`

new method: `Integer getFilterMode()`

new method: `void observeFilterTypeChanges(LifecycleOwner, Observer<Integer>)`

new method: `void publishFilterTypeChange(Integer)`

#### ThumbnailsViewFragment

new static final field: `int FILTER_MODE_ANNOTATED`

new static final field: `int FILTER_MODE_BOOKMARKED`

new static final field: `int FILTER_MODE_NORMAL`

#### ViewModePickerDialogFragment

removed static final field: `int ITEM_ID_USERCROP`

#### ViewModePickerItems

new final class: `ViewModePickerItems`

new static final field: `ViewModePickerItems ITEM_ID_COLORMODE`

new static final field: `ViewModePickerItems ITEM_ID_CONTINUOUS`

new static final field: `ViewModePickerItems ITEM_ID_FACING_COVER`

new static final field: `ViewModePickerItems ITEM_ID_REFLOW`

new static final field: `ViewModePickerItems ITEM_ID_ROTATION`

new static final field: `ViewModePickerItems ITEM_ID_TEXT_SIZE`

new static final field: `ViewModePickerItems ITEM_ID_USERCROP`

new method: `int getValue()`

new static method: `ViewModePickerItems valueOf(String)`

new static method: `ViewModePickerItems[] values()`

#### MenuEditorAdapter

new class: `MenuEditorAdapter`

new constructor: `MenuEditorAdapter()`

new constructor: `MenuEditorAdapter(ArrayList<MenuEditorItem>)`

new static final field: `int VIEW_TYPE_CONTENT`

new static final field: `int VIEW_TYPE_HEADER`

new method: `int getItemCount()`

new method: `int getItemViewType(int)`

new method: `void insert(MenuEditorItem, int)`

new method: `boolean isHeader(int)`

new method: `void notifyHeadersChanged()`

new method: `void onBindViewHolder(ViewHolder, int)`

new method: `ViewHolder onCreateViewHolder(ViewGroup, int)`

new method: `void onItemDismiss(int)`

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

new method: `boolean onItemMove(int, int)`

new method: `MenuEditorItem removeAt(int)`

new method: `void setData(ArrayList<MenuEditorItem>)`

new method: `void setDragging(boolean)`

new method: `void setViewModel(MenuEditorViewModel)`

#### MenuEditorDialogFragment

new class: `MenuEditorDialogFragment`

new constructor: `MenuEditorDialogFragment()`

new static final field: `String TAG`

new static method: `MenuEditorDialogFragment newInstance()`

new method: `void onCreate(Bundle)`

new method: `View onCreateView(LayoutInflater, ViewGroup, Bundle)`

new method: `void onDismiss(DialogInterface)`

new method: `void onViewCreated(View, Bundle)`

new method: `void setMenuEditorDialogFragmentListener(MenuEditorDialogFragmentListener)`

#### MenuEditorDialogFragmentListener

new interface: `MenuEditorDialogFragmentListener`

new method: `void onMenuEditorDialogDismiss()`

#### MenuEditorEvent

new class: `MenuEditorEvent`

new method: `Type getEventType()`

#### MenuEditorEvent.Type

new final class: `Type`

new static final field: `Type RESET`

new static method: `Type valueOf(String)`

new static method: `Type[] values()`

#### MenuEditorViewModel

new class: `MenuEditorViewModel`

new constructor: `MenuEditorViewModel(Application)`

new method: `LiveData<ArrayList<MenuEditorItem>> getItemsLiveData()`

new final method: `Observable<MenuEditorEvent> getObservable()`

new method: `void onReset()`

new method: `void setItems(ArrayList<MenuEditorItem>)`

#### MenuEditorItem

new interface: `MenuEditorItem`

new static final field: `int GROUP_SHOW_IF_ROOM`

new static final field: `int GROUP_SHOW_NEVER`

new method: `boolean isHeader()`

#### MenuEditorItemContent

new class: `MenuEditorItemContent`

new constructor: `MenuEditorItemContent(int, String, Drawable)`

new constructor: `MenuEditorItemContent(int, String, int)`

new method: `Drawable getDrawable()`

new method: `int getIconRes()`

new method: `int getId()`

new method: `String getTitle()`

new method: `boolean isHeader()`

#### MenuEditorItemHeader

new class: `MenuEditorItemHeader`

new constructor: `MenuEditorItemHeader(int, int, int)`

new constructor: `MenuEditorItemHeader(int, String, String)`

new method: `String getDescription()`

new method: `int getDescriptionId()`

new method: `String getDraggingTitle()`

new method: `int getDraggingTitleId()`

new method: `int getGroup()`

new method: `String getTitle()`

new method: `int getTitleId()`

new method: `boolean isHeader()`

new method: `void setDraggingTitle(String)`

new method: `void setDraggingTitleId(int)`

#### AnnotStyle

new method: `EraserType getEraserType()`

new method: `boolean getPressureSensitive()`

new method: `boolean hasPressureSensitivity()`

new method: `boolean isEraser()`

new method: `void setEraserType(EraserType)`

new method: `void setPressureSensitivity(boolean)`

#### ExternalFileInfo

new static method: `String getParentRelativePath(Uri, String)`

#### Eraser

new method: `void setupAnnotProperty(AnnotStyle)`

removed method: `void setupAnnotProperty(int, float, float, int, String, String)`

#### FreehandCreate

new static method: `ArrayList<ArrayList<PointF>> createPageStrokesFromArrayObj(Obj)`

new static method: `List<List<PointF>> createStrokeListFromArrayObj(Obj)`

new method: `String getPressureSensitiveKey()`

new method: `void setPressureSensitive(boolean)`

new method: `void setupAnnotProperty(AnnotStyle)`

new method: `void setupEraserProperty(AnnotStyle)`

removed static method: `PointF convPagePtToDrawingPt(PDFViewCtrl, float, float, int, PointF)`

removed static method: `ArrayList<ArrayList<PointF>> createDrawingStrokesFromPageStrokes(PDFViewCtrl, ArrayList<ArrayList<PointF>>, boolean, int)`

removed static method: `ArrayList<ArrayList<PointF>> createDrawingStrokesFromPageStrokes(PDFViewCtrl, ArrayList<ArrayList<PointF>>, boolean, int, PointF)`

removed method: `void onLayout(boolean, int, int, int, int)`

removed method: `void onRenderingFinished()`

removed method: `void setupEraserProperty(float)`

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

#### UndoRedoManager

removed method: `boolean canInkUndo()`

removed method: `void takeInitialInkSnapshot()`

removed method: `void undoToPreviousInitialInk()`

#### AnalyticsAnnotStylePicker

new method: `void setEraseInkOnlyEnabled(boolean)`

new method: `void setPressureSensitiveEnabled(boolean)`

new method: `void setRichTextEnabled(boolean)`

#### AnalyticsHandlerAdapter

new static final field: `int EVENT_AUTO_DRAW_OPTION`

new static final field: `int EVENT_STYLE_PICKER_OPTIONS`

#### AnalyticsParam

new static method: `HashMap<String, String> stylePickerSelectEraserParam(boolean, int, String)`

new static method: `HashMap<String, String> stylePickerSelectPressureParam(boolean, int, String)`

new static method: `HashMap<String, String> stylePickerSelectRichTextParam(boolean, int, String)`

#### AnnotUtils

new static method: `int getAnnotationCountOnPage(PDFViewCtrl, int, ArrayList<Integer>)`

#### AnnotationClipboardHelper

new static method: `void copyAnnot(Context, ArrayList<Annot>, PDFViewCtrl, OnClipboardTaskListener)`

#### BookmarkManager

new static method: `ArrayList<Integer> getPdfBookmarkedPageNumbers(PDFDoc)`

#### DrawingUtils

new static method: `void drawInk(PDFViewCtrl, Canvas, ArrayList<InkItem>, Matrix, PointF)`

removed static method: `void drawInk(PDFViewCtrl, Canvas, ArrayList<InkItem>, boolean)`

removed static method: `void drawInk(PDFViewCtrl, Canvas, ArrayList<InkItem>, boolean, Matrix, PointF, boolean)`

#### HTML2PDF

new constructor: `HTML2PDF(WebView, Uri)`

#### PdfViewCtrlSettingsManager

new static final field: `String KEY_PREF_THUMB_LIST_FILTER`

new static method: `boolean getInRTLMode(Context)`

new static method: `String getSavedHomeToolbarMenu(Context)`

new static method: `int getThumbListFilterMode(Context, int)`

new static method: `void setSavedHomeToolbarMenu(Context, String)`

new static method: `void updateInRTLMode(Context, boolean)`

new static method: `void updateThumbListFilterMode(Context, int)`

#### PressureInkUtils

new class: `PressureInkUtils`

new constructor: `PressureInkUtils()`

new static method: `void clearThicknessList(Annot)`

new static method: `EraserData erasePoints(PDFViewCtrl, Ink, List<PointF>, float)`

new static method: `EraserData erasePointsAndThickness(List<List<PointF>>, List<List<Float>>, PDFViewCtrl, List<List<PointF>>, float, Rect)`

new static method: `List<double[]> generateOutlines(List<List<PointF>>, List<List<Float>>, float)`

new static method: `List<double[]> getThicknessArrays(Ink)`

new static method: `List<List<Float>> getThicknessList(Ink)`

new static method: `boolean isPressureSensitive(Annot)`

new static method: `boolean refreshCustomAppearanceForNewAnnot(PDFViewCtrl, Annot)`

new static method: `boolean refreshCustomInkAppearanceForExistingAnnot(Annot)`

new static method: `void setInkList(Ink, List<List<PointF>>)`

new static method: `void setThicknessList(Ink, List<List<Float>>)`

#### EraserData

new class: `EraserData`

new constructor: `EraserData(boolean, List<List<PointF>>, List<List<Float>>)`

new final field: `boolean hasErased`

new final field: `List<List<PointF>> newStrokeList`

new final field: `List<List<Float>> newThicknessList`

#### Utils

new static method: `Single<File> duplicateInDownload(Context, ContentResolver, Uri, String)`

new static method: `File getExternalDownloadDirectory(Context)`

new static method: `boolean isAndroidQ()`

removed static method: `Single<File> duplicateInDownload(ContentResolver, Uri, String)`

#### ViewerUtils

new static method: `ArrayList<MenuEditorItem> getMenuEditorItemsArray(String)`

new static method: `String getMenuEditorItemsJSON(ArrayList<MenuEditorItem>)`

#### AnnotDrawingView

new method: `boolean hasIcon()`

#### AnnotView

new method: `boolean hasIcon()`

#### PTFloatingActionButton

new class: `PTFloatingActionButton`

new constructor: `PTFloatingActionButton(Context)`

new constructor: `PTFloatingActionButton(Context, AttributeSet)`

new constructor: `PTFloatingActionButton(Context, AttributeSet, int)`

new constructor: `PTFloatingActionButton(Context, AttributeSet, int, int)`

#### PTFloatingActionMenu

new class: `PTFloatingActionMenu`

new constructor: `PTFloatingActionMenu(Context)`

new constructor: `PTFloatingActionMenu(Context, AttributeSet)`

new constructor: `PTFloatingActionMenu(Context, AttributeSet, int)`

#### TransparentDrawable

new method: `void setDrawCircle(boolean)`

#### UniformWidthRelativeLayout

new class: `UniformWidthRelativeLayout`

new constructor: `UniformWidthRelativeLayout(Context)`

new constructor: `UniformWidthRelativeLayout(Context, AttributeSet)`

new constructor: `UniformWidthRelativeLayout(Context, AttributeSet, int)`

### pdfnet-demo-utils package

#### AllDocumentFilesDataSource

new class: `AllDocumentFilesDataSource`

new constructor: `AllDocumentFilesDataSource(FileDao)`

new method: `void add(FileInfo)`

new method: `void delete(FileInfo)`

#### AllFilesDataSource

new static method: `FileEntity documentFileToFileEntity(DocumentFile, String)`

removed static method: `FileEntity fileToFileEntity(FileInfo)`

#### DocumentFileDatabase

new abstract class: `DocumentFileDatabase`

new constructor: `DocumentFileDatabase()`

new abstract method: `FileDao fileDao()`

new static method: `DocumentFileDatabase getInstance(Context)`

#### FolderDao

new method: `void insertFolderInBackground(FolderEntity)`

#### DocumentTreeDao

new interface: `DocumentTreeDao`

new method: `void deleteRoot(DocumentTreeEntity)`

new method: `List<DocumentTreeEntity> getRoots()`

new method: `void insertRoot(DocumentTreeEntity)`

#### DocumentTreeDatabase

new abstract class: `DocumentTreeDatabase`

new constructor: `DocumentTreeDatabase()`

new abstract method: `DocumentTreeDao folderDao()`

new static method: `DocumentTreeDatabase getInstance(Context)`

#### DocumentTreeEntity

new class: `DocumentTreeEntity`

new constructor: `DocumentTreeEntity(String)`

new method: `String getDocumentFileUri()`

#### FileListState

new static final field: `FileListState MISSING_ROOT`

#### LocalDocumentFileViewFragment

new class: `LocalDocumentFileViewFragment`

new constructor: `LocalDocumentFileViewFragment()`

new method: `String getFilterText()`

new static method: `LocalDocumentFileViewFragment newInstance()`

new method: `boolean onActionItemClicked(ActionMode, MenuItem)`

new method: `void onActivityResult(int, int, Intent)`

new method: `void onAttach(Context)`

new method: `boolean onBackPressed()`

new method: `void onConversionFailed(String)`

new method: `void onConversionFinished(String, boolean)`

new method: `void onCreate(Bundle)`

new method: `boolean onCreateActionMode(ActionMode, Menu)`

new method: `void onCreateOptionsMenu(Menu, MenuInflater)`

new method: `View onCreateView(LayoutInflater, ViewGroup, Bundle)`

new method: `void onDataChanged()`

new method: `void onDestroy()`

new method: `void onDestroyActionMode(ActionMode)`

new method: `void onDestroyView()`

new method: `void onDetach()`

new method: `void onDrawerOpened()`

new method: `void onDrawerSlide()`

new method: `void onExternalFileDeleted(ArrayList<ExternalFileInfo>)`

new method: `void onExternalFileDuplicated(ExternalFileInfo)`

new method: `void onExternalFileMerged(ArrayList<FileInfo>, ArrayList<FileInfo>, FileInfo)`

new method: `void onExternalFileMoved(Map<ExternalFileInfo, Boolean>, ExternalFileInfo)`

new method: `void onExternalFileMoved(Map<ExternalFileInfo, Boolean>, File)`

new method: `void onExternalFileRenamed(ExternalFileInfo, ExternalFileInfo)`

new method: `void onExternalFolderCreated(ExternalFileInfo, ExternalFileInfo)`

new method: `void onExternalFolderSelected(int, Object, ExternalFileInfo)`

new method: `void onFileClicked(FileInfo)`

new method: `boolean onKeyUp(int, KeyEvent)`

new method: `void onLocalFolderSelected(int, Object, File)`

new method: `void onLowMemory()`

new method: `void onMergeConfirmed(ArrayList<FileInfo>, ArrayList<FileInfo>, String)`

new method: `boolean onOptionsItemSelected(MenuItem)`

new method: `void onPause()`

new method: `void onPreLaunchViewer()`

new method: `boolean onPrepareActionMode(ActionMode, Menu)`

new method: `void onPrepareOptionsMenu(Menu)`

new method: `void onProcessNewIntent()`

new method: `boolean onQueryTextChange(String)`

new method: `boolean onQueryTextSubmit(String)`

new method: `void onResume()`

new method: `void onRootsRemoved(ArrayList<ExternalFileInfo>)`

new method: `void onSaveInstanceState(Bundle)`

new method: `void onStart()`

new method: `void onStop()`

new method: `void onViewCreated(View, Bundle)`

new method: `void resetFileListFilter()`

new method: `void setLocalFileViewFragmentListener(LocalFileViewFragmentListener)`

#### LocalFileViewFragment

new method: `void setLocalFileViewFragmentListener(LocalFileViewFragmentListener)`

removed method: `void setLocalFileViewFragmentListener(LocalFileViewFragmentListener)`

#### LocalFileViewFragmentListener

removed interface: `LocalFileViewFragmentListener`

removed method: `void onLocalFileHidden()`

removed method: `void onLocalFileShown()`

#### LocalFileViewFragmentListener

new interface: `LocalFileViewFragmentListener`

new method: `void onLocalFileHidden()`

new method: `void onLocalFileShown()`

#### FilePickerDialogFragment

new method: `String buildPath(String)`

removed method: `String buildPath()`

#### ActivityUtils

new static method: `void setupDrawer(Context, DrawerLayout, NavigationView, ViewGroup)`

removed static method: `void setupDrawer(Context, DrawerLayout, NavigationView, LinearLayout)`

removed static method: `void setupDrawer(Context, DrawerLayout, NavigationView, ConstraintLayout)`

#### MiscUtils

new static method: `void handleDocumentTreePickerResult(Activity, Uri, ContentResolver, Consumer<Uri>)`

new static method: `void launchDocumentTreePicker(Fragment)`

new static method: `void sortDocumentFileList(List<DocumentFile>, Comparator<DocumentFile>)`

### pdftron-collab package

#### DataRepository

modified method: `LiveData<List<AnnotationEntity>> getAnnotations(String)`

|       | Declaration                                   |
| ----- | --------------------------------------------- |
| From: | public LiveData\<List> getAnnotations(String) |
| To:   | public Flowable\<List> getAnnotations(String) |

#### CollabDatabase

new static method: `File getXfdfCachePath()`

#### AnnotationDao

modified method: `LiveData<List<AnnotationEntity>> getAnnotations(String)`

|       | Declaration                                            |
| ----- | ------------------------------------------------------ |
| From: | public abstract LiveData\<List> getAnnotations(String) |
| To:   | public abstract Flowable\<List> getAnnotations(String) |

#### CustomServiceUtils

new static method: `String getXfdfFile(String)`

new static method: `String getXfdfFromFile(String)`

#### AnnotationViewModel

modified method: `LiveData<List<AnnotationEntity>> getAnnotations()`

|       | Declaration                             |
| ----- | --------------------------------------- |
| From: | public LiveData\<List> getAnnotations() |
| To:   | public Flowable\<List> getAnnotations() |

### pdftron-collab-wvs package

#### BlackBoxConnection

new method: `boolean isStarted()`


---

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