> 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-8/v8-0-1.md).

# Version 8.0.1 Changelog (October 28, 2020)

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

Version: 8.0.1.30518

Release Date: October 28, 2020

## New features

* Adds ability to [filter annotations](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/dialog/annotlist/AnnotationFilterDialogFragment.html) by annotation type, review status, author and color

![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-4ed1a7c9cb8edf601d6b246056db9b3f7cf4a7b5%2F061b24f848f52dac686d615d1610f3bbf4f76ddb-500x1028.gif?alt=media)

* Free text with rich content now supports vector appearance, plus UX improvements

![](https://226546913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QItsdFBmuuL9ezHimHy%2Fuploads%2Fgit-blob-0190393909cb26f61d3b88a7b97657b0032e9a8a%2F7f0969ae538a00e55d9d47882bff68909a9312ab-420x864.jpg?alt=media)

* Tap selected free text again to start editing
* **\[New UI]** New API to [customize the bottom toolbar](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/widget/bottombar/builder/BottomBarBuilder.html) in the viewer
* **\[New UI]** New API to [show/hide app bar and/or top toolbar](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/config/ViewerConfig.Builder.html) in the viewer
* New API to [hide annotation rotation handle](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/config/ToolManagerBuilder.html#setShowRotateHandle\(boolean\))
* New API to hide [saved and advanced color picker](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/model/AnnotStyleProperty.html) in the style picker
* New API to [hide the style button](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/config/ToolManagerBuilder.html#setShowSignaturePresets\(boolean\)) in the signature dialog
* New API to [hide specific toasts or all toast](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/utils/CommonToast.CommonToastHandler.html) shown in the viewer
* New API to [allow tap to select annotations](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/tools/FreehandCreate.html#setAllowTapToSelect\(boolean\)) when in ink tool
* New API to [allow tap to select any type of annotations](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/tools/ToolManager.html#setRestrictedTapAnnotCreation\(boolean\)) when in free text, sticky note, and signature tool

## Dependency changes

* `jp.wasabeef:richeditor-android` is now **removed** from the `PDFViewCtrlTools` library project and all samples
* `org.ccil.cowan.tagsoup:tagsoup` is now **added** to the `PDFViewCtrlTools` library project and all samples

## Fixed

* **\[New UI]** Fixed issue where same tool could appear multiple times after the ordering was changed in the annotation toolbar
* **\[New UI]** Fixed issue where preset selection does not reflect in the sticky note dialog
* **\[New UI]** Improved UX for read-only documents
* **\[New UI]** Miscellaneous visual improvements
* Fixed issue where combo box and list box could not be updated in certain situations
* Fixed issue where shapes got changed when moving into the edge of a page
* Fixed issue where local changes are not emitted sometimes when using the collaboration viewer
* Fixed flickering when creating ink and free highlighter in single stroke and force next tool mode

## APIs

### PDFViewCtrlTools package

#### ToolManagerBuilder

*new* method: `ToolManagerBuilder setRestrictedTapAnnotCreation(boolean)`

*new* method: `ToolManagerBuilder setShowRotateHandle(boolean)`

*new* method: `ToolManagerBuilder setShowSignaturePresets(boolean)`

#### ViewerConfig

*new* method: `BottomBarBuilder getBottomBarBuilder()`

*new* method: `String getConversionCachePath()`

*new* method: `boolean isPermanentToolbars()`

*new* method: `boolean isShowAppBar()`

*new* method: `boolean skipReadOnlyCheck()`

*removed* method: `boolean isPermanentTopToolbar()`

#### ViewerConfig.Builder

*new* method: `Builder bottomBarBuilder(BottomBarBuilder)`

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

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

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

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

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

#### AnnotStyleDialogFragment

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

#### AnnotationDialogFragment

*new* static final field: `String BUNDLE_ENABLE_ANNOTATION_FILTER`

*new* method: `boolean isAnnotationFilterEnabled()`

*new* method: `boolean isFilterOn()`

*new* method: `void refreshAnnotationList()`

*new* method: `void updateAnnotationVisibility()`

*new* method: `void updateAnnotationVisibilityInfo(List<AnnotationInfo>)`

#### ColorPickerView

*new* method: `void setAnnotStyleProperties(HashMap<Integer, AnnotStyleProperty>)`

#### CustomSizeDialogFragment

*new* method: `void setCustomSize(int, int)`

#### AnnotationFilterDialogFragment

*new* class: `AnnotationFilterDialogFragment`

*new* constructor: `AnnotationFilterDialogFragment()`

*new* static final field: `String TAG`

*new* field: `Fragment parentFragment`

*new* static method: `AnnotationFilterDialogFragment newInstance()`

*new* method: `void onCreate(Bundle)`

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

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

#### AnnotationListFilterInfo

*new* class: `AnnotationListFilterInfo`

*new* constructor: `AnnotationListFilterInfo(FilterState)`

*new* method: `void addAuthor(boolean, String)`

*new* method: `void addColor(boolean, String)`

*new* method: `void addStatus(boolean, String)`

*new* method: `void addType(boolean, int)`

*new* method: `void clear()`

*new* method: `boolean containsAuthor(String)`

*new* method: `boolean containsColor(String)`

*new* method: `boolean containsStatus(String)`

*new* method: `boolean containsType(int)`

*new* method: `void deselectAll()`

*new* method: `FilterState getFilterState()`

*new* method: `boolean isAnyAuthorSelected()`

*new* method: `boolean isAnyColorSelected()`

*new* method: `boolean isAnyStatusSelected()`

*new* method: `boolean isAnyTypeSelected()`

*new* method: `boolean isAuthorEnabled()`

*new* method: `Boolean isAuthorSelected(String)`

*new* method: `boolean isColorEnabled()`

*new* method: `Boolean isColorSelected(String)`

*new* method: `boolean isStatusEnabled()`

*new* method: `Boolean isStatusSelected(String)`

*new* method: `boolean isTypeEnabled()`

*new* method: `Boolean isTypeSelected(int)`

*new* method: `void removeAuthor(String)`

*new* method: `void removeColor(boolean, String)`

*new* method: `void removeStatus(String)`

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

*new* method: `void setFilterState(FilterState)`

*new* method: `void toggleAuthor(String)`

*new* method: `void toggleColor(String)`

*new* method: `void toggleStatus(String)`

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

*new* method: `void updateFilterOptions(HashSet<Integer>, HashSet<String>, HashSet<String>, HashSet<String>)`

#### FilterState

*new* final class: `FilterState`

*new* static final field: `FilterState HIDE_ALL`

*new* static final field: `FilterState OFF`

*new* static final field: `FilterState ON`

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

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

#### AnnotationListFilterUtil

*new* class: `AnnotationListFilterUtil`

*new* constructor: `AnnotationListFilterUtil()`

*new* static method: `int getReviewStatusImageResId(String)`

#### AnnotationFilterAuthorItem

*new* class: `AnnotationFilterAuthorItem`

*new* constructor: `AnnotationFilterAuthorItem()`

*new* constructor: `AnnotationFilterAuthorItem(String, String, boolean, boolean)`

*new* method: `String getTag()`

*new* method: `String getTitle()`

*new* method: `boolean isSelected()`

*new* method: `void setTag(String)`

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

#### AnnotationFilterColorItem

*new* class: `AnnotationFilterColorItem`

*new* constructor: `AnnotationFilterColorItem(ArrayList<String>, ArrayList<String>, boolean)`

*new* method: `ArrayList<String> getAllColors()`

*new* method: `ArrayList<String> getSelectedColors()`

#### AnnotationFilterHeaderItem

*new* class: `AnnotationFilterHeaderItem`

*new* constructor: `AnnotationFilterHeaderItem()`

*new* constructor: `AnnotationFilterHeaderItem(String)`

*new* method: `String getTitle()`

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

#### AnnotationFilterItem

*new* class: `AnnotationFilterItem`

*new* constructor: `AnnotationFilterItem()`

*new* method: `boolean isEnabled()`

#### AnnotationFilterReviewStatusItem

*new* class: `AnnotationFilterReviewStatusItem`

*new* constructor: `AnnotationFilterReviewStatusItem()`

*new* constructor: `AnnotationFilterReviewStatusItem(String, String, boolean, boolean)`

*new* method: `String getTag()`

*new* method: `String getTitle()`

*new* method: `boolean isSelected()`

*new* method: `void setTag(String)`

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

#### AnnotationFilterStateItem

*new* class: `AnnotationFilterStateItem`

*new* constructor: `AnnotationFilterStateItem()`

#### AnnotationFilterTypeItem

*new* class: `AnnotationFilterTypeItem`

*new* constructor: `AnnotationFilterTypeItem()`

*new* constructor: `AnnotationFilterTypeItem(String, int, boolean, boolean)`

*new* method: `int getTag()`

*new* method: `String getTitle()`

*new* method: `boolean isSelected()`

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

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

#### MenuEditorDialogFragment

*new* method: `boolean hasModifiedToolbar()`

#### CreateSignatureFragment

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

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

#### SignatureDialogFragment

*new* method: `void addOnCreateSignatureListener(OnCreateSignatureListener)`

*new* method: `void removeOnCreateSignatureListener(OnCreateSignatureListener)`

#### SignatureDialogFragmentBuilder

*new* method: `SignatureDialogFragmentBuilder usingShowSignaturePresets(boolean)`

#### SignatureFragmentAdapter

*new* constructor: `SignatureFragmentAdapter(FragmentManager, String, String, Toolbar, Toolbar, int, float, boolean, boolean, boolean, int, OnCreateSignatureListener, OnSavedSignatureListener, boolean, HashMap<Integer, AnnotStyleProperty>)`

*removed* constructor: `SignatureFragmentAdapter(FragmentManager, String, String, Toolbar, Toolbar, int, float, boolean, boolean, int, OnCreateSignatureListener, OnSavedSignatureListener, boolean, HashMap<Integer, AnnotStyleProperty>)`

#### ToolbarSwitcherViewModel

*removed* method: `void updateCurrentToolbarWithMenuEditorItems(ArrayList<MenuEditorItem>)`

#### ToolbarSwitcherItem

*removed* method: `void updateWithMenuEditorItems(ArrayList<MenuEditorItem>)`

#### AnnotStyleProperty

*new* method: `boolean canShowAdvancedColorPicker()`

*new* method: `boolean canShowSavedColorPicker()`

*new* method: `AnnotStyleProperty setCanShowAdvancedColorPicker(boolean)`

*new* method: `AnnotStyleProperty setCanShowSavedColorPicker(boolean)`

#### InkItem

*new* method: `void reset()`

#### FreeHighlighterCreate

*new* method: `void onRenderingFinished()`

#### FreeTextCreate

*new* method: `void setupAnnotProperty(AnnotStyle)`

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

#### FreehandCreate

*new* method: `void onRenderingFinished()`

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

#### Signature

*new* method: `boolean onLongPress(MotionEvent)`

#### Tool

*new* method: `void setCurrentDefaultToolModeHelper(ToolModeBase)`

#### ToolManager

*new* method: `void addDialogListener(DialogListener)`

*new* method: `boolean isRestrictedTapAnnotCreation()`

*new* method: `boolean isShowRotateHandle()`

*new* method: `boolean isShowSignaturePresets()`

*new* method: `boolean raiseInterceptDialogFragmentEvent(DialogFragment)`

*new* method: `void setPreFlingListener(PreFlingListener)`

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

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

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

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

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

*new* method: `boolean skipReadOnlyCheck()`

#### ToolManager.DialogListener

*new* interface: `DialogListener`

*new* method: `boolean onInterceptDialog(DialogFragment)`

#### ToolManager.PreFlingListener

*new* interface: `PreFlingListener`

*new* method: `boolean onFling(MotionEvent)`

*new* method: `boolean onFlingStop()`

#### AnalyticsHandlerAdapter

*new* static final field: `int EVENT_FAV_TOOLBAR_TOOL_COUNT`

*new* static final field: `int EVENT_FAV_TOOLBAR_TOOL_DUPLICATE`

*new* static final field: `int EVENT_NEW_ANNOTATION_TOOLBAR`

*new* static final field: `int EVENT_NEW_ANNOTATION_TOOLBAR_TOOL_CLOSE`

*new* static final field: `int EVENT_TOOLBAR_REORDER`

*new* static final field: `int EVENT_TOOLBAR_REORDER_TOP_3`

*new* static final field: `int EVENT_TOOLBAR_SWITCHER`

*new* method: `void sendEvent(int, List<Map<String, String>>)`

#### AnalyticsParam

*new* static method: `List<Map<String, String>> annotationToolbarItemParams(ToolbarSwitcherItem)`

*new* static method: `HashMap<String, String> annotationToolbarModifiedParam(ToolbarSwitcherItem, boolean)`

*new* static method: `HashMap<String, String> annotationToolbarParam(ToolbarItem)`

*new* static method: `HashMap<String, String> annotationToolbarSwitcherParam(ToolbarSwitcherItem)`

*new* static method: `List<Map<String, String>> favToolbarDuplicateToolCountParams(ToolbarSwitcherItem)`

*new* static method: `List<Map<String, String>> favToolbarToolCountParams(ToolbarSwitcherItem)`

*new* static method: `HashMap<String, String> toolToggleClose(boolean)`

#### AnnotationFilterOptionAdapter

*new* class: `AnnotationFilterOptionAdapter`

*new* constructor: `AnnotationFilterOptionAdapter()`

*new* static final field: `int VIEW_TYPE_ANNOT_TYPE`

*new* static final field: `int VIEW_TYPE_AUTHOR`

*new* static final field: `int VIEW_TYPE_COLOR`

*new* static final field: `int VIEW_TYPE_HEADER`

*new* static final field: `int VIEW_TYPE_REVIEW_STATUS`

*new* static final field: `int VIEW_TYPE_STATE`

*new* method: `void addOnFilterChangeEventListener(OnFilterChangeEventListener)`

*new* method: `AnnotationFilterItem getItem(int)`

*new* method: `int getItemCount()`

*new* method: `int getItemViewType(int)`

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

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

*new* method: `void removeOnFilterChangeEventListener(OnFilterChangeEventListener)`

*new* method: `void setData(AnnotationListFilterInfo, ArrayList<AnnotationFilterItem>)`

#### OnFilterChangeEventListener

*new* interface: `OnFilterChangeEventListener`

*new* method: `void onAuthorClicked(String)`

*new* method: `void onColorClicked(String)`

*new* method: `void onHideAllPressed()`

*new* method: `void onShowAllPressed()`

*new* method: `void onShowSelectedPressed()`

*new* method: `void onStatusClicked(String)`

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

#### CommonToastHandler

*new* class: `CommonToastHandler`

*new* constructor: `CommonToastHandler()`

*new* static method: `CommonToastHandler getInstance()`

*new* method: `void setCommonToastListener(CommonToastListener)`

#### CommonToastListener

*new* interface: `CommonToastListener`

*new* method: `boolean canShowToast(int, CharSequence)`

#### PdfViewCtrlSettingsManager

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

*new* static method: `void setShowStatusBarForNewUI(Context, boolean)`

#### AnnotationFilterViewModel

*new* class: `AnnotationFilterViewModel`

*new* constructor: `AnnotationFilterViewModel(Application, AnnotationListFilterInfo)`

*new* method: `void addAnnotToHide(String)`

*new* method: `void addAuthor(String)`

*new* method: `void addColor(String)`

*new* method: `void addStatus(String)`

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

*new* method: `void clearFilters()`

*new* method: `void deselectAllFilters()`

*new* method: `LiveData<AnnotationListFilterInfo> getAnnotationFilterLiveData()`

*new* method: `void onAuthorClicked(String)`

*new* method: `void onColorClicked(String)`

*new* method: `void onHideAllPressed()`

*new* method: `void onShowAllPressed()`

*new* method: `void onShowSelectedPressed()`

*new* method: `void onStatusClicked(String)`

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

*new* method: `void removeAnnotToHide(String)`

*new* method: `void setAnnotationFilterInfo(AnnotationListFilterInfo)`

*new* method: `boolean shouldHideAnnot(String)`

*new* method: `void updateFilterOptions(HashSet<Integer>, HashSet<String>, HashSet<String>, HashSet<String>)`

#### AnnotationFilterViewModel.Factory

*new* class: `Factory`

*new* constructor: `Factory(Application, AnnotationListFilterInfo)`

*new* method: `<T extends ViewModel> T create(Class<T>)`

#### RichTextEvent

*new* method: `Type getDecorationType()`

*new* method: `boolean isChecked()`

*removed* method: `List<Type> getDecorationTypes()`

#### RichTextEvent.Type

*new* static final field: `Type SUBSCRIPT`

*new* static final field: `Type SUPERSCRIPT`

#### RichTextViewModel

*new* method: `void onUpdateDecorationType(Type, boolean)`

*removed* method: `void onUpdateDecorationTypes(List<Type>)`

#### BottomBarBuilder

*new* class: `BottomBarBuilder`

*new* static final field: `Creator<BottomBarBuilder> CREATOR`

*new* method: `BottomBarBuilder addCustomButton(int, int, int)`

*new* method: `int describeContents()`

*new* method: `AnnotationToolbarBuilder getBuilder()`

*new* static method: `BottomBarBuilder withTag(String)`

*new* method: `void writeToParcel(Parcel, int)`

#### PTRichEditor

*removed* method: `int getEditorFontSize()`

*removed* method: `void setEditorFontSize(int)`

*modified* class: `PTRichEditor`

|       | Declaration                                    |
| ----- | ---------------------------------------------- |
| From: | public class PTRichEditor extends RichEditor   |
| To:   | public class PTRichEditor extends PTAREditText |

#### RCContainer

*new* method: `void setup(ToolManager)`

*new* method: `void updateToolbar(Type, boolean)`

*removed* method: `void setup(View, ToolManager)`

*removed* method: `void updateToolbar(List<Type>)`

#### RCToolbar

*new* method: `void updateDecorationType(Type, boolean)`

*new* method: `void updateDecorationTypes(List<Type>)`

*removed* method: `void updateDecorationTypes(List<Type>)`

#### AnnotationToolbarBuilder

*new* method: `AnnotationToolbarBuilder addToolButton(ToolbarButtonType, int, int)`

*new* method: `AnnotationToolbarBuilder addToolStickyButton(ToolbarButtonType, int, int)`

*new* method: `AnnotationToolbarBuilder copyWithNewOrder(Set<ToolbarItemEntity>)`

*new* method: `AnnotationToolbarBuilder copyWithNewToolbarItems(Set<ToolbarItemEntity>)`

*new* method: `AnnotationToolbarBuilder removeToolStickyButton(int)`

*removed* static method: `AnnotationToolbarBuilder fromIdJson(String, AnnotationToolbarBuilder)`

*removed* method: `ToolbarItem getToolbarItem(int)`

*removed* static method: `LinkedHashMap<Integer, ToolbarButtonType> jsonStrToMap(String)`

*removed* static method: `String mapToJsonStr(LinkedHashMap<Integer, ToolbarButtonType>)`

*removed* method: `void setToolbarItems(List<ToolbarItem>)`

*removed* method: `String toIdJson()`

#### ToolbarItem

*new* constructor: `ToolbarItem(String, ToolbarButtonType, int, boolean, int, int, int, boolean, int)`

*new* constructor: `ToolbarItem(String, ToolbarButtonType, int, boolean, int, int, int, int)`

*new* field: `int order`

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

*removed* constructor: `ToolbarItem(String, ToolbarButtonType, int, boolean, int, int, int)`

*removed* constructor: `ToolbarItem(String, ToolbarButtonType, int, boolean, int, int, int, boolean)`

#### ToolbarSharedPreferences

*new* method: `AnnotationToolbarBuilder getCustomToolbar(Context, AnnotationToolbarBuilder, boolean)`

*new* static method: `void updateToolbarItemsInDb(Context, String, String, List<MenuEditorItem>, boolean)`

*removed* static method: `void setCustomToolbar(Context, AnnotationToolbarBuilder)`

#### ToolbarDao

*new* interface: `ToolbarDao`

*new* method: `void delete(ToolbarEntity)`

*new* method: `ToolbarEntity getToolbar(String)`

*new* method: `void insertAll()`

*new* method: `void update()`

#### ToolbarDao\_Impl

*new* final class: `ToolbarDao_Impl`

*new* constructor: `ToolbarDao_Impl(RoomDatabase)`

*new* method: `void delete(ToolbarEntity)`

*new* method: `ToolbarEntity getToolbar(String)`

*new* method: `void insertAll()`

*new* method: `void update()`

#### ToolbarDatabase

*new* abstract class: `ToolbarDatabase`

*new* constructor: `ToolbarDatabase()`

*new* static final field: `String DEFAULT_DATABASE_NAME`

*new* abstract method: `ToolbarDao getToolbarDao()`

*new* abstract method: `ToolbarItemDao getToolbarItemDao()`

#### ToolbarDatabase\_Impl

*new* final class: `ToolbarDatabase_Impl`

*new* constructor: `ToolbarDatabase_Impl()`

*new* method: `void clearAllTables()`

*new* method: `ToolbarDao getToolbarDao()`

*new* method: `ToolbarItemDao getToolbarItemDao()`

#### ToolbarEntity

*new* class: `ToolbarEntity`

*new* constructor: `ToolbarEntity(String, String)`

*new* method: `String getId()`

*new* method: `String getTitle()`

#### ToolbarItemDao

*new* interface: `ToolbarItemDao`

*new* method: `void clear(String)`

*new* method: `void delete()`

*new* method: `List<ToolbarItemEntity> getToolbarItemsFromToolbar(String)`

*new* method: `void insertAll()`

*new* method: `void update()`

#### ToolbarItemDao\_Impl

*new* final class: `ToolbarItemDao_Impl`

*new* constructor: `ToolbarItemDao_Impl(RoomDatabase)`

*new* method: `void clear(String)`

*new* method: `void delete()`

*new* method: `List<ToolbarItemEntity> getToolbarItemsFromToolbar(String)`

*new* method: `void insertAll()`

*new* method: `void update()`

#### ToolbarItemEntity

*new* class: `ToolbarItemEntity`

*new* constructor: `ToolbarItemEntity(int, String, int, int)`

*new* field: `int buttonType`

*new* field: `int id`

*new* field: `int order`

*new* field: `String toolbarId`

*new* method: `boolean equals(Object)`

*new* method: `int hashCode()`


---

# 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-8/v8-0-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.
