Version 9.2.0 Changelog (February 10, 2022)

Version: 9.2.0.79329

Release Date: February 10, 2022

New features

  • jCenter is now completely removed from all packages
  • New border styles for various annotation types
Apryse Docs Image
  • New line ending styles for various annotation types in the Line family: Line, Polyline, Ruler, Perimeter measurement
Apryse Docs Image
  • New auto-smoothing for free highlighter tool
Apryse Docs Image
  • New reading mode image settings
Apryse Docs Image

Notes

This release of Apryse for Android brings the core PDF functionality inline with version 9.2.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

  • Fixed issue where duplicated form document would have unexpected linked fields
  • Fixed issue where deletion of direct annotation object would crash the viewer
  • Fixed issue where TXT format would not open correctly in the viewer
  • Fixed issue where interaction with items under the document slider track with guideline hidden is now possible
  • Fixed issue where remember last used toolbar would not work properly

APIs

PDFViewCtrlTools package

ToolManagerBuilder

new method: ToolManagerBuilder setDefaultStoreNewSignature(boolean)

new method: ToolManagerBuilder setFreeHighlighterAutoSmoothingRange(float)

new method: ToolManagerBuilder setPersistStoreSignatureSetting(boolean)

ToolStyleConfig

new method: String getBorderStyleKey(int, String)

new method: ShapeBorderStyle getCustomBorderStyleMode(Context, int, String)

new method: LineEndingStyle getCustomLineEndStyleMode(Context, int, String)

new method: LineEndingStyle getCustomLineStartStyleMode(Context, int, String)

new method: LineStyle getCustomLineStyleMode(Context, int, String)

new method: ShapeBorderStyle getDefaultBorderStyle(Context, int)

new method: ShapeBorderStyle getDefaultBorderStyle(Context, int, int)

new method: LineEndingStyle getDefaultLineEndStyle(Context, int)

new method: LineEndingStyle getDefaultLineEndStyle(Context, int, int)

new method: LineEndingStyle getDefaultLineStartStyle(Context, int)

new method: LineEndingStyle getDefaultLineStartStyle(Context, int, int)

new method: LineStyle getDefaultLineStyle(Context, int)

new method: LineStyle getDefaultLineStyle(Context, int, int)

new method: String getLineEndStyleKey(int, String)

new method: String getLineStartStyleKey(int, String)

new method: String getLineStyleKey(int, String)

removed method: String getBorderEffectKey(int, String)

removed method: BorderEffect getCustomBorderEffectMode(Context, int, String)

ViewerConfig.Builder

new method: Builder annotationsListFilterEnabled(boolean)

new method: Builder hidePresetBar(boolean)

new method: Builder pageNumberIndicatorPosition(int)

new method: Builder toolbarItemGravity(int)

new method: Builder topToolbarMenuIds(TopToolbarMenuId[])

AnnotStyleDialogFragment

new static final field: int BORDER_STYLE

new static final field: int LINE_END_STYLE

new static final field: int LINE_START_STYLE

new static final field: int LINE_STYLE

AnnotStyleDialogFragment.Builder

new method: Builder setShowPreview(boolean)

AnnotStyleDialogFragment.Theme

new final class: Theme

new constructor: Theme(int, int, int, int, int, int, int, int, int, int, int)

new final field: int annotPreviewBackgroundColor

new final field: int backgroundColor

new final field: int iconColor

new final field: int presetIconColor

new final field: int selectedBackgroundColor

new final field: int selectedPresetBackgroundColor

new final field: int selectedPresetIconColor

new final field: int tabIndicatorColor

new final field: int tabSelectedTextColor

new final field: int tabTextColor

new final field: int textColor

new static method: Theme fromContext(Context)

AnnotStyleView

new method: void setOnStyleLayoutClickedListener(OnStyleLayoutClickedListener)

PageIndicatorLayout

new static final field: int POSITION_BOTTOM_START

new static final field: int POSITION_TOP_END

new static final field: int POSITION_TOP_START

PdfViewCtrlTabBaseFragment

new method: boolean isConvertibleFormat()

PresetStyleGridView

new class: PresetStyleGridView

new constructor: PresetStyleGridView(Context)

new constructor: PresetStyleGridView(Context, AttributeSet)

new constructor: PresetStyleGridView(Context, AttributeSet, int)

new method: Adapter getAdapter()

new method: void setStyleList(List<Integer>)

