Version 7.0.5 Changelog (February 3, 2020)

Version: 7.0.5.73943

Release Date: February 3, 2020

New features

Apryse Docs Image

Document with images

Reflow with images

Apryse Docs Image
Apryse Docs Image
Apryse Docs Image

Dotted page

Isometric dotted page

Apryse Docs Image
Apryse Docs Image
Apryse Docs Image
Apryse Docs Image
  • Korean translation is now shipped with the library

Dependency changes

  • Compile and target Android version is changed from 28 to 29
  • com.squareup.picasso:picasso version is changed from 2.5.2 to 2.71828
  • com.pdftron:floatingactionbutton is now removed from the PDFViewCtrlTools library project and all samples
  • com.github.clans:fab is now added to the PDFViewCtrlTools library project and all samples

Fixed

  • Fixed issue where the page number indicator is clickable when hidden
  • Fixed issue where ink and ink highlighter annotations appear to be incorrect size when resizing
  • Fixed issue where author is missing for stamp type annotations
  • Fixed issue where font entry in style picker showing incorrect selected font
  • Fixed issue where RTL setting is not preserved when using PdfViewCtrlTabHostFragment
  • Fixed issue where new free text will be wrongly populated with previous free text content
  • Fixed issue where sticky note with custom appearance will disappear when selected
  • Fixed potential crash related to showing toast on API 25
  • Fixed potential crash in CollabViewerTabHostFragment when initial load of XFDF is too large
  • Many UI polish improvements

APIs

Apryse package

PDFViewCtrl

new method: void docLockRead(LockRunnable)

new method: void docLock(boolean, LockRunnable)

PDFViewCtrlTools package

SimpleItemTouchHelperCallback

new method: void setAllowDragAmongSections(boolean)

PDFViewCtrlConfig

new method: boolean isQuickScaleEnabled()

new method: PDFViewCtrlConfig setQuickScaleEnabled(boolean)

ToolStyleConfig

new method: EraserType getCustomEraserType(Context, int, String)

new method: boolean getCustomPressureSensitive(Context, int, String)

new method: boolean getDefaultPressureSensitivity(Context, int)

new method: boolean getDefaultPressureSensitivity(Context, int, int)

new method: String getEraserTypeKey(int, String)

new method: String getPressureSensitiveKey(int, String)

ViewerConfig.Builder

new method: Builder hideViewModeItems(ViewModePickerItems[])

new method: Builder showEditMenuOption(boolean)

new method: Builder showReflowOption(boolean)

new method: Builder useStandardLibrary(boolean)

AddPageDialogFragment.PageType

new static final field: PageType Dotted

new static final field: PageType IsometricDotted

AnnotStyleDialogFragment

new method: void setCanShowPressureSwitch(boolean)

AnnotStyleView

new method: void setCanShowPressureSwitch(boolean)

DocumentView

new field: ViewerBuilder mViewerBuilder

PdfViewCtrlTabHostFragment

new method: void onEditToolbarMenu()

new method: void restoreSavedMenu()

ThumbnailsViewAdapter

new constructor: ThumbnailsViewAdapter(Context, EditPagesListener, FragmentManager, PDFViewCtrl, List<Integer>, int, ViewHolderBindListener)

new method: void add(Integer)

new method: void addAll(List<Integer>)

new method: void clear()

new method: int getPositionForPage(int)

new method: void insert(Integer, int)

new method: boolean remove(Integer)

new method: void setData(List<Integer>)

new method: void setItem(int, int)

removed constructor: ThumbnailsViewAdapter(Context, EditPagesListener, FragmentManager, PDFViewCtrl, List<Map<String, Object>>, int, ViewHolderBindListener)

removed method: void add(Map<String, Object>)

removed method: void clearOffScreenResources()

removed method: void insert(Map<String, Object>, int)

removed method: boolean remove(Map<String, Object>)

modified class: ThumbnailsViewAdapter

Declaration

From:

public class ThumbnailsViewAdapter extends SimpleRecyclerViewAdapter<Map<String, Object>, PageViewHolder> implements ThumbAsyncListener, ItemTouchHelperAdapter, PasswordDialogFragmentListener

To:

