Version 8.0.1 Changelog (October 28, 2020)
Version: 8.0.1.30518
Release Date: October 28, 2020
New features
Adds ability to filter annotations by annotation type, review status, author and color

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

Tap selected free text again to start editing
[New UI] New API to customize the bottom toolbar in the viewer
[New UI] New API to show/hide app bar and/or top toolbar in the viewer
New API to hide annotation rotation handle
New API to hide saved and advanced color picker in the style picker
New API to hide the style button in the signature dialog
New API to hide specific toasts or all toast shown in the viewer
New API to allow tap to select annotations when in ink tool
New API to allow tap to select any type of annotations when in free text, sticky note, and signature tool
Dependency changes
jp.wasabeef:richeditor-androidis now removed from thePDFViewCtrlToolslibrary project and all samplesorg.ccil.cowan.tagsoup:tagsoupis now added to thePDFViewCtrlToolslibrary 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
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()
Last updated
Was this helpful?