Version 9.1.0 Changelog (September 8, 2021)
Version: 9.1.0.78529
Release Date: September 8, 2021
New features
Adds support for custom font / stroke color / thickness / fill color / opacity in the freetext with rich content

Adds support for adding and modifying text markup annotations in the reader (reflow) mode (Nougat+)

Adds ability to search in the user bookmarks, outline and annotations list



Adds support for floating signature on top of a widget so it is recognized as associated with the widget
New API to hide individual save copy options menu
New API to hide annotation review state
New API to hide annotation of certain type in the annotation list
New API to add selectable button to the bottom bar
New API to hide preset bar for certain tools
Dependency changes
AndroidX libs are updated from
1.0.0to1.2.0com.google.android.material:materialis updated from1.0.0to1.4.0androidx.constraintlayout:constraintlayoutis updated from1.1.3to2.1.0
Notes
This release of Apryse for Android brings the core PDF functionality inline with version 9.1.0 of the Apryse cross-platform APIs. More information can be found on What's new for cross-platform APIs. All none-module related changes apply to Android.
Fixed
Matches Web behaviour where the first comment by the same author is added as comment instead of reply
Fixes issue where annotation without ID in XFDF does not appear in the collaboration viewer
Fixes issue where grouped annotations do not show copy option
Fixes issue where toolbars have extra padding when fullscreenModeEnabled is false
Various fixes for the outline UI
APIs
PDFViewCtrlTools package
HtmlPostProcessColorTask
removed class: HtmlPostProcessColorTask
removed constructor: HtmlPostProcessColorTask(Context, String)
removed method: void setCallback(Callback)
removed method: void setOnPostProcessColorListener(OnPostProcessColorListener)
HtmlPostProcessColorTask.Callback
removed interface: Callback
removed method: void onPostProcessColorFinished(HtmlPostProcessColorTask, String)
LoadFontAsyncTask
new method: void setIsCustomFont(boolean)
PopulateUserBookmarkListTask
new constructor: PopulateUserBookmarkListTask(Context, String, Bookmark, boolean, String)
removed constructor: PopulateUserBookmarkListTask(Context, String, Bookmark, boolean)
ToolManagerBuilder
new method: ToolManagerBuilder setFreeTextFontsFromAssets(String[])
new method: ToolManagerBuilder setFreeTextFontsFromStorage(String[])
ViewerConfig
new method: int[] getExcludedAnnotationListTypes()
new method: int[] getHideSaveCopyOptions()
new method: int[] getPresetBarsToHide()
new method: boolean isShowAnnotationReplyReviewState()
ViewerConfig.Builder
new method: Builder excludeAnnotationListTypes(int[])
new method: Builder hidePresetBars(ToolbarButtonType[])
new method: Builder hideSaveCopyOptions(int[])
new method: Builder showAnnotationReplyReviewState(boolean)
AnnotStyleView
new method: void setFontListFromAsset(Set<String>)
new method: void setFontListFromStorage(Set<String>)
AnnotationDialogFragment
new static final field: String BUNDLE_ANNOTATION_TYPE_EXCLUDE_LIST
new method: String getQueryText()
new method: boolean handleBackPress()
new method: void initOptionsMenu(Menu)
new method: void onPause()
new method: boolean onQueryTextChange(String)
new method: boolean onQueryTextSubmit(String)
new method: void resetAnnotationListSearchFilter()
modified class: AnnotationDialogFragment
From:
public class AnnotationDialogFragment extends NavigationListDialogFragment
To:
public class AnnotationDialogFragment extends NavigationListDialogFragment implements OnQueryTextListener
OutlineDialogFragment
new static final field: String BUNDLE_CREATE_BUTTON
new static final field: String BUNDLE_EDIT_BUTTON
new method: void exitEditMode(Boolean)
new method: String getQueryText()
new static method: OutlineDialogFragment newInstance(boolean, String, String)
new method: boolean onQueryTextChange(String)
new method: boolean onQueryTextSubmit(String)
new method: void onResume()
new method: void prepareOutlineSearch(Menu)
new method: void resetBookmarkListFilter()
new method: void setEditButtonText(String, String)
removed method: void exitEditMode()
removed static method: OutlineDialogFragment newInstance(boolean)
modified class: OutlineDialogFragment
From:
public class OutlineDialogFragment extends NavigationListDialogFragment implements BookmarkNodeClickListener,OnTreeNodeListener,EditOutlineMoveClickListener
To:
public class OutlineDialogFragment extends NavigationListDialogFragment implements OnQueryTextListener,BookmarkNodeClickListener,OnTreeNodeListener,EditOutlineMoveClickListener
PdfViewCtrlTabBaseFragment
new method: String getFileName(boolean, String)
new method: void handleViewSelectedFileAttachment(File, ExternalFileInfo, Uri)
SaveFolderWrapper
new constructor: SaveFolderWrapper(PdfViewCtrlTabBaseFragment, Uri)
new method: Uri getTargetUri()
removed method: String getFileName(boolean, String)
ReflowControl
new method: void setAnnotStyleProperties(HashMap<Integer, AnnotStyleProperty>)
new method: void setEditingEnabled(boolean)
ReflowPagerAdapter
new method: boolean isEditingEnabled()
new method: void setAnnotStyleProperties(HashMap<Integer, AnnotStyleProperty>)
new method: void setEditingEnabled(boolean)
removed method: void RequestHandlerProc(JobRequestResult, String, Object)
modified class: ReflowPagerAdapter
From:
public class ReflowPagerAdapter extends PagerAdapter implements ReflowWebViewCallback,RequestHandlerCallback
To:
public class ReflowPagerAdapter extends PagerAdapter implements ReflowWebViewCallback
ReflowAppCallback
new interface: ReflowAppCallback
new method: void onAnnotClicked(String, String)
new method: void onCleanSelectedAnnot()
ReflowAppInterface
new class: ReflowAppInterface
new static final field: String sName
new method: void annotClicked(String, String)
new method: void cleanSelectedAnnot()
new method: String setAnnot(String, int)
new method: void showToast(String)
UserBookmarkDialogFragment
new method: String getQueryText()
new method: boolean handleBackPress()
new method: boolean onQueryTextChange(String)
new method: boolean onQueryTextSubmit(String)
new method: void prepareOptionsMenu(Menu)
new method: void resetBookmarkListFilter()
modified class: UserBookmarkDialogFragment
From:
public class UserBookmarkDialogFragment extends NavigationListDialogFragment
To:
public class UserBookmarkDialogFragment extends NavigationListDialogFragment implements OnQueryTextListener
BookmarksDialogFragment
new method: void updateEditButtonText(String, String)
AnnotationListUtil
new static method: Observable<List<AnnotationInfo>> from(PDFViewCtrl, ArrayList<Integer>)
new static method: AnnotationInfo toAnnotationInfo(Annot, Page, TextExtractor, ArrayList<Integer>)
removed static method: Observable<List<AnnotationInfo>> from(PDFViewCtrl)
removed static method: AnnotationInfo toAnnotationInfo(Annot, Page, TextExtractor)
ReflowAnnotEditAdapter
new class: ReflowAnnotEditAdapter
new constructor: ReflowAnnotEditAdapter(List<ReflowAnnotEditItem>)
new method: int getItemCount()
new method: void onBindViewHolder(ViewHolder, int)
new method: void onBindViewHolder(ContentViewHolder, int)
new method: ViewHolder onCreateViewHolder(ViewGroup, int)
ReflowAnnotEditBottomSheetDialog
new class: ReflowAnnotEditBottomSheetDialog
new constructor: ReflowAnnotEditBottomSheetDialog(Context)
new static final field: int ITEM_DELETE
new static final field: int ITEM_STYLE
new method: void setOnItemClickListener(OnItemClickListener)
ReflowAnnotEditItem
new class: ReflowAnnotEditItem
new constructor: ReflowAnnotEditItem(int, int)
new method: int getIcon()
new method: int getTitle()
FontResource
new static final field: String FONT_FOLDER
new static method: Single<Set<String>> writeFontAssetsToCache(Context, Set<String>)
new static method: Single<Set<String>> writeFontFileToCache(Context, Set<String>)
AnnotEdit
new method: void setupAnnotProperty(AnnotStyle)
ToolManager
new method: Set<String> getFreeTextFontsFromAssets()
new method: Set<String> getFreeTextFontsFromStorage()
new method: void setFreeTextFontsFromAssets(Set<String>)
new method: void setFreeTextFontsFromStorage(Set<String>)
AnnotUtils
new static method: void createCustomFreeTextAppearance(View, PDFViewCtrl, Annot, int, Rect, boolean, AnnotStyle)
new static method: void createRCFreeTextAppearance(PTRichEditor, PDFViewCtrl, Annot, int, AnnotStyle)
new static method: Annot getAssociatedAnnotation(PDFViewCtrl, SignatureWidget, int)
removed static method: void createRCFreeTextAppearance(PTRichEditor, PDFViewCtrl, Annot, int)
BookmarkManager
new static method: ArrayList<Bookmark> getBookmarkListByTitle(PDFDoc, String, boolean)
new static method: List<UserBookmarkItem> getPdfBookmarks(Bookmark, String)
new static method: List<UserBookmarkItem> getPdfBookmarks(PDFDoc, String)
new static method: List<UserBookmarkItem> getUserBookmarks(Context, String, String)
InlineEditText
new method: void setFontResource(FontResource)
ReflowWebView
new method: void finishActionMode()
new method: void setTextSelectionCallback(TextSelectionCallback)
new method: ActionMode startActionMode(Callback)
new method: ActionMode startActionMode(Callback, int)
TextSelectionCallback
new interface: TextSelectionCallback
new method: boolean onMenuItemClick(WebView, MenuItem)
RequestCode
new static final field: int CREATE_FILE_IN_SYSTEM
Utils
new static method: File copyAssetsToTempFolder(Context, String, String, boolean)
removed static method: String getRealPathFromURI(Context, Uri)
ViewerUtils
new static method: void createFileIntent(Activity, Fragment, String, String)
new static method: String extractFileFromPortfolio(int, Context, PDFDoc, String, Uri, String)
new static method: Single<String> extractFileFromPortfolioDisposable(int, Context, PDFDoc, String, Uri, String)
removed static method: Single<String> extractFileFromPortfolioDisposable(int, Context, PDFDoc, String, String)
AutoScrollEditText
new method: void setDrawBackground(boolean)
new method: void setSize(float, float)
BottomBarBuilder
new method: BottomBarBuilder addCustomSelectableButton(int, int, int)
PresetBarComponent
new constructor: PresetBarComponent(LifecycleOwner, FragmentManager, PresetBarViewModel, ToolManagerViewModel, PresetBarView, HashSet<ToolbarButtonType>)
ToolbarButtonType
removed static final field: ToolbarButtonType TOOLBAR_SWITCHER
AnnotationToolbarComponent
new method: void setToolbarItemGravity(int)
TabletAnnotationToolbarComponent
new constructor: TabletAnnotationToolbarComponent(Fragment, FragmentManager, AnnotationToolbarViewModel, PresetBarViewModel, ToolManagerViewModel, AnnotationToolbarView, boolean, HashSet<ToolbarButtonType>)
removed constructor: TabletAnnotationToolbarComponent(Fragment, FragmentManager, AnnotationToolbarViewModel, PresetBarViewModel, ToolManagerViewModel, AnnotationToolbarView, boolean)
ActionToolbar
new method: void setToolbarItemGravity(int)
AnnotationToolbarView
new method: void setToolbarItemGravity(int)
TreeViewAdapter
new method: void addChildNode(TreeNode<BookmarkNode>, TreeNode<BookmarkNode>, boolean)
new static method: List<TreeNode<BookmarkNode>> buildBookmarkTreeNodeList(PDFViewCtrl, Bookmark, boolean)
new method: void expandDisplayNodesNodes(boolean)
new method: void moveChildNode(TreeNode<BookmarkNode>, TreeNode<BookmarkNode>, boolean)
new static method: void setBookMarkTreeNode(PDFViewCtrl, TreeNode<BookmarkNode>, boolean)
new method: void setIsSearchMode(boolean)
removed method: void addChildNode(TreeNode<BookmarkNode>, TreeNode<BookmarkNode>)
removed static method: List<TreeNode<BookmarkNode>> buildBookmarkTreeNodeList(PDFViewCtrl, Bookmark)
removed method: void moveChildNode(TreeNode<BookmarkNode>, TreeNode<BookmarkNode>)
removed static method: void setBookMarkTreeNode(PDFViewCtrl, TreeNode<BookmarkNode>)
PTAREditText
new method: void setFontResource(FontResource)
new method: void updateFont(FontResource)
MyStyleSpan
new class: MyStyleSpan
new constructor: MyStyleSpan(int)
new method: void updateDrawState(TextPaint)
new method: void updateMeasureState(TextPaint)
MyTypefaceSpan
new constructor: MyTypefaceSpan(Typeface, String)
new static field: String sFontPath
removed constructor: MyTypefaceSpan(Typeface)
pdftron-collab package
DataRepository
new method: Flowable<AnnotationEntity> getAnnotation(String)
AnnotationDao
new method: Flowable<AnnotationEntity> getAnnotation(String)
AnnotationDao_Impl
new method: Flowable<AnnotationEntity> getAnnotation(String)
CustomServiceUtils
new static method: String addLastXfdf(CollabDatabase, String, String)
removed static method: String addLastXfdf(CollabDatabase, String)
AnnotationListUIComponent
new constructor: AnnotationListUIComponent(ViewGroup, LifecycleOwner, AnnotationListViewModel, AnnotationViewModel, PDFViewCtrl, CollabAnnotationListSorter, ArrayList<Integer>)
removed constructor: AnnotationListUIComponent(ViewGroup, LifecycleOwner, AnnotationListViewModel, AnnotationViewModel, PDFViewCtrl, CollabAnnotationListSorter)
ReplyHeaderUIView
new method: void setReviewStateIcon(boolean)
ReplyUIViewModel
new method: void setParentAnnotationContent(String)
BaseHeaderUIView
new abstract method: void setReviewStateIcon(boolean)
ReplyHeader
new constructor: ReplyHeader(Context, Annot, boolean, boolean, boolean)
new constructor: ReplyHeader(String, String, int, int, float, boolean, boolean, boolean, AnnotReviewState)
new method: boolean hasReviewState()
removed constructor: ReplyHeader(Context, Annot, boolean, boolean)
removed constructor: ReplyHeader(String, String, int, int, float, boolean, boolean, AnnotReviewState)
XfdfUtils
new static method: Pair<String, HashMap<String, AnnotationEntity>> parseAndProcessXfdf(String, String)
new static method: Pair<String, HashMap<String, AnnotationEntity>> parseAndProcessXfdfCommand(String, String)
new static method: String validateXfdf(String, String)
removed static method: HashMap<String, AnnotationEntity> parseXfdfCommand(String, String)
ReplyViewModel
new method: Flowable<AnnotationEntity> getParentAnnotation()
Last updated
Was this helpful?