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

# Version 9.4.2 Changelog (December 19, 2022)

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

Version: 9.4.2.80734

Release Date: December 19, 2022

## New features

* Two new APIs added to set fixed stamp width and height `Stamper.getAbsoluteStampWidth()` and `Stamper.getAbsoluteStampHeight()`

## APIs

### PDFViewCtrlTools package

#### CustomFragmentTabLayout

*new* method: `String getCurrentTabTag()`

#### Builder

*new* method: `Builder setMessage(String)`

*new* method: `Builder setTitle(String)`

#### Theme

*new* class: `Theme`

*new* final field: `int buttonDisabledColor`

*new* static method: `Theme fromContext(Context)`

#### UserCropDialogFragment

*new* method: `boolean isCropped()`

*removed* method: `void onViewCreated(View, Bundle)`

#### Theme

*new* final class: `Theme`

*new* final field: `int chipBackgroundColor`

*new* final field: `int iconColor`

*new* final field: `int textColor`

*new* static method: `Theme fromContext(Context)`

#### PdfViewCtrlTabsManager

*new* synchronized method: `LinkedHashMap<String, PdfViewCtrlTabInfo> getAllPdfViewCtrlTabInfo(Context)`

*new* static method: `Timestamp safeGetTimestamp(String)`

#### FilterSettingsViewModel

*new* method: `void initializeViews()`

#### DialogImportWebpageUrlSelectorBinding

*new* final field: `ViewCustomAlertDialogButtonsBinding buttonContainer`

*new* final field: `TextInputLayout inputLayout`

*new* final field: `TextView message`

*new* final field: `TextView title`

*modified* final field: `EditText webpageUrl`

|       | Declaration                               |
| ----- | ----------------------------------------- |
| From: | public final EditText webpageUrl          |
| To:   | public final TextInputEditText webpageUrl |

#### ListviewItemFileListBinding

*new* final field: `ConstraintLayout content`

*new* final field: `Barrier endButtonBarrier`

*new* final field: `FrameLayout thumbnailContainer`

*removed* final field: `Guideline guidelineImage`

#### ViewCustomAlertDialogButtonsBinding

*new* final class: `ViewCustomAlertDialogButtonsBinding`

*new* final field: `MaterialButton negativeBtn`

*new* final field: `MaterialButton positiveBtn`

*new* static method: `ViewCustomAlertDialogButtonsBinding bind(View)`

*new* method: `View getRoot()`

*new* static method: `ViewCustomAlertDialogButtonsBinding inflate(LayoutInflater)`

*new* static method: `ViewCustomAlertDialogButtonsBinding inflate(LayoutInflater, ViewGroup, boolean)`

#### ImportWebpageUrlSelectorDialogFragment

*removed* method: `void onStart()`

#### FileBrowserViewFragment

*new* method: `void hideFileInfoBottomSheet()`

#### RecentViewFragment

*removed* method: `void addSelectedFilesAndReload(ArrayList<FileInfo>)`

#### ContentViewHolder

*new* field: `FrameLayout thumbnailContainer`

*modified* field: `View dragButton`

|       | Declaration                            |
| ----- | -------------------------------------- |
| From: | public View dragButton                 |
| To:   | public AppCompatImageButton dragButton |

#### HtmlConversionComponent

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

#### HtmlConversionActionListener

*new* interface: `HtmlConversionActionListener`

*new* method: `boolean shouldStartConversion()`

#### FileSelectionViewModel

*new* method: `void addSelectedFiles(ArrayList<FileInfo>)`

#### MiscUtils

*new* static method: `int getUriFileInfoType(Uri)`

*new* static method: `boolean isExternalStorageDocument(Uri)`

#### ThumbnailWorker

*new* static final field: `int MODE_UUID`

*new* method: `void tryLoadImage(int, String, String, ImageViewTopCrop, int)`


---

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