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

# Version 7.1.1 Changelog (March 31, 2020)

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

Version: 7.1.1.74527

Release Date: March 31, 2020

## New features

* New annotation review status in the reply dialog and the annotation list in the [collaboration document viewer](/android/collaboration/setup-a.md)

| Reply dialog                                                                                                                                                                                                                                   | Annotation list                                                                                                                                                                                                                                |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-eba825ee93cbd4e5416c174de602a2048127a7f1%2F819dc13dd8f983cc66aabf506a27ca2dba1735e9-540x680.png?alt=media) | ![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-68070430ed29fdf840fc7a6afaa2f91172ce4592%2F7e2ae18bdf97565d844e4cbb604981d756cc925f-540x680.png?alt=media) |

* New stroke eraser setting for ink annotation

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

* Improved API documentation search

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

* New showcase samples for prepare form toolbar and fill & sign toolbar

## Fixed

* Screenshot feature will now open share intent instead of saving to storage
* Fixed issue where [`CustomRelativeLayout`](/android/ui-customization/custom-relative-layout.md) did not respect page rotation
* Fixed issue where menu editor had a crash on pre-lollipop devices
* Fixed issue where deleted text in FreeText creation dialog would come back
* Fixed potential crash when adding large image to PDF
* Fixed potential crash with text spacing tool when used by itself with PDFViewCtrl
* Fixed potential crash when erasing with stylus button

## APIs

### Apryse package

#### Ink

*new* method: `boolean erasePaths(Point, Point, double)`

### PDFViewCtrlTools package

#### ToolStyleConfig

*new* method: `InkEraserMode getCustomInkEraserMode(Context, int, String)`

*new* method: `String getInkEraserModeKey(int, String)`

#### PdfViewCtrlTabFragment

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

#### PdfViewCtrlTabHostFragment

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

#### AnnotReviewState

*new* final class: `AnnotReviewState`

*new* static final field: `AnnotReviewState ACCEPTED`

*new* static final field: `AnnotReviewState CANCELLED`

*new* static final field: `AnnotReviewState COMPLETED`

*new* static final field: `AnnotReviewState NONE`

*new* static final field: `AnnotReviewState REJECTED`

*new* static method: `AnnotReviewState from(String)`

*new* method: `int getValue()`

*new* static method: `AnnotReviewState valueOf(int)`

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

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

#### AnnotStyle

*new* method: `InkEraserMode getInkEraserMode()`

*new* method: `void setInkEraserMode(InkEraserMode)`

#### CustomRelativeLayout

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

#### Eraser

*new* constructor: `Eraser(PDFViewCtrl, EraserType, InkEraserMode)`

#### InkEraserMode

*new* final class: `InkEraserMode`

*new* static final field: `InkEraserMode PIXEL`

*new* static final field: `InkEraserMode STROKE`

*new* final field: `int mLabelRes`

*new* static method: `InkEraserMode fromLabel(Context, String)`

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

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

#### AnnotUtils

*new* static field: `String Key_State`

*new* static field: `String Key_StateAccepted`

*new* static field: `String Key_StateCancelled`

*new* static field: `String Key_StateCompleted`

*new* static field: `String Key_StateModel`

*new* static field: `String Key_StateModelMarked`

*new* static field: `String Key_StateModelReview`

*new* static field: `String Key_StateNone`

*new* static field: `String Key_StateRejected`

*new* static method: `Annot createAnnotationStateReply(String, int, PDFViewCtrl, String, AnnotReviewState)`

#### Constants

*new* static final field: `String[] FILE_EXTENSIONS_TEXT`

*new* static final field: `String[] FILE_NAME_EXTENSIONS_OFFICE`

*new* static final field: `int FILE_TYPE_TEXT`

#### PressureInkUtils

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

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

*new* static method: `Rect getInkItemBBox(List<List<PointF>>, float, int, PDFViewCtrl, boolean)`

#### Utils

*new* static method: `Intent createShareIntentForFile(Context, String, String)`

#### AnnotView

*new* method: `void setInlineEditText(InlineEditText)`

*removed* method: `void onCanvasSizeChanged()`

*modified* class: `AnnotView`

|       | Declaration                                                                         |
| ----- | ----------------------------------------------------------------------------------- |
| From: | public class AnnotView extends RelativeLayout implements OnCanvasSizeChangeListener |
| To:   | public class AnnotView extends RelativeLayout                                       |

### pdftron-collab package

#### DataRepository

*new* method: `Flowable<ReplyEntity> getReplyReviewState(String)`

*modified* method: `LiveData<List<ReplyEntity>> getReplies(String)`

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

#### AnnotationDao

*new* method: `void updateReviewState(String, int)`

#### ReplyDao

*new* method: `Flowable<ReplyEntity> getReplyReviewState(String)`

*new* method: `ReplyEntity getReplyReviewStateSync(String)`

*modified* method: `LiveData<List<ReplyEntity>> getReplies(String)`

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

#### AnnotationEntity

*new* method: `int getReviewState()`

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

#### ReplyEntity

*new* method: `int getReviewState()`

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

#### AnnotationListContent

*new* constructor: `AnnotationListContent(String, int, int, String, String, Date, Annot, double, String, Date, String, int, float, int, AnnotReviewState)`

*new* method: `AnnotReviewState getReviewState()`

*removed* constructor: `AnnotationListContent(String, int, int, String, String, Date, Annot, double, String, Date, String, int, float, int)`

#### ReplyHeaderUIView

*new* method: `void setAnnotationReviewState(AnnotReviewState)`

#### ReplyUIViewModel

*new* method: `void setReviewState(AnnotReviewState)`

#### BaseHeaderUIView

*new* method: `void onReviewStateClicked(ReplyHeader, AnnotReviewState)`

*new* abstract method: `void setAnnotationReviewState(AnnotReviewState)`

#### Type

*new* static final field: `Type REVIEW_STATE_ACCEPTED_CLICKED`

*new* static final field: `Type REVIEW_STATE_CANCELLED_CLICKED`

*new* static final field: `Type REVIEW_STATE_COMPLETED_CLICKED`

*new* static final field: `Type REVIEW_STATE_NONE_CLICKED`

*new* static final field: `Type REVIEW_STATE_REJECTED_CLICKED`

#### ReplyHeader

*new* constructor: `ReplyHeader(String, String, int, int, float, boolean, AnnotReviewState)`

*new* method: `AnnotReviewState getReviewState()`

*removed* constructor: `ReplyHeader(String, String, int, int, float, boolean)`

#### CollabManager

*new* method: `boolean isStarted()`

#### CollabTabListener

*new* interface: `CollabTabListener`

*new* method: `CollabManager getCollabManager()`

#### CollabViewerTabHostFragment

*modified* class: `CollabViewerTabHostFragment`

|       | Declaration                                                                                                                         |
| ----- | ----------------------------------------------------------------------------------------------------------------------------------- |
| From: | public class CollabViewerTabHostFragment extends PdfViewCtrlTabHostFragment implements OpenAnnotationListListener                   |
| To:   | public class CollabViewerTabHostFragment extends PdfViewCtrlTabHostFragment implements OpenAnnotationListListener,CollabTabListener |

#### ReplyViewModel

*new* method: `Flowable<ReplyEntity> getReplyReviewState()`

*modified* method: `LiveData<List<ReplyEntity>> getReplies()`

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


---

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