Some test text!

Search
Hamburger Icon

Android / Changelog / v9.2.1

Version 9.2.1 Changelog (March 21, 2022)

Version: 9.2.1.79400

Release Date: March 21, 2022

New features

  • Updated UX for signature flow
signature-flow
  • New free text rotation
free-text-rotation
  • Support for adding comments to text markup in reflow mode
  • Support large font via device accessibility settings in the viewer
  • New duplicate option for existing annotations
  • New APIs to set editing options in the ThumbnailsViewFragment

Breaking changes

If you are experiencing issues with upgrading, please don't hesitate to contact us.

Fixed

  • Fixed issue where annotation reply to sticky note is missing UUID
  • Fixed issue where floating point width for stroke thickness would not work
  • Fixed issue where object eraser would not behave properly
  • Fixed issue where usingFileExtension would not work with XOD file without extension
  • Fixed issue where quick menu for text markup would not appear if long press quick menu is disabled
  • Fixed issue where keyboard would not come up for Free Text on Android 12
  • Fixed issue where camera would not show up in the image stamp tool on Android 12
  • Fixed issue where search previous and next buttons would have square ripple effect on Android 12
  • Fixed issue where text markup menu items in reflow mode sometimes would not show up on Android 12
  • Fixed issue where decimal could not be entered with Samsung keyboard on certain devices
  • Fixed crash with moving grouped annotations
  • [collab] Fixed issue where sticky note annotation would not be selectable in some situations
  • [collab] Fixed issue where addUser would not create the correct id to name mapping for other users
  • UX improvements on page cropping
  • UX improvements on outline editing

APIs

PDFViewCtrlTools package

SavedSignatureAdapter

new method: void setSignatures(List<File>)

ViewerConfig.Builder

new method: Builder hideThumbnailEditOptions(ThumbnailsViewEditOptions[])

new method: Builder quickBookmarkCreation(boolean)

PdfViewCtrlTabBaseFragment

new method: LiveData<BookmarksCache> getBookmarks()

new method: MutableLiveData<PageState> getPageChange()

new method: void onBookmarkModified(List<UserBookmarkItem>)

ReflowControl

new method: void setup(PDFDoc, ToolManager, OnPostProcessColorListener)

ReflowPagerAdapter

new method: void setToolManager(ToolManager)

ThumbnailsViewAdapter

new method: void rotateDocPage(int, boolean)

ThumbnailsViewFragment

new static method: ThumbnailsViewFragment newInstance(boolean, boolean, int[], String[])

ThumbnailsViewEditOptions

new final class: ThumbnailsViewEditOptions

new static final field: ThumbnailsViewEditOptions OPTION_DELETE_PAGES

new static final field: ThumbnailsViewEditOptions OPTION_DUPLICATE_PAGES

new static final field: ThumbnailsViewEditOptions OPTION_EXPORT_PAGES

new static final field: ThumbnailsViewEditOptions OPTION_INSERT_FROM_DOCUMENT

new static final field: ThumbnailsViewEditOptions OPTION_INSERT_FROM_IMAGE

new static final field: ThumbnailsViewEditOptions OPTION_INSERT_PAGES

new static final field: ThumbnailsViewEditOptions OPTION_PAGE_LABEL

new static final field: ThumbnailsViewEditOptions OPTION_ROTATE_PAGES

new static method: ThumbnailsViewEditOptions valueOf(String)

new static method: ThumbnailsViewEditOptions[] values()

UserCropApplyDialogFragment

removed class: UserCropApplyDialogFragment

removed constructor: UserCropApplyDialogFragment()

removed static final field: String BUNDLE_IS_EVEN

removed static final field: Integer OPTION_ALL_PAGES

removed static final field: Integer OPTION_EDITED_PAGE

removed static final field: Integer OPTION_ODD_OR_EVEN_PAGES

removed static method: UserCropApplyDialogFragment newInstance(boolean)