new method: void setStyleList(List<Integer>, boolean)

ReadingModeSettingsDialog

new class: ReadingModeSettingsDialog

new constructor: ReadingModeSettingsDialog()

new static method: ReadingModeSettingsDialog newInstance()

new method: Dialog onCreateDialog(Bundle)

new method: void setReflowControl(ReflowControl)

ReflowControl

new method: void clearAdapterCacheAndReset()

new method: boolean getIsDoNotReflowTextOverImages()

new method: boolean getIsHideBackgroundImages()

new method: boolean getIsHideImagesUnderInvisibleText()

new method: boolean getIsHideImagesUnderText()

new method: void setDoNotReflowTextOverImages(boolean)

new method: void setHideBackgroundImages(boolean)

new method: void setHideImagesUnderInvisibleText(boolean)

new method: void setHideImagesUnderText(boolean)

ReflowPagerAdapter

new method: boolean getImageInReflowEnabled()

new method: boolean getIsDoNotReflowTextOverImages()

new method: boolean getIsHideBackgroundImages()

new method: boolean getIsHideImagesUnderInvisibleText()

new method: boolean getIsHideImagesUnderText()

new method: void setDoNotReflowTextOverImages(boolean)

new method: void setHideBackgroundImages(boolean)

new method: void setHideImagesUnderInvisibleText(boolean)

new method: void setHideImagesUnderText(boolean)

StylePickerView

new class: StylePickerView

new constructor: StylePickerView(Context)

new constructor: StylePickerView(Context, AttributeSet)

new constructor: StylePickerView(Context, AttributeSet, int)

new method: void dismiss()

new method: void setAnnotStyleHolder(AnnotStyleHolder)

new method: void setOnBackButtonPressedListener(OnBackButtonPressedListener)

new method: void show(int)

ThumbnailsViewFragment

new static method: Observable<List<Integer>> getPages(PDFViewCtrl, int)

ViewModePickerItems

new static final field: ViewModePickerItems ITEM_ID_READING_MODE

CreateSignatureFragment

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

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

SignatureDialogFragmentBuilder

new method: SignatureDialogFragmentBuilder usingDefaultStoreNewSignature(boolean)

new method: SignatureDialogFragmentBuilder usingPersistStoreSignatureSetting(boolean)

SignatureFragmentAdapter

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

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

AnnotStyle

new method: ShapeBorderStyle getBorderStyle()

new method: LineEndingStyle getLineEndStyle()

new method: LineEndingStyle getLineStartStyle()

new method: LineStyle getLineStyle()

new method: boolean hasBorderStyle()

new method: boolean hasBorderStyleWithoutCloud()

new method: boolean hasLineEndStyle()

new method: boolean hasLineStartStyle()

new method: boolean hasLineStyle()

new method: void setBorderStyle(ShapeBorderStyle)

new method: void setLineEndStyle(LineEndingStyle)

new method: void setLineStartStyle(LineEndingStyle)

new method: void setLineStyle(LineStyle)

new method: void updateBorderStyleListener(ShapeBorderStyle, boolean)

new method: void updateLineEndStyleListener(LineEndingStyle, boolean)

new method: void updateLineStartStyleListener(LineEndingStyle, boolean)

new method: void updateLineStyleListener(LineStyle, boolean)

removed method: BorderEffect getBorderEffect()

removed method: boolean hasBorderEffect()

removed method: void setBorderEffect(BorderEffect)

removed method: void updateBorderEffectListner(BorderEffect, boolean)

OnAnnotStyleChangeListener

new method: void onChangeAnnotBorderStyle(ShapeBorderStyle)

new method: void onChangeAnnotLineEndStyle(LineEndingStyle)

new method: void onChangeAnnotLineStartStyle(LineEndingStyle)

new method: void onChangeAnnotLineStyle(LineStyle)

removed method: void onChangeAnnotBorderEffect(BorderEffect)

AnnotStyleProperty

new method: boolean canShowBorderStyle()

new method: boolean canShowLineEndStyle()

new method: boolean canShowLineStartStyle()

new method: boolean canShowLineStyle()

new method: AnnotStyleProperty setCanShowBorderStyle(boolean)

new method: AnnotStyleProperty setCanShowLineEndStyle(boolean)

new method: AnnotStyleProperty setCanShowLineStartStyle(boolean)

new method: AnnotStyleProperty setCanShowLineStyle(boolean)