public class ThumbnailsViewAdapter extends SimpleRecyclerViewAdapter<Integer, PageViewHolder> implements ThumbAsyncListener, ItemTouchHelperAdapter, PasswordDialogFragmentListener

ThumbnailsViewFilterMode

new class: ThumbnailsViewFilterMode

new constructor: ThumbnailsViewFilterMode(Integer)

new method: Integer getFilterMode()

new method: void observeFilterTypeChanges(LifecycleOwner, Observer<Integer>)

new method: void publishFilterTypeChange(Integer)

ThumbnailsViewFragment

new static final field: int FILTER_MODE_ANNOTATED

new static final field: int FILTER_MODE_BOOKMARKED

new static final field: int FILTER_MODE_NORMAL

ViewModePickerDialogFragment

removed static final field: int ITEM_ID_USERCROP

ViewModePickerItems

new final class: ViewModePickerItems

new static final field: ViewModePickerItems ITEM_ID_COLORMODE

new static final field: ViewModePickerItems ITEM_ID_CONTINUOUS

new static final field: ViewModePickerItems ITEM_ID_FACING_COVER

new static final field: ViewModePickerItems ITEM_ID_REFLOW

new static final field: ViewModePickerItems ITEM_ID_ROTATION

new static final field: ViewModePickerItems ITEM_ID_TEXT_SIZE

new static final field: ViewModePickerItems ITEM_ID_USERCROP

new method: int getValue()

new static method: ViewModePickerItems valueOf(String)

new static method: ViewModePickerItems[] values()

new class: MenuEditorAdapter

new constructor: MenuEditorAdapter()

new constructor: MenuEditorAdapter(ArrayList<MenuEditorItem>)

new static final field: int VIEW_TYPE_CONTENT

new static final field: int VIEW_TYPE_HEADER

new method: int getItemCount()

new method: int getItemViewType(int)

new method: void insert(MenuEditorItem, int)

new method: boolean isHeader(int)

new method: void notifyHeadersChanged()

new method: void onBindViewHolder(ViewHolder, int)

new method: ViewHolder onCreateViewHolder(ViewGroup, int)

new method: void onItemDismiss(int)

new method: void onItemDrop(int, int)

new method: boolean onItemMove(int, int)

new method: MenuEditorItem removeAt(int)

new method: void setData(ArrayList<MenuEditorItem>)

new method: void setDragging(boolean)

new method: void setViewModel(MenuEditorViewModel)

new class: MenuEditorDialogFragment

new constructor: MenuEditorDialogFragment()

new static final field: String TAG

new static method: MenuEditorDialogFragment newInstance()

new method: void onCreate(Bundle)

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

new method: void onDismiss(DialogInterface)

new method: void onViewCreated(View, Bundle)

new method: void setMenuEditorDialogFragmentListener(MenuEditorDialogFragmentListener)

new interface: MenuEditorDialogFragmentListener

new method: void onMenuEditorDialogDismiss()

new class: MenuEditorEvent

new method: Type getEventType()

new final class: Type

new static final field: Type RESET

new static method: Type valueOf(String)

new static method: Type[] values()

new class: MenuEditorViewModel

new constructor: MenuEditorViewModel(Application)

new method: LiveData<ArrayList<MenuEditorItem>> getItemsLiveData()

new final method: Observable<MenuEditorEvent> getObservable()

new method: void onReset()

new method: void setItems(ArrayList<MenuEditorItem>)

new interface: MenuEditorItem

new static final field: int GROUP_SHOW_IF_ROOM

new static final field: int GROUP_SHOW_NEVER

new method: boolean isHeader()

new class: MenuEditorItemContent

new constructor: MenuEditorItemContent(int, String, Drawable)

new constructor: MenuEditorItemContent(int, String, int)

new method: Drawable getDrawable()

new method: int getIconRes()

new method: int getId()

new method: String getTitle()

new method: boolean isHeader()

new class: MenuEditorItemHeader

new constructor: MenuEditorItemHeader(int, int, int)

new constructor: MenuEditorItemHeader(int, String, String)

new method: String getDescription()

new method: int getDescriptionId()

new method: String getDraggingTitle()

new method: int getDraggingTitleId()

new method: int getGroup()

new method: String getTitle()

new method: int getTitleId()

new method: boolean isHeader()

new method: void setDraggingTitle(String)

new method: void setDraggingTitleId(int)