removed method: Dialog onCreateDialog(Bundle)

removed method: void setUserCropApplyDialogListener(UserCropApplyDialogListener)

UserCropApplyDialogListener

removed interface: UserCropApplyDialogListener

removed method: void onApplyCropOption(int)

ReflowAnnotEditBottomSheetDialog

new static final field: int ITEM_NOTE

SavedSignaturePickerFragment

new method: void onCreate(Bundle)

SavedSignaturePickerFragment.DialogMode

new final field: int value

new static method: DialogMode fromValue(int)

SignatureDialogFragmentBuilder

new method: SignatureDialogFragmentBuilder usingDialogMode(DialogMode)

BookmarkButtonState

new class: BookmarkButtonState

new constructor: BookmarkButtonState(boolean)

new method: boolean isSelected()

PageState

new class: PageState

new constructor: PageState(int)

new method: int getCurrentPage()

UserBookmarkItem

new field: boolean deleted

DialogAnnotNote

new constructor: DialogAnnotNote(Context, String, boolean)

Signature

new method: void showSignaturePickerDialog(OnCreateSignatureListener, OnDialogDismissListener, DialogMode)

ToolManager

new method: void raiseBookmarkModified(List<UserBookmarkItem>)

ToolManager.PdfDocModificationListener

new method: void onBookmarkModified(List<UserBookmarkItem>)

UndoRedoManager

new method: void onBookmarkModified(List<UserBookmarkItem>)

AnalyticsHandlerAdapter

new static final field: String EVENT_EDIT_OUTLINE_EDIT

removed static final field: String EVENT_EDIT_OUTLINE_RENAME

AnnotUtils

new static field: String KEY_ANNOT_ROTATION

new static field: String KEY_UNROTATED_BBOX

new static method: Rect deserializeRect(String)

new static method: String getAnnotContents(PDFDoc, Annot)

new static method: int getAnnotRotation(Annot)

new static method: int getAnnotUIRotation(PDFViewCtrl, Annot, int)

new static method: Rect getUnrotatedBBox(Annot)

new static method: boolean hasPermission(PDFDoc, ToolManager, Annot, int)

new static method: boolean hasPermission(PDFViewCtrl, PDFDoc, ToolManager, Annot, int)

new static method: boolean hasRotation(Annot)

new static method: boolean hasRotation(PDFViewCtrl, Annot)

new static method: void saveUnrotatedBBox(Annot)

new static method: String serializeRect(Rect)

new static method: void setAnnotContents(PDFDoc, Markup, String)

new static method: void setBorderStyle(Annot, int, int, double[])

OnClipboardTaskListener

new method: void onClipboardTaskDone(String, ArrayList<Annot>)

removed method: void onnClipboardTaskDone(String)

BookmarkManager

new static method: void addUserBookmark(Context, PDFViewCtrl, String, long, int)

new static method: void importUserBookmarks(Context, PDFViewCtrl, String, String)

new static method: void onPageDeleted(Context, PDFViewCtrl, String, Long, int, int)

new static method: void onPageMoved(Context, PDFViewCtrl, String, long, long, int, int)

new static method: void removeUserBookmark(Context, PDFViewCtrl, String, long, int)

new static method: void saveUserBookmarks(Context, PDFViewCtrl, String, List<UserBookmarkItem>)

new static method: void updateUserBookmarkPageObj(Context, PDFViewCtrl, String, long, long, int)

PdfViewCtrlSettingsManager

new static method: boolean getFreeHighlighterSmoothing(Context)

new static method: boolean getQuickBookmarkCreation(Context)

RotationUtils

new class: RotationUtils

new constructor: RotationUtils()

new static method: double getRotationAngleInRadiansByDegrees(int)

new static method: Rect getUnrotatedDimensionsFromBBox(Rect, int)

new static method: RectF getUnrotatedDimensionsFromBBoxRectF(Rect, int)