removed method: boolean canShowBorderEffect()

removed method: AnnotStyleProperty setCanShowBorderEffect(boolean)

LineEndingStyle

new final class: LineEndingStyle

new static final field: LineEndingStyle BUTT

new static final field: LineEndingStyle CIRCLE

new static final field: LineEndingStyle CLOSED_ARROW

new static final field: LineEndingStyle DIAMOND

new static final field: LineEndingStyle NONE

new static final field: LineEndingStyle OPEN_ARROW

new static final field: LineEndingStyle R_CLOSED_ARROW

new static final field: LineEndingStyle R_OPEN_ARROW

new static final field: LineEndingStyle SLASH

new static final field: LineEndingStyle SQUARE

new static method: LineEndingStyle fromInteger(Integer)

new method: int getResource()

new static method: LineEndingStyle valueOf(String)

new static method: LineEndingStyle[] values()

LineStyle

new final class: LineStyle

new static final field: LineStyle DASHED

new static final field: LineStyle DEFAULT

new static method: LineStyle fromInteger(Integer)

new method: int getResource()

new static method: LineStyle valueOf(String)

new static method: LineStyle[] values()

ShapeBorderStyle

new final class: ShapeBorderStyle

new static final field: ShapeBorderStyle CLOUDY

new static final field: ShapeBorderStyle DASHED

new static final field: ShapeBorderStyle DEFAULT

new static method: ShapeBorderStyle fromInteger(Integer)

new method: int getResource()

new static method: ShapeBorderStyle valueOf(String)

new static method: ShapeBorderStyle[] values()

AnnotEdit

new method: void onChangeAnnotBorderStyle(ShapeBorderStyle)

new method: void onChangeAnnotLineEndStyle(LineEndingStyle)

new method: void onChangeAnnotLineStartStyle(LineEndingStyle)

new method: void onChangeAnnotLineStyle(LineStyle)

removed method: void onChangeAnnotBorderEffect(BorderEffect)

ArrowCreate

removed method: boolean onDown(MotionEvent)

removed method: void onDraw(Canvas, Matrix)

removed method: boolean onMove(MotionEvent, MotionEvent, float, float)

modified class: ArrowCreate

Declaration

From:

public class ArrowCreate extends SimpleShapeCreate

To:

public class ArrowCreate extends LineCreate

FreeHighlighterCreate

new static final field: float AUTO_SMOOTH_RANGE_DEFAULT

new method: void applyAutoSmooth()

new method: void setAutoSmoothingRange(float)

FreehandCreate

new static field: float sSampleDelta

new static method: float computeThresholdValue(View)

removed static method: float computeThresholdValue(View, float)

LineCreate

new static method: void calculateLineEndingStyle(LineEndingStyle, PointF, PointF, PointF, PointF, PointF, PointF, float, double)

new method: boolean onDown(MotionEvent)

new method: boolean onMove(MotionEvent, MotionEvent, float, float)

BorderEffect

removed final class: BorderEffect

StickyNoteCreate

new method: void onChangeAnnotBorderStyle(ShapeBorderStyle)

new method: void onChangeAnnotLineEndStyle(LineEndingStyle)

new method: void onChangeAnnotLineStartStyle(LineEndingStyle)

new method: void onChangeAnnotLineStyle(LineStyle)

removed method: void onChangeAnnotBorderEffect(BorderEffect)

ToolManager

new method: boolean getDefaultStoreNewSignature()

new method: float getFreeHighlighterAutoSmoothingRange()

new method: boolean isPersistStoreSignatureSetting()

new method: void setDefaultStoreNewSignature(boolean)

new method: void setFreeHighlighterAutoSmoothingRange(float)

new method: void setPersistStoreSignatureSetting(boolean)

AnnotUtils

new static method: LineEndingStyle getLineEndingStyle(Line, boolean)

new static method: Rect getOldAnnotScreenPosition(PDFViewCtrl, Annot, int)

new static method: Annot safeDeleteAnnot(PDFDoc, Page, Annot)

new static method: Annot safeDeleteAnnotAndUpdate(PDFViewCtrl, Page, Annot, int)

new static method: void setLineEndingStyle(Line, LineEndingStyle, Boolean)

modified static method: void flattenAnnot(PDFViewCtrl, Annot, int)

Declaration

From:

public static void flattenAnnot(PDFViewCtrl, Annot, int) throws PDFNetException