AnnotStyle

new method: EraserType getEraserType()

new method: boolean getPressureSensitive()

new method: boolean hasPressureSensitivity()

new method: boolean isEraser()

new method: void setEraserType(EraserType)

new method: void setPressureSensitivity(boolean)

ExternalFileInfo

new static method: String getParentRelativePath(Uri, String)

Eraser

new method: void setupAnnotProperty(AnnotStyle)

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

FreehandCreate

new static method: ArrayList<ArrayList<PointF>> createPageStrokesFromArrayObj(Obj)

new static method: List<List<PointF>> createStrokeListFromArrayObj(Obj)

new method: String getPressureSensitiveKey()

new method: void setPressureSensitive(boolean)

new method: void setupAnnotProperty(AnnotStyle)

new method: void setupEraserProperty(AnnotStyle)

removed static method: PointF convPagePtToDrawingPt(PDFViewCtrl, float, float, int, PointF)

removed static method: ArrayList<ArrayList<PointF>> createDrawingStrokesFromPageStrokes(PDFViewCtrl, ArrayList<ArrayList<PointF>>, boolean, int)

removed static method: ArrayList<ArrayList<PointF>> createDrawingStrokesFromPageStrokes(PDFViewCtrl, ArrayList<ArrayList<PointF>>, boolean, int, PointF)

removed method: void onLayout(boolean, int, int, int, int)

removed method: void onRenderingFinished()

removed method: void setupEraserProperty(float)

removed static method: void setupInkItem(Ink, InkItem, int)

UndoRedoManager

removed method: boolean canInkUndo()

removed method: void takeInitialInkSnapshot()

removed method: void undoToPreviousInitialInk()

AnalyticsAnnotStylePicker

new method: void setEraseInkOnlyEnabled(boolean)

new method: void setPressureSensitiveEnabled(boolean)

new method: void setRichTextEnabled(boolean)

AnalyticsHandlerAdapter

new static final field: int EVENT_AUTO_DRAW_OPTION

new static final field: int EVENT_STYLE_PICKER_OPTIONS

AnalyticsParam

new static method: HashMap<String, String> stylePickerSelectEraserParam(boolean, int, String)

new static method: HashMap<String, String> stylePickerSelectPressureParam(boolean, int, String)

new static method: HashMap<String, String> stylePickerSelectRichTextParam(boolean, int, String)

AnnotUtils

new static method: int getAnnotationCountOnPage(PDFViewCtrl, int, ArrayList<Integer>)

AnnotationClipboardHelper

new static method: void copyAnnot(Context, ArrayList<Annot>, PDFViewCtrl, OnClipboardTaskListener)

BookmarkManager

new static method: ArrayList<Integer> getPdfBookmarkedPageNumbers(PDFDoc)

DrawingUtils

new static method: void drawInk(PDFViewCtrl, Canvas, ArrayList<InkItem>, Matrix, PointF)

removed static method: void drawInk(PDFViewCtrl, Canvas, ArrayList<InkItem>, boolean)

removed static method: void drawInk(PDFViewCtrl, Canvas, ArrayList<InkItem>, boolean, Matrix, PointF, boolean)

HTML2PDF

new constructor: HTML2PDF(WebView, Uri)

PdfViewCtrlSettingsManager

new static final field: String KEY_PREF_THUMB_LIST_FILTER

new static method: boolean getInRTLMode(Context)

new static method: String getSavedHomeToolbarMenu(Context)

new static method: int getThumbListFilterMode(Context, int)

new static method: void setSavedHomeToolbarMenu(Context, String)

new static method: void updateInRTLMode(Context, boolean)

new static method: void updateThumbListFilterMode(Context, int)

PressureInkUtils

new class: PressureInkUtils

new constructor: PressureInkUtils()

new static method: void clearThicknessList(Annot)

new static method: EraserData erasePoints(PDFViewCtrl, Ink, List<PointF>, float)

new static method: EraserData erasePointsAndThickness(List<List<PointF>>, List<List<Float>>, PDFViewCtrl, List<List<PointF>>, float, Rect)

new static method: List<double[]> generateOutlines(List<List<PointF>>, List<List<Float>>, float)

new static method: List<double[]> getThicknessArrays(Ink)

