Version 7.0.5 Changelog (February 3, 2020)
Version: 7.0.5.73943
Release Date: February 3, 2020
New features
Adds pressure sensitive inking for
FreehandCreatetool, it is possible to switch between pressure and no pressure in the style picker prior to drawing. Pressure is disabled by default, enable programmatically withFreehandCreate.setPressureSensitive(boolean)

Reflow (reading) mode now comes with images


Filter by annotated pages and bookmarked pages is now supported in the thumbnails browser

Adds dotted and isometric dotted page template in AddPageDialogFragment


Adds new menu editor to allow customization of the home toolbar in
PdfViewCtrlTabHostFragment, to disable, useViewerConfig.Builder.showEditMenuOption(false)

It is now possible to use
PdfViewCtrlTabHostFragmentwith the standard version of the library, useViewerConfig.Builder.useStandardLibrary(true)AES 128 is now used when creating a password protected copy with
PdfViewCtrlTabHostFragmentAdds new API to customize the view mode dialog, use
ViewerConfig.Builder.hideViewModeItems(ViewModePickerItems[])Adds new APIs to help locking
PDFDocwhile it is displayed in the viewer, seePDFViewCtrl.docLockRead(LockRunnable)and [PDFViewCtrl.docLock(boolean, LockRunnable)](https://sdk.apryse.com/api/android/javadoc/reference/com/pdftron/pdf/PDFViewCtrl.html#docLock(boolean, com.pdftron.pdf.PDFViewCtrl.LockRunnable))Stability and usability improvements for
FreehandCreatetoolNew style picker option to select whether to use object eraser or ink eraser
Pressing the side button of an S-Pen will now act as an eraser
AdvancedReaderActivityhas been updated to use Android 10's scoped storageIt is now possible to scan QR code shown in the WebViewer's collaboration sample in the Android's showcase app and open the same document collaboration session

Korean translation is now shipped with the library
Dependency changes
Compile and target Android version is changed from
28to29com.squareup.picasso:picassoversion is changed from2.5.2to2.71828com.pdftron:floatingactionbuttonis now removed from thePDFViewCtrlToolslibrary project and all samplescom.github.clans:fabis now added to thePDFViewCtrlToolslibrary 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
PdfViewCtrlTabHostFragmentFixed 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
CollabViewerTabHostFragmentwhen initial load of XFDF is too largeMany 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
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()
MenuEditorAdapter
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)
MenuEditorDialogFragment
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)
MenuEditorDialogFragmentListener
new interface: MenuEditorDialogFragmentListener
new method: void onMenuEditorDialogDismiss()
MenuEditorEvent
new class: MenuEditorEvent
new method: Type getEventType()
MenuEditorEvent.Type
new final class: Type
new static final field: Type RESET
new static method: Type valueOf(String)
new static method: Type[] values()
MenuEditorViewModel
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>)
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()
MenuEditorItemContent
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()
MenuEditorItemHeader
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)
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)
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()
From:
public LiveData<List> getAnnotations()
To:
public Flowable<List> getAnnotations()
pdftron-collab-wvs package
BlackBoxConnection
new method: boolean isStarted()
Last updated
Was this helpful?