To:

public static Annot flattenAnnot(PDFViewCtrl, Annot, int) throws PDFNetException

AnnotationPropertyPreviewView

new method: void setBorderStyle(ShapeBorderStyle)

new method: void setLineEndStyle(LineEndingStyle)

new method: void setLineStartStyle(LineEndingStyle)

new method: void setLineStyle(LineStyle)

removed method: void setBorderEffect(BorderEffect)

DrawingUtils

new static method: void calButt(PointF, PointF, PointF, PointF, float, double)

new static method: void calcCircle(PointF, PointF, PointF, float, double)

new static method: void calcClosedArrow(PointF, PointF, PointF, PointF, float, double)

new static method: void calcDiamond(PointF, PointF, PointF, PointF, PointF, float, double)

new static method: void calcOpenArrow(PointF, PointF, PointF, PointF, float, double)

new static method: void calcRClosedArrow(PointF, PointF, PointF, PointF, float, double)

new static method: void calcROpenArrow(PointF, PointF, PointF, PointF, float, double)

new static method: void calcSlash(PointF, PointF, PointF, PointF, float, double)

new static method: void calcSquare(PointF, PointF, PointF, PointF, PointF, PointF, float, double)

new static method: void drawArrow(Canvas, PointF, PointF, PointF, PointF, Path, Paint, PathEffect)

new static method: void drawCloudyPolygon(PDFViewCtrl, int, Canvas, ArrayList<PointF>, Path, Paint, int, Paint, int, double)

new static method: void drawLine(Canvas, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, LineEndingStyle, LineEndingStyle, Path, Paint, PathEffect, float, double)

new static method: void drawOval(Canvas, PointF, PointF, float, RectF, int, int, Paint, Paint, PathEffect)

new static method: void drawPolygon(PDFViewCtrl, int, Canvas, ArrayList<PointF>, Path, Paint, int, Paint, int, Matrix, PathEffect)

new static method: void drawPolygon(PDFViewCtrl, int, Canvas, ArrayList<PointF>, Path, Paint, int, Paint, int, PathEffect)

new static method: void drawPolyline(PDFViewCtrl, int, Canvas, ArrayList<PointF>, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, LineEndingStyle, LineEndingStyle, Path, Paint, int, PathEffect, float, double)

new static method: void drawRectangle(Canvas, PointF, PointF, float, int, int, Paint, Paint, PathEffect)

new static method: void drawRuler(Canvas, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, PointF, LineEndingStyle, LineEndingStyle, String, Path, Paint, PathEffect, float, double)

new static method: DashPathEffect getAnnotationPreviewDashPathEffect(Context)

new static method: DashPathEffect getDashPathEffect(Context)

new static method: double[] getShapesDashIntervals()

removed static method: void calcArrow(PointF, PointF, PointF, PointF, float, double)

removed static method: void calcRuler(PointF, PointF, PointF, PointF, PointF, PointF, float, double)

removed static method: void drawArrow(Canvas, PointF, PointF, PointF, PointF, Path, Paint)

removed static method: void drawLine(Canvas, PointF, PointF, Paint)

removed static method: void drawOval(Canvas, PointF, PointF, float, RectF, int, int, Paint, Paint)

removed static method: void drawPolygon(PDFViewCtrl, int, Canvas, ArrayList<PointF>, Path, Paint, int, Paint, int)

removed static method: void drawPolygon(PDFViewCtrl, int, Canvas, ArrayList<PointF>, Path, Paint, int, Paint, int, Matrix)

removed static method: void drawPolyline(PDFViewCtrl, int, Canvas, ArrayList<PointF>, Path, Paint, int)

removed static method: void drawRectangle(Canvas, PointF, PointF, float, int, int, Paint, Paint)

removed static method: void drawRuler(Canvas, PointF, PointF, PointF, PointF, PointF, PointF, Path, Paint, String, double)

ExceptionHandlerCallback

new interface: ExceptionHandlerCallback

new method: void onException(Exception)

StylePickerGridViewAdapter

new class: StylePickerGridViewAdapter

new constructor: StylePickerGridViewAdapter(Context, List<Integer>, boolean)

new method: boolean contains(Integer)

new method: int getCount()

new method: Object getItem(int)

new method: String getSelected()

new method: View getView(int, View, ViewGroup)

new method: void setRotateIcon(boolean)

new method: void setSource(List<Integer>)

Utils