new static method: List<List<Float>> getThicknessList(Ink)

new static method: boolean isPressureSensitive(Annot)

new static method: boolean refreshCustomAppearanceForNewAnnot(PDFViewCtrl, Annot)

new static method: boolean refreshCustomInkAppearanceForExistingAnnot(Annot)

new static method: void setInkList(Ink, List<List<PointF>>)

new static method: void setThicknessList(Ink, List<List<Float>>)

EraserData

new class: EraserData

new constructor: EraserData(boolean, List<List<PointF>>, List<List<Float>>)

new final field: boolean hasErased

new final field: List<List<PointF>> newStrokeList

new final field: List<List<Float>> newThicknessList

Utils

new static method: Single<File> duplicateInDownload(Context, ContentResolver, Uri, String)

new static method: File getExternalDownloadDirectory(Context)

new static method: boolean isAndroidQ()

removed static method: Single<File> duplicateInDownload(ContentResolver, Uri, String)

ViewerUtils

new static method: ArrayList<MenuEditorItem> getMenuEditorItemsArray(String)

new static method: String getMenuEditorItemsJSON(ArrayList<MenuEditorItem>)

AnnotDrawingView

new method: boolean hasIcon()

AnnotView

new method: boolean hasIcon()

PTFloatingActionButton

new class: PTFloatingActionButton

new constructor: PTFloatingActionButton(Context)

new constructor: PTFloatingActionButton(Context, AttributeSet)

new constructor: PTFloatingActionButton(Context, AttributeSet, int)

new constructor: PTFloatingActionButton(Context, AttributeSet, int, int)

PTFloatingActionMenu

new class: PTFloatingActionMenu

new constructor: PTFloatingActionMenu(Context)

new constructor: PTFloatingActionMenu(Context, AttributeSet)

new constructor: PTFloatingActionMenu(Context, AttributeSet, int)

TransparentDrawable

new method: void setDrawCircle(boolean)

UniformWidthRelativeLayout

new class: UniformWidthRelativeLayout

new constructor: UniformWidthRelativeLayout(Context)

new constructor: UniformWidthRelativeLayout(Context, AttributeSet)

new constructor: UniformWidthRelativeLayout(Context, AttributeSet, int)

pdfnet-demo-utils package

AllDocumentFilesDataSource

new class: AllDocumentFilesDataSource

new constructor: AllDocumentFilesDataSource(FileDao)

new method: void add(FileInfo)

new method: void delete(FileInfo)

AllFilesDataSource

new static method: FileEntity documentFileToFileEntity(DocumentFile, String)

removed static method: FileEntity fileToFileEntity(FileInfo)

DocumentFileDatabase

new abstract class: DocumentFileDatabase

new constructor: DocumentFileDatabase()

new abstract method: FileDao fileDao()

new static method: DocumentFileDatabase getInstance(Context)

FolderDao

new method: void insertFolderInBackground(FolderEntity)

DocumentTreeDao

new interface: DocumentTreeDao

new method: void deleteRoot(DocumentTreeEntity)

new method: List<DocumentTreeEntity> getRoots()

new method: void insertRoot(DocumentTreeEntity)

DocumentTreeDatabase

new abstract class: DocumentTreeDatabase

new constructor: DocumentTreeDatabase()

new abstract method: DocumentTreeDao folderDao()

new static method: DocumentTreeDatabase getInstance(Context)

DocumentTreeEntity

new class: DocumentTreeEntity

new constructor: DocumentTreeEntity(String)

new method: String getDocumentFileUri()

FileListState

new static final field: FileListState MISSING_ROOT

LocalDocumentFileViewFragment

new class: LocalDocumentFileViewFragment

new constructor: LocalDocumentFileViewFragment()

new method: String getFilterText()

new static method: LocalDocumentFileViewFragment newInstance()

new method: boolean onActionItemClicked(ActionMode, MenuItem)

new method: void onActivityResult(int, int, Intent)

new method: void onAttach(Context)

new method: boolean onBackPressed()

new method: void onConversionFailed(String)

new method: void onConversionFinished(String, boolean)

new method: void onCreate(Bundle)

new method: boolean onCreateActionMode(ActionMode, Menu)

new method: void onCreateOptionsMenu(Menu, MenuInflater)

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

new method: void onDataChanged()