new static method: boolean isDivisibleByPiOverFour(double)

new static method: boolean shouldMaintainAspectRatio(int)

StampManager

new static method: Single<File> getSignaturePreview(Context, String)

Utils

new static method: void handleEmptyPopup(PDFDoc, Markup)

new static method: Drawable tintDrawable(Context, Drawable)

new static method: void updateDashedLineColor(View, int)

removed static method: void handleEmptyPopup(PDFViewCtrl, Markup)

ViewerUtils

new static method: Annot getAnnotById(PDFDoc, String, int)

BookmarksCache

new class: BookmarksCache

new constructor: BookmarksCache()

new method: boolean containsBookmark(int)

new method: List<UserBookmarkItem> getBookmarkItems()

new method: void setBookmarkItems(List<UserBookmarkItem>)

new method: void updateCache(PDFViewCtrl, boolean)

BookmarkButtonViewModel

new class: BookmarkButtonViewModel

new constructor: BookmarkButtonViewModel(Application)

new method: void attachBookmarkData(LiveData<BookmarksCache>)

new method: void attachPageData(LiveData<PageState>)

new final method: void observe(LifecycleOwner, Observer<BookmarkButtonState>)

BookmarksViewModel

new class: BookmarksViewModel

new constructor: BookmarksViewModel(Application)

new method: LiveData<BookmarksCache> getBookmarks()

new method: void loadBookmarks(PDFViewCtrl, boolean)

new final method: void observe(LifecycleOwner, Observer<BookmarksCache>)

new method: void setBookmarks(List<UserBookmarkItem>)

new method: void toggleBookmark(Context, boolean, PDFViewCtrl, int)

PageChangeViewModel

new class: PageChangeViewModel

new constructor: PageChangeViewModel(Application)

new method: MutableLiveData<PageState> getPageState()

new method: void observe(LifecycleOwner, Observer<PageState>)

new method: void onPageChange(PageState)

AnnotDrawingView

new method: void setRotateImpl(RotationImpl)

removed method: PointF center()

removed method: RotateInfo handleRotation(PointF, PointF, boolean)

removed method: void snapToDegree(Integer, float)

AnnotView

new method: int getAnnotUIRotation()

new method: void setAnnotUIRotation(int)

new method: void snapToDegree(Integer, float)

removed method: InertRichEditor getRichEditor()

AnnotViewImpl

new field: int mAnnotUIRotation

AutoScrollEditor

new method: void rotateToDegree()

new method: void setRotateImpl(RotationImpl)

PTCropImageViewBase

new method: void setPTCropImageViewListener(PTCropImageViewListener)

PTCropImageViewListener

new interface: PTCropImageViewListener

new method: void cropWindowChanged()

RotateHandleView

new method: void setCustomSize(int)

new method: void setImageResource(int)

RotationImpl

new class: RotationImpl

new constructor: RotationImpl(AnnotViewImpl)

new field: float mRotDegree

new field: float mRotDegreeSave

new field: boolean mRotated

new field: boolean mRotating

new field: Integer mSnapDegree

new method: PointF center()

new method: RotateInfo handleRotation(PointF, PointF, boolean)

new method: void snapToDegree(Integer, float)

SelectionHandleView

removed method: void setCustomSize(int)

removed method: void setImageResource(int)

BottomBarComponent

new method: void setItemIcon(int, Drawable)

new method: void setShowBackground(int, boolean)

BottomBarView

new method: void setItemIcon(int, Drawable)

new method: void setShowBackground(int, boolean)

PresetBarComponent

new constructor: PresetBarComponent(LifecycleOwner, FragmentManager, PresetBarViewModel, ToolManagerViewModel, SignatureViewModel, ViewGroup)

new constructor: PresetBarComponent(LifecycleOwner, FragmentManager, PresetBarViewModel, ToolManagerViewModel, SignatureViewModel, PresetBarView)