new static method: Intent createSystemPickerIntent(String[], boolean)

new static method: boolean isHtmlDocument(String)

ViewerUtils

new static method: PageSet getPageSet(SparseBooleanArray)

new static method: void renameAllFields(Page)

new static method: void safeUpdatePageLayout(PDFViewCtrl)

new static method: void safeUpdatePageLayout(PDFViewCtrl, ExceptionHandlerCallback)

AnnotDrawingView

new method: void updateBorderStyle(ShapeBorderStyle)

new method: void updateLineEndStyle(LineEndingStyle)

new method: void updateLineStartStyle(LineEndingStyle)

new method: void updateLineStyle(LineStyle)

removed method: void updateBorderEffect(BorderEffect)

AnnotView

new method: void updateBorderStyle(ShapeBorderStyle)

new method: void updateLineEndStyle(LineEndingStyle)

new method: void updateLineStartStyle(LineEndingStyle)

new method: void updateLineStyle(LineStyle)

removed method: void updateBorderEffect(BorderEffect)

AnnotViewImpl

new method: void updateBorderStyle(ShapeBorderStyle)

new method: void updateLineEndStyle(LineEndingStyle)

new method: void updateLineStartStyle(LineEndingStyle)

new method: void updateLineStyle(LineStyle)

removed method: void updateBorderEffect(BorderEffect)

TopToolbarMenuId

new final class: TopToolbarMenuId

new static final field: TopToolbarMenuId CLOSE_TAB

new static final field: TopToolbarMenuId DIGITAL_SIGNATURES

new static final field: TopToolbarMenuId EDIT_PAGES

new static final field: TopToolbarMenuId EXPORT

new static final field: TopToolbarMenuId FILE_ATTACHMENT

new static final field: TopToolbarMenuId OCG_LAYERS

new static final field: TopToolbarMenuId OUTLINE

new static final field: TopToolbarMenuId PRINT

new static final field: TopToolbarMenuId REFLOW_MODE

new static final field: TopToolbarMenuId SEARCH

new static final field: TopToolbarMenuId SHARE

new static final field: TopToolbarMenuId TABS

new static final field: TopToolbarMenuId THUMBNAILS

new static final field: TopToolbarMenuId UNDO

new static final field: TopToolbarMenuId VIEW_MODE

new method: int value()

new static method: TopToolbarMenuId valueOf(String)

new static method: TopToolbarMenuId[] values()

AnnotationToolbarBuilder

new method: AnnotationToolbarBuilder addCustomButton(String, int, int)

new method: AnnotationToolbarBuilder addCustomSelectableButton(String, int, int)

new method: AnnotationToolbarBuilder addCustomSelectableLeadingStickyButton(String, int, int)

new method: AnnotationToolbarBuilder addCustomSelectableStickyButton(String, int, int)

new method: AnnotationToolbarBuilder addCustomStickyButton(String, int, int)

new method: AnnotationToolbarBuilder addLeadingCustomStickyButton(String, int, int)

ToolbarItem

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

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

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

new final field: int titleRes

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

modified final field: int title

Declaration

From:

public final int title

To:

public final String title

AnnotationToolbarComponent

new method: void setToolbarSwitcherVisible(boolean)

TabletAnnotationToolbarComponent

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

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

ActionToolbar

new method: void setToolbarSwitcherVisible(boolean)

AnnotationToolbarView

new method: void clearPreviousToolbarBuilder()

new method: void setToolbarSwitcherVisible(boolean)

pdftron-actions package

EasyPdfService

new static method: JSONObject createHTMLTask(String, int)

new method: void setCustomTask(JSONObject)

new method: void setOutputName(String)

new static method: String startDynamicJob(String, int, File, File, String)

new static method: String startDynamicJob(String, int, File, File, String, JSONObject)

EasyPdfService.EasyPdfServiceInterface

new method: Call<ResponseBody> createWorkflow(String, RequestBody)

new method: Call<ResponseBody> deleteJob(String, String)

new method: Call<ResponseBody> downloadOutput(String, String, String)

new method: Call<ResponseBody> startOrCancelJob(String, String, String)

new method: Call<ResponseBody> uploadFile(String, String, String, RequestBody)

new method: Call<ResponseBody> waitForJob(String, String)

Did you find this helpful?

Trial setup questions?

Ask experts on Discord

Need other help?

Contact Support

Pricing or product questions?

Contact Sales