new method: void onDestroy()

new method: void onDestroyActionMode(ActionMode)

new method: void onDestroyView()

new method: void onDetach()

new method: void onDrawerOpened()

new method: void onDrawerSlide()

new method: void onExternalFileDeleted(ArrayList<ExternalFileInfo>)

new method: void onExternalFileDuplicated(ExternalFileInfo)

new method: void onExternalFileMerged(ArrayList<FileInfo>, ArrayList<FileInfo>, FileInfo)

new method: void onExternalFileMoved(Map<ExternalFileInfo, Boolean>, ExternalFileInfo)

new method: void onExternalFileMoved(Map<ExternalFileInfo, Boolean>, File)

new method: void onExternalFileRenamed(ExternalFileInfo, ExternalFileInfo)

new method: void onExternalFolderCreated(ExternalFileInfo, ExternalFileInfo)

new method: void onExternalFolderSelected(int, Object, ExternalFileInfo)

new method: void onFileClicked(FileInfo)

new method: boolean onKeyUp(int, KeyEvent)

new method: void onLocalFolderSelected(int, Object, File)

new method: void onLowMemory()

new method: void onMergeConfirmed(ArrayList<FileInfo>, ArrayList<FileInfo>, String)

new method: boolean onOptionsItemSelected(MenuItem)

new method: void onPause()

new method: void onPreLaunchViewer()

new method: boolean onPrepareActionMode(ActionMode, Menu)

new method: void onPrepareOptionsMenu(Menu)

new method: void onProcessNewIntent()

new method: boolean onQueryTextChange(String)

new method: boolean onQueryTextSubmit(String)

new method: void onResume()

new method: void onRootsRemoved(ArrayList<ExternalFileInfo>)

new method: void onSaveInstanceState(Bundle)

new method: void onStart()

new method: void onStop()

new method: void onViewCreated(View, Bundle)

new method: void resetFileListFilter()

new method: void setLocalFileViewFragmentListener(LocalFileViewFragmentListener)

LocalFileViewFragment

new method: void setLocalFileViewFragmentListener(LocalFileViewFragmentListener)

removed method: void setLocalFileViewFragmentListener(LocalFileViewFragmentListener)

LocalFileViewFragmentListener

removed interface: LocalFileViewFragmentListener

removed method: void onLocalFileHidden()

removed method: void onLocalFileShown()

LocalFileViewFragmentListener

new interface: LocalFileViewFragmentListener

new method: void onLocalFileHidden()

new method: void onLocalFileShown()

FilePickerDialogFragment

new method: String buildPath(String)

removed method: String buildPath()

ActivityUtils

new static method: void setupDrawer(Context, DrawerLayout, NavigationView, ViewGroup)

removed static method: void setupDrawer(Context, DrawerLayout, NavigationView, LinearLayout)

removed static method: void setupDrawer(Context, DrawerLayout, NavigationView, ConstraintLayout)

MiscUtils

new static method: void handleDocumentTreePickerResult(Activity, Uri, ContentResolver, Consumer<Uri>)

new static method: void launchDocumentTreePicker(Fragment)

new static method: void sortDocumentFileList(List<DocumentFile>, Comparator<DocumentFile>)

pdftron-collab package

DataRepository

modified method: LiveData<List<AnnotationEntity>> getAnnotations(String)

Declaration

From:

public LiveData<List> getAnnotations(String)

To:

public Flowable<List> getAnnotations(String)

CollabDatabase

new static method: File getXfdfCachePath()

AnnotationDao

modified method: LiveData<List<AnnotationEntity>> getAnnotations(String)

Declaration

From:

public abstract LiveData<List> getAnnotations(String)

To:

public abstract Flowable<List> getAnnotations(String)

CustomServiceUtils

new static method: String getXfdfFile(String)

new static method: String getXfdfFromFile(String)

AnnotationViewModel

modified method: LiveData<List<AnnotationEntity>> getAnnotations()

Declaration

From:

public LiveData<List> getAnnotations()

To:

public Flowable<List> getAnnotations()

pdftron-collab-wvs package

BlackBoxConnection

new method: boolean isStarted()

Did you find this helpful?

Trial setup questions?

Ask experts on Discord

Need other help?

Contact Support

Pricing or product questions?

Contact Sales