new constructor: PresetBarComponent(LifecycleOwner, FragmentManager, PresetBarViewModel, ToolManagerViewModel, SignatureViewModel, PresetBarView, HashSet<ToolbarButtonType>)

removed constructor: PresetBarComponent(LifecycleOwner, FragmentManager, PresetBarViewModel, ToolManagerViewModel, ViewGroup)

removed constructor: PresetBarComponent(LifecycleOwner, FragmentManager, PresetBarViewModel, ToolManagerViewModel, PresetBarView)

removed constructor: PresetBarComponent(LifecycleOwner, FragmentManager, PresetBarViewModel, ToolManagerViewModel, PresetBarView, HashSet<ToolbarButtonType>)

PresetBarTheme

new constructor: PresetBarTheme(int, int, int, int, int, int, int, int)

new final field: int accentColor

removed constructor: PresetBarTheme(int, int, int, int, int, int, int)

PresetBarView

new method: void singlePresetWithBackground(boolean)

PresetSingleButton

new method: void presetIconWithBackground(boolean)

new method: void setArrowIconVisible(boolean)

new method: void setBackgroundColor(int)

new method: void setTextColor(int)

removed method: void setIconColor(int)

SignaturePresetComponent

new class: SignaturePresetComponent

new constructor: SignaturePresetComponent(LifecycleOwner, SignatureViewModel, SignatureSelectionView, Context)

new final field: Context mContext

new method: void attachDialogToViewModel()

new method: void close()

new method: void setButtonEventListener(ButtonClickListener)

new method: void show()

SignatureSelectionDialog

new class: SignatureSelectionDialog

new constructor: SignatureSelectionDialog(FragmentManager)

new static final field: String TAG

new method: void close()

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

new method: void setAnchorView(View)

new method: void setButtonEventListener(ButtonClickListener)

new method: void setSignatures(List<String>)

new method: void show()

ButtonClickListener

new interface: ButtonClickListener

new method: void onCreateClicked()

new method: void onFirstSignatureClicked()

new method: void onManageClicked()

new method: void onSecondSignatureClicked()

SignatureSelectionView

new interface: SignatureSelectionView

new method: void close()

new method: void setButtonEventListener(ButtonClickListener)

new method: void setSignatures(List<String>)

new method: void show()

SignatureViewModel

new class: SignatureViewModel

new constructor: SignatureViewModel(Application)

new method: List<SignatureData> getSignatures()

new method: boolean hasSignatures()

new method: void observeSignatures(LifecycleOwner, Observer<List<SignatureData>>)

new method: void populateSignaturesAsync(Context)

new method: void populateSignaturesAsync(Context, Consumer<List<SignatureData>>)

SignatureData

new class: SignatureData

new constructor: SignatureData(String, long)

new method: String getFilePath()

new method: long getLastUsedRawDate()

TabletAnnotationToolbarComponent

new constructor: TabletAnnotationToolbarComponent(Fragment, FragmentManager, AnnotationToolbarViewModel, PresetBarViewModel, ToolManagerViewModel, SignatureViewModel, AnnotationToolbarView, boolean, HashSet<ToolbarButtonType>, boolean)

removed constructor: TabletAnnotationToolbarComponent(Fragment, FragmentManager, AnnotationToolbarViewModel, PresetBarViewModel, ToolManagerViewModel, AnnotationToolbarView, boolean, HashSet<ToolbarButtonType>, boolean)

ActionButton

new method: void setShowBackground(boolean)

ActionToolbar

new method: void setBackground(int, boolean)

new method: void setItemIcon(int, Drawable)

ToolbarButton

new method: void setIcon(Drawable)

BookmarkNode

new method: BookmarkNode commitEditEntry()

removed method: BookmarkNode commitRename()

ViewHolder

new method: TextView getTvPageNumber()

Trial setup questions? Ask experts on Discord
Need other help? Contact Support
Pricing or product questions? Contact Sales