Follow us on Twitter for updates. Our blog highlights the best new features and changes.

Newest Release

4.1.0 - 15 Nov 2017

  • Added
    Adds support for biometric signatures. (#12865)
    • Added
      Adds class BiometricSignatureData that can be written to a digital signature.
    • Added
      Adds overloads to Signer#signFormField() and Signer#signFormFieldAsync() that take a BiometricSignatureData and will save it to the document while digitally signing it.
    • Added
      Adds getBiometricData() to the existing Signature class which will return biometric data for a signature.
    • Changed
      Signatures created with the SignaturePickerFragment will now contain biometric data if Digital Signatures are enabled in the used licence.
  • Added
    Adds support for custom appearance streams for annotations. (#12217)
    • Added
      Adds AppearanceStreamGenerator interface that supplies DataProvider for PDF document that should be used as a custom appearance stream for annotations.
    • Added
      Adds Annotation#setAppearanceStreamGenerator() to configure appearance stream generator for annotation and Annotation#getAppearanceStreamGenerator() to retrieve it.
    • Added
      Adds Annotation#generateAppearanceStream() and Annotation#generateAppearanceStreamAsync() to regenerate annotation's appearance stream.
    • Added
      Adds AnnotationProvider#addAppearanceStreamGenerator() to register global appearance stream generator that should be used for all annotations in the document before falling back to annotation's own AppearanceStreamGenerator. Adds AnnotationProvider#removeAppearanceStreamGenerator() to unregister appearance stream generator.
    • Added
      Adds AssetAppearanceStreamGenerator and ContentResolverAppearanceStreamGenerator for generating appearance streams from documents stored in application assets or provided by content providers.
    • Added
      Adds support for defining StampPickerItem with custom appearance stream generator.
    • Changed
      Extends AnnotationCreationExample in catalog with an example on how to programatically create stamp annotations with custom appearance.
    • Changed
      Extends CustomStampAnnotationsExample in catalog with an example on how to define stamp type with custom appearance stream generator. This can be used to create vector based stamps with transparent background.
  • Changed
    Widens Drawable API support. Now available for PdfThumbnailBar,PdfThumbnailGrid and as a part of PageRenderConfiguration. (#7121)
    • Added
      Adds pdfDrawables() call to PageRenderConfiguration constructor.
    • Added
      Adds addDrawableProvider(PdfDrawableProvider) and removeDrawableProvider(PdfDrawableProvider) to PdfThumbnailBar and PdfThumbnailGrid for managing drawable providers.
    • Added
      Adds setDrawableProviders(List<PdfDrawableProvider>) to ThumbnailAdapter, PdfThumbnailBarController and its implementations PdfThumbnailGrid and PdfStaticThumbnailBar.
  • Added
    Adds support for searching through the options of form list and combo boxes. (#12760)
  • Added
    Adds support for transferring document level JavaScript when processing a document. (#12769)
  • Added
    Adds overloads for Annotation#renderToBitmap and Annotation#renderToBitmapAsync accepting AnnotationRenderConfiguration that can be used to control advanced annotation rendering options. (#12916)
  • Added
    Adds the utility method for calculating bounding box from lines - PdfUtils#boundingBoxFromLines(). (#12846)
  • Changed
    Improves usage of quantity strings (plurals). (#13039)
  • Changed
    Improves detection of RichMedia elements and always prefers to show controls for audio-only tracks. (#12986)
  • Changed
    Improves displayed annotation contents for annotation list in PdfOutlineView. (#12553)
  • Changed
    Improves the switch animation from indeterminate circular progress bar to determinate horizontal progress bar when opening documents that have a provided progress. (#11878)
  • Changed
    Improves SignaturePickerFragment on tablets by disabling touch dismissing it while the user is entering a signature. (#8505)
  • API
    Deprecates registerDrawableProvider(PdfDrawableProvider) and unregisterDrawableProvider(PdfDrawableProvider) in PdfFragment. Use addDrawableProvider(PdfDrawableProvider) and removeDrawableProvider(PdfDrawableProvider) instead. (#7121)
  • Fixed
    Fixes an issue where color for selected item in listbox form fields fell back to transparent when it wasn't defined in theme. (#12991)
  • Fixed
    Fixes an issue when saving a document that has been restored from a checkpoint. (#12890)
  • Fixed
    Fixes an issue with incorrect tab order in forms. (#12902)
  • Fixed
    Fixes an issue where some flattened documents may not show correctly in third party readers. (#12901)
  • Fixed
    Fixes the positioning of the underline on text when no ascending characters are present on the line. (#11489)
  • Fixed
    Fixes an issue where some ink annotations may not be rendered correctly by third party readers. (#12900)
  • Fixed
    Fixes missing document link action when destination is not defined. (#12917)
  • Fixed
    Fixes an issue when exporting XFDF with non-ascii characters. (#12892)
  • Fixed
    Fixes an issue where adding a signature with only a single point in it caused forms to no longer work. (#12976)
  • Fixed
    Fixes an issue where the loading throbber wasn't hidden when the document failed to load. (#12804)
  • Fixed
    Fixes GoToRemoteAction object having GOTO action type set to it, instead of GOTO_REMOTE. (#13071)
  • Fixed
    Fixes a problem where some PDF documents may not show every form field element. (#12998)
  • Fixed
    Fixes issue where text in form fields are always black. (#12449)
  • Fixed
    Fixes a display problem were previously stored signatures were clipped when displayed in the SignaturePickerFragment. (#13057)
  • Fixed
    Fixes dangling symbols names in catalog app descriptions and Javadoc. (#13043)
  • Fixed
    Fixes an issue when trying to interact with a form whilst a PdfProcessorTask is in progress. (#12973)

Instant

Important: This is the last release of Instant compatible with PSPDFKit Server 2017.7 and earlier. The next release will require 2017.8. For further information, please refer to the migration guide.

  • Added
    Adds error codes to InstantErrorCode for the cases where the client and server have incompatible versions: OLD_CLIENT and OLD_SERVER. (#12720)
  • Added
    Adds a Proguard rule to consumer file to prevent a warning related to AutoValue. (#12888)
  • Changed
    InstantPdfFragment now shows error dialog when encountering OLD_CLIENT error and disables automatic sync when encountering either OLD_CLIENT or OLD_SERVER error codes. This is enabled by default and can be disabled via InstantPdfFragment#setHandleCriticalInstantErrors() (#12870)
  • API
    Adds callbacks for authentication with Instant server to InstantDocumentListener: onAuthenticationFailed called when authentication fails with an error and onAuthenticationFinished when authentication finishes successfully. (#13136)

Previous Releases

4.0.2 - 27 Oct 2017

  • API
    Adds two missing methods #addOnFormTabOrderUpdatedListener() and #removeOnFormTabOrderUpdatedListener() to FormProvider which allow management of the already existing OnFormTabOrderUpdatedListener interface. (#12847)
  • API
    Listener removal methods will no longer silently ignore illegally passed null values but will instead throw an IllegalArgumentException. Affected methods: (#12849)
    • Changed
      ActionMenu#removeActionMenuListener()
    • Changed
      AnnotationProvider#removeOnAnnotationUpdatedListener()
    • Changed
      BookmarkProvider#removeBookmarkListener()
    • Changed
      FormEditingBar#removeOnFormEditingBarLifecycleListener()
    • Changed
      FormProvider#removeOnButtonFormFieldUpdatedListener()
    • Changed
      FormProvider#removeOnChoiceFormFieldUpdatedListener()
    • Changed
      FormProvider#removeOnFormFieldUpdatedListener()
    • Changed
      FormProvider#removeOnFormTabOrderUpdatedListener()
    • Changed
      FormProvider#removeOnTextFormFieldUpdatedListener()
    • Changed
      OnVisibilityChangedListenerManager#removeOnVisibilityChangedListener()
    • Changed
      PdfFragment#removeUserInterfaceListener()
    • Changed
      PropertyInspectorCoordinatorLayout#removePropertyInspectorLifecycleListener()
  • API
    Adds eager null checks to FormProvider methods with @NonNull parameters. (#12849)
    • Changed
      FormProvider#getFormFieldWithFullyQualifiedNameAsync() and FormProvider#getFormFieldWithFullyQualifiedName()
    • Changed
      FormProvider#getFormElementForAnnotationAsync() and FormProvider#getFormElementForAnnotation()
    • Changed
      FormProvider#getFormElementWithNameAsync() and FormProvider#getFormElementWithName()
  • API
    Changes type of exceptions thrown by some existing listener management methods. Methods that previously threw a NullPointerException when called with a null value will now throw an IllegalArgumentException. Affected methods: (#12849)
    • Changed
      PdfFragment#addDocumentListener() and PdfFragment#removeDocumentListener()
    • Changed
      PdfFragment#addDocumentScrollListener() and PdfFragment#removeDocumentScrollListener()
  • Changed
    Improves UI design of signature dialog. (#12646)
    • Removed
      Removes pspdf__colorIconsBorderColor from pspdf__SignatureLayout styleable. The signature dialog's color picker is now using a FAB which doesn't have a border.
    • Added
      Adds pspdf__clearSignatureCanvasIconBackgroundColor to pspdf__SignatureLayout which enables you to set the background color of the button for clearing the signature. The default color used is Android's Color.GRAY.
  • Changed
    Improves performance when toggling checkboxes. (#12706)
  • Changed
    Improves reliability when saving documents with broken cross-reference tables. (#12212)
  • Fixed
    Fixes an issue where ink annotations were drawn incorrectly after finishing touch gestures on high resolution devices. (#12908)
  • Fixed
    Fixes wrong toolbar offset calculations in ToolbarCoordinatorLayout caused by dynamic window insets on some devices (like the Samsung Galaxy S8). (#12587)
  • Fixed
    Fixes an issue where data restored from a checkpoint would not be saved to the file when using incremental saving mode. (#12890)
  • Fixed
    Fixes an issue with incorrect tab order in forms. (#12902)
  • Fixed
    Fixes an issue where some flattened documents weren't correctly displayed in third party readers. (#12901)

Instant

  • API
    When passing null to InstantPdfFragment#removeInstantDocumentListener() and InstantPdfFragment#addInstantDocumentListener() the methods will now throw an IllegalArgumentException instead of the previously thrown NullPointerException. (#12849)

4.0.1 - 19 Oct 2017

  • Added
    Adds new catalog app launcher icon for all devices and adaptive launcher icon for Android 8.0 Oreo and newer. (#12220)
  • Changed
    Improves Javadoc for SharingMenu and ActionMenu. (#12688)
  • Changed
    Calling PdfFragment#setDocumentSigningListener() without having Digital Signatures licensed will now throw an InvalidPSPDFKitLicenseException. (#12761)
  • Fixed
    Fixes a crash that happened when tapping a SignatureFormElement without having Digital Signatures or Annotation Editing features licensed. (#12705)
  • Fixed
    Fixes several issues with the AnnotationProvider. (#12761)
    • Changed
      Annotates return type of AnnotationProvider.getAnnotations(int) as @NonNull.
    • Fixed
      Fixes a bug where annotationProvider.removeAnnotation(...) would not properly remove annotation instances that were retained across activity configuration changes.
  • Fixed
    Fixes issues with font selection for non latin languages. (#12297, #11639)
  • Fixed
    Fixes annotations moving on rotated pages when flattening. (#8242)
  • Fixed
    Fixes the SignatureSignerDialog not being restored on orientation change. (#12615)
    • API
      Adds SignatureSignerDialog#setListener() to allow you to set the listener of an already displayed dialog.
  • Fixed
    Fixes issues with corrupted documents when restoring data from checkpoints. (#12669)
  • Fixed
    Fixes an issue where text in form fields could be cut off. (#12494)
  • Fixed
    Fixes an issue where the UI wasn't properly reset when setting a new document on a PdfActivity. (#12636)
  • Fixed
    Fixes an issue with rendering text while zoomed into specific documents. (#12392)
  • Fixed
    Fixes an issue on Chromebook devices where share dialog was only partially visible. (#12683)
  • Fixed
    Fixes an issue where underline annotations and text extraction did not work correctly for some documents. (#12070)

Instant

  • Fixed
    Fixes lock inversions that could cause live- or deadlocks when syncing finished while the document was still being parsed. (#11739)
  • Fixed
    Fixes an issue where note annotation positions and renderings were not updated after syncing with Instant. (#12641)

4.0.0 - 12 Oct 2017

Below is a summary of the API changes in this release. For a full list, with our suggested migration strategy for each API that has been changed or removed, please see the migration guide

  • Changed
    The minimum required version is now Android 4.4 (API Level 19).
  • Changed
    Updates dependency - Support libraries to 26.0.2, RxJava to 2.1.3.
  • API
    Adds PdfFragment#newInstance(PdfFragment fragment, PdfConfiguration configuration) that copies the state of the given PdfFragment to the new instance.
  • Added
    Adds support for AES encryption when saving or processing a document. (#4420)
  • API
    Adds API to save and restore checkpoint files for PDF documents that support checkpointing. (#11970, #12387)
    • API
      Adds PdfDocumentCheckpointer to handle saving and cleaning of document checkpoints using a configurable saving strategy.
    • API
      Adds PdfDocument#getCheckpointer() which returns the document's checkpointer instance.
  • API
    Adds callbacks for annotation creation and removal. (#10865)
    • Changed
      Annotation creation, updates and removal are now notified via separate methods of AnnotationProvider.OnAnnotationUpdatedListener.
    • Removed
      Deprecates AnnotationManager.OnAnnotationUpdatedListener, use AnnotationProvider.OnAnnotationUpdatedListener instead. You can register annotation updated listener via PdfFragment#addOnAnnotationUpdatedListener and remove it via PdfFragment#removeOnAnnotationUpdatedListener.
  • API
    Adds DocumentListener#onPageUpdated that is called when contents of a page have changed. (#12544)
  • Added
    Adds a new icon set for all toolbar items, as well as replacing the note icons with vector versions. (#12257)
  • Added
    Adds consumerProguardFiles, which specifies all needed rules for ProGuard to work with. This means that all ProGuard rules introduced with PSPDFKit setup can be removed now. (#10402)
  • Added
    Adds ink eraser tool. (#9612)
    • Added
      Adds eraser button to the annotation creation toolbar (id: pspdf__annotation_creation_toolbar_item_eraser).
    • API
      Adds AnnotationTool#ERASER, eraser is enabled only when ink annotations are editable and eraser tool is in the list of enabled annotation tools.
    • API
      Adds EraserDefaultsProvider for controlling eraser thickness.
  • API
    Adds support for digital signatures. (#11225)
    • API
      Adds SignatureManager to manage trusted CA certificates and registered signers.
    • API
      Adds SignatureFormElement and SignatureFormField to represent signature forms in the PDF document.
    • API
      Adds DigitalSignatureInfo and DocumentSignatureInfo to access all signing related information on a document.
    • API
      Adds DigitalSignatureValidator to provide validation for DigitalSignatureInfo. The validation result is returned as DigitalSignatureValidationResult.
    • API
      Adds SignatureInfoDialog for showing the result of a signature verification.
    • API
      Adds getDocumentSignatureInfo() call to PdfDocument to easily check for signature information and validity in a PDF document.
    • API
      Adds abstract Signer class that is used to digitally sign a SignatureFormField.
    • API
      Adds MemorySigner for signing documents using a pre-loaded PrivateKeyEntry.
    • API
      Adds Pkcs12Signer for signing documents using a PKCS#12 file.
    • API
      Adds SigningFailedException for signalizing a failure during signing.
    • API
      Adds SigningStatus to express the result of a signing operation during a failure.
    • API
      Adds SignatureSignerDialog for signing a single signature form field using a Signer.
    • API
      Adds DocumentSigningListener to listen to signing events on the SignatureSignerDialog.
    • API
      Adds PdfFragment#setDocumentSigningListener() to override the default signing listener used by the fragment.
    • API
      Adds Signature#getSignerIdentifier() to return the unique identifier of an associated Signer.
    • API
      Adds Signature#toInkAnnotation(com.pspdfkit.document.PdfDocument, int, android.graphics.RectF) for creating an InkAnnotation whose bounding box fixes the given RectF.
    • API
      Moves Signature class from com.pspdfkit.annotations.signatures to com.pspdfkit.signatures.
    • API
      Moves SignaturePickerFragment class from com.pspdfkit.annotations.signatures to com.pspdfkit.signatures.
    • Changed
      The SignaturePickerFragment provides a new, cleaner UI flow, allowing users to pick signatures from a list, and store them to a database.
  • API
    Adds DocumentListener#onDocumentSaveCancelled that is being called when document saving is skipped. (#11950)
  • API
    Adds API and UI for creating link annotations from selected text. (#11296, #12092)
    • API
      Adds 'Create link' button to the text selection toolbar (id: pspdf__text_selection_toolbar_item_link) for creating links on top of the selected text (fires up a dialog).
    • API
      Adds TextSelectionController#createLinkAboveSelectedText() method for creating links above selected text (fires up a dialog).
    • API
      Adds LinkAnnotation constructor method for creating link annotations.
    • API
      Adds UriAction constructor for creating URI actions with specified URL string.
    • API
      Adds GoToAction constructor for creating GoTo actions with specified target page index.
    • API
      Adds setAction() method on LinkAnnotation class for setting an Action to be triggered when link annotation is clicked.
    • API
      Adds LinkAnnotationHighlighter which highlightes newly created link annotations.
  • API
    Adds API for controlling defaults for annotation tools. This extends existing annotation defaults API. (#12100)
    • API
      Adds API to set annotation defaults provider for AnnotationTool in AnnotationDefaultsManager. Setting annotation defaults provider for AnnotationTool overrides defaults defined for underlying AnnotationType when creating annotations.
    • API
      Replaces AnnotationType with AnnotationTool in AnnotationPreferencesManager methods.
  • API
    Adds USER_INTERFACE_VIEW_MODE_MANUAL providing total control over user interface visibility. (#11791)
  • API
    Unifies and improves naming for listeners. (#9447)
    • API
      Renames DownloadDocumentTask.DownloadedFileCallback to DownloadDocumentTask.OnFileDownloadedListener.
    • API
      Renames ExtractAssetTask.OnDocumentExtractedCallback to ExtractAssetTask.OnDocumentExtractedListener.
    • API
      Renames InstantPdfDocument#registerInstantDocumentListener to InstantPdfDocument#addInstantDocumentListener.
    • API
      Renames InstantPdfDocument#unregisterInstantDocumentListener to InstantPdfDocument#removeInstantDocumentListener.
    • API
      Renames InstantPdfFragment#registerInstantDocumentListener to InstantPdfFragment#addInstantDocumentListener.
    • API
      Renames InstantPdfFragment#unregisterInstantDocumentListener to InstantPdfFragment#removeInstantDocumentListener.
    • API
      Renames OnAnnotationProviderUpdatedListener#onAnnotationDeleted to OnAnnotationProviderUpdatedListener#onAnnotationRemoved.
    • API
      Renames AnnotationProvider.OnAnnotationProviderUpdatedListener to AnnotationProvider.OnAnnotationUpdatedListener.
    • API
      Renames AnnotationProvider#registerOnAnnotationProviderUpdatedListener to AnnotationProvider#addOnAnnotationUpdatedListener.
    • API
      Renames AnnotationProvider#unregisterOnAnnotationProviderUpdatedListener to AnnotationProvider#removeOnAnnotationUpdatedListener.
    • API
      Renames ActionResolver#registerDocumentActionListener to ActionResolver#addDocumentActionListener.
    • API
      Renames ActionResolver#unregisterDocumentActionListener to ActionResolver#removeDocumentActionListener.
    • API
      Renames NewPageFactory.OnNewPageReadyCallback to NewPageFactory.OnNewPageReadyListener.
    • API
      Renames PdfLibrary#registerLibraryIndexingListener to PdfLibrary#addLibraryIndexingListener.
    • API
      Renames PdfLibrary#unregisterLibraryIndexingListener to PdfLibrary#removeLibraryIndexingListener.
    • API
      Renames FormProvider#registerOnFormFieldUpdatedListener to FormProvider#addOnFormFieldUpdatedListener.
    • API
      Renames FormProvider#unregisterOnFormFieldUpdatedListener to FormProvider#removeOnFormFieldUpdatedListener.
    • API
      Renames FormProvider#registerOnFormTabOrderUpdatedListener to FormProvider#addOnFormTabOrderUpdatedListener.
    • API
      Renames FormProvider#unregisterOnFormTabOrderUpdatedListener to FormProvider#removeOnFormTabOrderUpdatedListener.
    • API
      Renames FormProvider#registerOnTextFormFieldUpdatedListener to FormProvider#addOnTextFormFieldUpdatedListener.
    • API
      Renames FormProvider#unregisterOnTextFormFieldUpdatedListener to FormProvider#removeOnTextFormFieldUpdatedListener.
    • API
      Renames FormProvider#registerOnButtonFormFieldUpdatedListener to FormProvider#addOnButtonFormFieldUpdatedListener.
    • API
      Renames FormProvider#unregisterOnButtonFormFieldUpdatedListener to FormProvider#removeOnButtonFormFieldUpdatedListener.
    • API
      Renames FormProvider#registerOnChoiceFormFieldUpdatedListener to FormProvider#addOnChoiceFormFieldUpdatedListener.
    • API
      Renames FormProvider#unregisterOnChoiceFormFieldUpdatedListener to FormProvider#removeOnChoiceFormFieldUpdatedListener.
    • API
      Renames DefaultDocumentEditorListener.UriValidationCallback to DefaultDocumentEditorListener.UriValidationListener.
    • API
      Renames PdfDocumentEditorListenerCallback to OnFileWriteCompleteListener.
    • API
      Renames PSPDFKitViews#setDocumentEditorListener to PSPDFKitViews#setPdfDocumentEditorListener.
    • API
      Renames PdfFragment#registerDocumentListener to PdfFragment#addDocumentListener.
    • API
      Renames PdfFragment#unregisterDocumentListener to PdfFragment#removeDocumentListener.
    • API
      Renames PdfFragment#registerDocumentScrollListener to PdfFragment#addDocumentScrollListener.
    • API
      Renames PdfFragment#unregisterDocumentScrollListener to PdfFragment#removeDocumentScrollListener.
    • API
      Renames PdfOutlineView.OnAnnotationTappedListener to PdfOutlineView.OnAnnotationTapListener and its onAnnotationTapped method to onAnnotationTap.
    • API
      Renames PdfOutlineView.OnOutlineElementTappedListener to PdfOutlineView.OnOutlineElementTapListener and its onOutlineElementTapped method to onOutlineElementTap.
    • API
      Renames PdfOutlineView#setOnAnnotationTappedListener to PdfOutlineView#setOnAnnotationTapListener.
    • API
      Renames PdfOutlineView#setOnOutlineElementTappedListener to PdfOutlineView#setOnOutlineElementTapListener.
    • API
      Renames PdfThumbnailGrid#setDocumentEditorListener to PdfThumbnailGrid#setPdfDocumentEditorListener.
    • API
      Renames PdfThumbnailGrid#registerDocumentEditingModeChangeListener to PdfThumbnailGrid#addOnDocumentEditingModeChangeListener.
    • API
      Renames PdfThumbnailGrid#unregisterDocumentEditingModeChangeListener to PdfThumbnailGrid#removeOnDocumentEditingModeChangeListener.
    • API
      Renames PdfThumbnailGrid#registerDocumentEditingPageSelectionChangeListener to PdfThumbnailGrid#addOnDocumentEditingPageSelectionChangeListener.
    • API
      Renames PdfThumbnailGrid#unregisterDocumentEditingPageSelectionChangeListener to PdfThumbnailGrid#removeOnDocumentEditingPageSelectionChangeListener.
    • API
      Renames ActionMenu#registerActionMenuListener to ActionMenu#addActionMenuListener.
    • API
      Renames ActionMenu#unregisterActionMenuListener to ActionMenu#removeActionMenuListener.
    • API
      Renames FormEditingBar#registerFormEditingBarLifecycleListener to FormEditingBar#addOnFormEditingBarLifecycleListener.
    • API
      Renames FormEditingBar#unregisterFormEditingBarLifecycleListener to FormEditingBar#removeOnFormEditingBarLifecycleListener.
    • API
      Renames PropertyInspectorCoordinatorLayoutController#registerPropertyInspectorLifecycleListener to PropertyInspectorCoordinatorLayoutController#addPropertyInspectorLifecycleListener.
    • API
      Renames PropertyInspectorCoordinatorLayoutController#unregisterPropertyInspectorLifecycleListener to PropertyInspectorCoordinatorLayoutController#removePropertyInspectorLifecycleListener.
    • API
      Renames BookmarkViewAdapter#registerBookmarkChangeListener to BookmarkViewAdapter#addBookmarkListener.
    • API
      Renames BookmarkViewAdapter#unregisterBookmarkChangeLister to BookmarkViewAdapter#removeBookmarkListener.
    • API
      Renames OnModeChangedListener#OnPageTransitionChanged to OnModeChangedListener#OnScrollModeChange.
    • API
      Renames OnModeChangedListener#OnScrollDirectionChanged to OnModeChangedListener#OnScrollDirectionChange.
    • API
      Renames OnModeChangedListener#OnPageLayoutChanged to OnModeChangedListener#OnPageLayoutChange.
    • API
      Renames OnModeChangedListener#OnThemeChanged to OnModeChangedListener#OnThemeChange.
    • API
      Renames OnModeChangedListener#OnScreenTimeoutChanged to OnModeChangedListener#OnScreenTimeoutChange.
    • API
      Renames AnnotationManager#registerAnnotationSelectedListener to AnnotationManager#addOnAnnotationSelectedListener.
    • API
      Renames AnnotationManager#unregisterAnnotationSelectedListener to AnnotationManager#removeOnAnnotationSelectedListener.
    • API
      Renames AnnotationManager#registerAnnotationDeselectedListener to AnnotationManager#addOnAnnotationDeselectedListener.
    • API
      Renames AnnotationManager#unregisterAnnotationDeselectedListener to AnnotationManager#removeOnAnnotationDeselectedListener.
    • API
      Renames AnnotationManager#registerAnnotationUpdatedListener to AnnotationManager#addOnAnnotationUpdatedListener.
    • API
      Renames AnnotationManager#unregisterAnnotationUpdatedListener to AnnotationManager#removeOnAnnotationUpdatedListener.
    • API
      Renames AnnotationManager#registerAnnotationCreationModeChangeListener to AnnotationManager#addOnAnnotationCreationModeChangeListener.
    • API
      Renames AnnotationManager#unregisterAnnotationCreationModeChangeListener to AnnotationManager#removeOnAnnotationCreationModeChangeListener.
    • API
      Renames AnnotationManager#registerAnnotationCreationModeSettingsChangeListener to AnnotationManager#addOnAnnotationCreationModeSettingsChangeListener.
    • API
      Renames AnnotationManager#unregisterAnnotationCreationModeSettingsChangeListener to AnnotationManager#removeOnAnnotationCreationModeSettingsChangeListener.
    • API
      Renames AnnotationManager#registerAnnotationEditingModeChangeListener to AnnotationManager#addOnAnnotationEditingModeChangeListener.
    • API
      Renames AnnotationManager#unregisterAnnotationEditingModeChangeListener to AnnotationManager#removeOnAnnotationEditingModeChangeListener.
    • API
      Renames DocumentEditingManager#registerDocumentEditingModeChangeListener to DocumentEditingManager#addOnDocumentEditingModeChangeListener.
    • API
      Renames DocumentEditingManager#unregisterDocumentEditingModeChangeListener to DocumentEditingManager#removeOnDocumentEditingModeChangeListener.
    • API
      Renames DocumentEditingManager#registerDocumentEditingPageSelectionChangeListener to DocumentEditingManager#addOnDocumentEditingPageSelectionChangeListener.
    • API
      Renames DocumentEditingManager#unregisterDocumentEditingPageSelectionChangeListener to DocumentEditingManager#removeOnDocumentEditingPageSelectionChangeListener.
    • API
      Renames FormManager#registerFormElementSelectedListener to FormManager#addOnFormElementSelectedListener.
    • API
      Renames FormManager#unregisterFormElementSelectedListener to FormManager#removeOnFormElementSelectedListener.
    • API
      Renames FormManager#registerFormElementDeselectedListener to FormManager#addOnFormElementDeselectedListener.
    • API
      Renames FormManager#unregisterFormElementDeselectedListener to FormManager#removeOnFormElementDeselectedListener.
    • API
      Renames FormManager#registerFormElementUpdatedListener to FormManager#addOnFormElementUpdatedListener.
    • API
      Renames FormManager#unregisterFormElementUpdatedListener to FormManager#removeOnFormElementUpdatedListener.
    • API
      Renames FormManager#registerFormElementEditingModeChangeListener to FormManager#addOnFormElementEditingModeChangeListener.
    • API
      Renames FormManager#unregisterFormElementEditingModeChangeListener to FormManager#removeOnFormElementEditingModeChangeListener.
    • API
      Renames FormManager#registerFormElementClickedListener to FormManager#addOnFormElementClickedListener.
    • API
      Renames FormManager#unregisterFormElementClickedListener to FormManager#removeOnFormElementClickedListener.
    • API
      Renames TextSelectionManager#registerTextSelectionModeChangeListener to TextSelectionManager#addOnTextSelectionModeChangeListener.
    • API
      Renames TextSelectionManager#unregisterTextSelectionModeChangeListener to TextSelectionManager#removeOnTextSelectionModeChangeListener.
    • API
      Renames TextSelectionManager#registerTextSelectionChangeListener to TextSelectionManager#addOnTextSelectionChangeListener.
    • API
      Renames TextSelectionManager#unregisterTextSelectionChangeListener to TextSelectionManager#removeOnTextSelectionChangeListener.
    • API
      Changes ContextualToolbar#setToolbarCoordinatorController to accept @Nullable ToolbarCoordinatorLayoutController, so you can clear it by passing null.
    • API
      Removes ContextualToolbar#removeToolbarCoordinatorController, use ContextualToolbar#setToolbarCoordinatorController(null) instead.
    • API
      Changes ContextualToolbar#setOnMenuItemClickListener to accept @Nullable OnMenuItemClickListener, so you can clear it by passing null.
    • API
      Removes ContextualToolbar#removeOnMenuItemClickListener, use ContextualToolbar#setOnMenuItemClickListener(null) instead.
    • API
      Changes ContextualToolbar#setOnMenuItemLongClickListener to accept @Nullable OnMenuItemLongClickListener, so you can clear it by passing null.
    • API
      Removes ContextualToolbar#removeOnMenuItemClickListener, use ContextualToolbar#setOnMenuItemLongClickListener(null) instead.
  • Changed
    Increases touch target size of next and previous search result buttons. (#11454)
  • Changed
    Improves OutlineListView loading time when opening large documents providing fast and smooth UI and removing from the main thread any heavy computation. (#11839)
  • Changed
    Improves performance of PdfDocument methods getPageSize(), getPageRotation(), and getPageLabel(). (#12186)
  • Changed
    Improves shape annotations selection performance. (#12032)
    • Fixed
      Fixes a possible OOM exception that was occurring on some devices when using large zoom scale while having shape annotation selected.
    • Changed
      Updates to selected ink annotations are now redrawn much faster.
  • Changed
    Improves exact phrase matching in PdfLibrary. (#12261)
  • Changed
    Improves FloatingHintEditText.EditTextListener#onErrorDismissed flow, so it is not called on each text change event.
  • Changed
    Better memory handling for big documents. (#12045)
  • API
    Replaces framework's Optional with RxJava2 Maybe. (#10691)
    • API
      Return type changes for AnnotationProvider#getAnnotationAsync(int, int) from Observable<Optional<Annotation>> to Maybe<Annotation>.
    • API
      Return type changes for AnnotationProvider#getAnnotation(int, int) from Optional<Annotation> to @Nullable Annotation.
    • API
      Return type changes for FormProvider#getFormElementForAnnotationAsync() from Observable<Optional<FormElement>> to Maybe<FormElement>.
    • API
      Return type changes for FormProvider#getFormElementForAnnotation() from Optional<FormElement> to @Nullable FormElement.
    • API
      Return type changes for FormProvider#getFormFieldWithFullyQualifiedNameAsync() from Observable<Optional<FormElement>> to Maybe<FormElement>.
    • API
      Return type changes for FormProvider#getFormFieldWithFullyQualifiedName() from Optional<FormElement> to @Nullable FormElement.
    • API
      Return type changes for FormProvider#getFormElementWithNameAsync() from Observable<Optional<FormElement>> to Maybe<FormElement>.
    • API
      Return type changes for FormProvider#getFormElementWithName() from Optional<FormElement> to @Nullable FormElement.
    • API
      Return type changes for WidgetAnnotation#getFormElementAsync() from Observable<Optional<FormElement>> to Maybe<FormElement>.
    • API
      Return type changes for WidgetAnnotation#getFormElement() from Optional<FormElement> to @Nullable FormElement.
  • API
    Renames Annotation.OBJECT_NUMBER_NOT_ATTACHED_TO_PAGE to Anntoation.OBJECT_NUMBER_NOT_SET. (#11339)
  • API
    Renames HUD terminology to User Interface. (#12003)
    • API
      Renames HudViewMode enum to UserInterfaceViewMode and all its values are starting with USER_INTERFACE now.
    • API
      Renames getHudViewMode() to getUserInterfaceViewMode() on PdfActivityConfiguration, PdfActivity and PdfActivityApi. Its new return type is now UserInterfaceViewMode.
    • API
      Renames setHudViewMode(HudViewMode) to setUserInterfaceViewMode(UserInterfaceViewMode) on PdfActivityConfiguration, PdfActivity and PdfActivityApi.
    • API
      Renames HudViewMode to UserInterfaceViewMode on PdfActivityConfiguration.Builder.
  • API
    Changes type of thickness property of AnnotationCreationController from int to float. (#12291)
  • API
    Drops deprecated fields and methods. (#11896)
    • API
      Removes PdfActivityConfiguration.Builder#diskCacheSize(), PdfConfiguration.Builder#diskCacheSize() - disk cache is not supported.
    • API
      Removes PdfDocument#getUri() and PdfDocument#getUriList().
    • API
      Removes PdfYouTubeActivity#ARG_YOUTUBE_URL, use #ARG_MEDIA_URI for passing MediaUri objects through intent.
    • API
      Removes PdfMediaDialog#ARG_URI, use #ARG_MEDIA_URI for passing MediaUri objects through intent.
    • API
      Removes PrintOptions(PdfProcessorTask.AnnotationProcessingMode, ..) constructors, use PrintOptions(boolean, ..) instead.
    • API
      Removed PdfFragment#enterAnnotationCreationMode(AnnotationType), use enterAnnotationCreationMode(AnnotationTool) instead.
    • API
      Removed PdfFragment#clearTextSelection(), use exitCurrentlyActiveMode() instead.
    • API
      Removed PdfFragment#setTextSelection(), use enterTextSelectionMode() instead.
    • API
      Removed DocumentSharingManager#generateDocumentName(), use getTitle() instead.
  • Fixed
    Fixes a layout issue when entering long passwords. (#11792)
  • Fixed
    Fixes not scrolling to entire page when going through search results using a continuous layout manager. (#11454)
  • Fixed
    Fixes an issue when rendering decomposed UTF-8 strings (#11985)
  • Fixed
    Fixes the navigation buttons not being restored after an orientation change. (#12211)
  • Fixed
    Fixes form fields being rendered when the license doesn't have PDF forms enabled. (#12537)
  • Fixed
    Fixes a crash that could happen when moving files to the device's download folder on Android 8.0 Oreo or newer. (#12549)
  • Fixed
    Fixes resizing ink annotations in Instant documents being slow. (#12422)
  • Fixed
    Fixes PdfPasswordView being broken, while entering text on devices with a small screen. (#12210)
  • Fixed
    Fixes an issue where adding annotation after opening annotation list view is blocked in large documents. (#12010)
  • Fixed
    Fixes an issue where invalid value (-1) was being passed to setPage() in PdfFragment on document recreation. (#11888)
  • Fixed
    Fixes extra space after non-latin characters in form fields. (#11874)
  • Fixed
    Fixes an issue where document loading progress was not restored after rotation. (#11840)
  • Fixed
    Fixes an issue saving an original document after signing it. (#11911)
  • Fixed
    Fixes an issue where document saving blocked the main thread. (#11802)
  • Fixed
    Fixes an issue where horizontal resize guide was drawn incorrectly. (#12065)
  • Fixed
    Fixes an issue where NewPageDialog was not displaying correctly in RTL mode. (#10039)
  • Fixed
    Fixes an issue where navigation buttons were still clickable after PdfActivityConfiguration.hideNavigationButtons(). (#12023)
  • Fixed
    Fixes an issue where current page is not properly restored after configuration changes, in double page mode. (#12146)
  • Fixed
    Fixes an issue where flattening a document may generate warnings when it is open in third party readers. (#12066)
  • Fixed
    Fixes an issue where it wasn't possible to unset excluded annotations from renderer. (#12418)
  • Fixed
    Fixes an issue where taps on small form elements (such as checkboxes) were inaccurate. (#12545)
  • Changed
    Improves highlight annotations by adding additional padding to them. (#12548)
    • API
      Adds applyPadding parameter to PDFDocument#getPageTextRects() to make the return value better suited for being displayed.
  • Fixed
    Fixes an issue where adding image annotations to page failed randomly. (#12603)

Instant

  • Added
    Adds more granular control over automatic document syncing. (#12292)
    • Added
      Adds setListenToServerChanges to InstantPdfDocument to control whether to listen to server changes.
    • Added
      Adds setDelayForSyncingLocalChanges to InstantPdfDocument to control delay of automatic syncing of local changes or to disable automatic syncing of local changes altogether.
    • Removed
      Deprecates setAutomaticSyncEnabled in InstantPdfDocument. Use setListenToServerUpdates and setDelayForSyncingLocalChanges instead.
    • Added
      Adds setListenToServerChangesWhenVisible to InstantPdfFragment to control whether to listen to server changes when fragment is visible. It's enabled by default.
  • Added
    Adds consumerProguardFiles, which specifies all needed rules for ProGuard to work with. This means that all ProGuard rules introduced with PSPDFKit Instant setup can be removed now.
  • Fixed
    Fixes an issue where an incorrect values could be persisted as PDF object IDs. (#11689)
  • Fixed
    Fixes an issue where annotation updates caused by server changes were not notified via OnAnnotationProviderUpdated. (#12420)

3.3.3 - 01 Sep 2017

  • Changed
    Improves annotation selection border and annotation selection handle colors of the default dark theme to have a higher contrast. (#11830)
  • Changed
    Increases touch target size of next and previous search result buttons of the PdfSearchViewInline. (#11454)
  • Fixed
    Fixes scrolling to pages in continuous scroll mode when navigating to search results. (#11454)
  • Fixed
    Fixes an issue where PDFs could end up locked after saving. (#11731)
  • Fixed
    Fixes an issue where document loading progress was not restored after rotation. (#11840)
  • Fixed
    Fixes a crash that could happen when trying to save malformed PDF documents. (#11885)
  • Fixed
    Fixes padding on framework toolbars so they comply with the material design guidelines. (#11695)
    • Changed
      Increases size of the back button in contextual toolbars.

Instant

  • Changed
    Enables note annotations. (#11704)
  • Fixed
    Fixes an issue where Instant examples would deadlock after loading the document. (#11891)

3.3.2 - 17 Aug 2017

  • API
    Adds PdfFragment#getVisiblePdfRect(Rect rect, int pageIndex) that sets given rect to the visible portion of the given page. (#11601)
  • API
    Adds listener to allow custom handling of long clicks. (#11662)
    • API
      Adds setOnDocumentLongPressListener(OnDocumentLongPressListener) call to PdfFragment class.
  • Changed
    Improves form text rendering with non-latin characters. (#10996)
  • Fixed
    Fixes an issue where extracted annotations were not rendered properly in grayscale and inverted color mode. (#9621)
  • Fixed
    Fixes an issue where property inspector width was calculated incorrectly. (#11676)
  • Fixed
    Fixes an issue where the use of transparent colors in property inspector was not prevented. (#11010)
  • Fixed
    Fixes an issue in Hud View Modes Example of the example catalog app where navigation buttons were not properly hidden. (#11744)
  • Fixed
    Fixes an issue where a password protected documents was not reopened with previously entered password after restoring PdfFragment. (#11774)
  • Fixed
    Fixes an unhandled NullPointerException thrown while restoring navigation history in non-retained PdfFragment. (#11775)
  • Fixed
    Fixes an issue where a password protected document could get corrupted when saved multiple times. (#11667)
  • Fixed
    Fixes an issue where state was not restored correctly when using activities that handle orientation changes themselves. (#11734)
  • Fixed
    Fixes an issue where PDF renderer used recycled bitmap. (#11640)
  • Fixed
    Fixes an issue where clicking on link annotations did not provide any visual feedback. (#11794)

Instant

  • Added
    Adds onDocumentInvalidated and onDocumentCorrupted to InstantDocumentListener. (#11449)
    • Changed
      onDocumentInvalidated is called when the document has been invalidated due to being garbage collected or its data being removed.
    • Changed
      onDocumentCorrupted is called when Instant has detected corruption in the locally stored document data.
  • Added
    Adds logout button to Instant example. (#11405)
  • Fixed
    Fixes an incorrect log message format. (#11634)
  • Fixed
    Fixes deletion of multiple annotations at once. (#11651)
  • Fixed
    Fixes a failed assertion due to an improper format string. (#11747)

3.3.1 - 26 Jul 2017

  • Fixed
    Fixes an issue where the downloaded Instant document could not be opened while offline. (#11560)
  • Fixed
    Fixes an unhandled NullPointerException thrown while displaying the contextual toolbar. (#11448)
  • Fixed
    Fixes a possible crash due to initialization race condition. (#11516)
  • Fixed
    Fixes a synchronization issue where thumbnail bar was not scrolling correctly to a selected page. (#10458)
  • Fixed
    Fixes a possible crash where framework was required before its initialization completed by the content provider. (#11537)
  • Fixed
    Fixes a bug where a link pointing to local data was recognized as media although it's not a media file. (#11530)
  • Fixed
    Fixes an issue where download job continued even after download progress dialog was dismissed. (#10237)

Instant

  • Changed
    Optimizes battery usage while syncing annotations with Instant. (#11533)
  • Fixed
    Fixes incorrect handling/reporting of an authentication error during sync. (#11386)

3.3.0 - 20 Jul 2017

  • Added
    Adds Instant: an easy-to-integrate solution to connect your app to your PSPDFKit Server to download documents and synchronize annotations between users. Everything’s synced in an instant!
  • API
    Adds support for writing and parsing XFDF files, see XfdfFormatter class with parseXfdf[Async]() and writeXfdf[Async]() methods. (#5575)
  • API
    Adds ProgressDataProvider which can optionally be implemented by any DataProvider to support displaying the loading progress of not yet available documents. (#11032)
  • API
    DownloadProgressFragment is now extensible. Check out the CustomDocumentDownloadExample in the example catalog app for an example implementation. (#11214)
  • API
    Adds PdfProcessorTask.changeFormsOfType to configure how form elements should be processed. (#11096)
  • API
    Adds TextMarkupAnnotation#getHighlightedText() to easily retrieve highlighted text for a markup annotation. (#11288)
  • Added
    Adds support for annotation notes. (#9611)
  • Added
    Adds OnAnnotationProviderUpdatedListener for listening to annotation creation, update and deletion events on AnnotationProvider. (#11149)
  • Changed
    Improves RTL language support. (#11013, #9883)
  • Changed
    Improves memory management when rendering forms. (#11176)
  • Changed
    Video playback is now enabled by default if device is deemed secure, meaning it's running at least Android Marshmallow (API 23+) with security patch dating Feb 1st, 2016 or newer. (#11345)
  • Fixed
    Fixes very rare issue on saving files repeatedly. (#9477)
  • Fixed
    Fixes the crash that occurs when trying to display document navigation while the document is not ready. (#11129)
  • Fixed
    Fixes the crash that occurs when trying to zoom an inline video being played in the document. (#11357)
  • Fixed
    Fixes an issue where custom styles were not applied correctly. (#11139)
  • Fixed
    Fixes the crash occurring when navigation buttons are not present in the custom layout despite being disabled by the configuration. (#11273)
  • Fixed
    Fixes the annotation creation toolbar being dismissed on configuration change. (#10990)
  • Fixed
    Fixes minor accessibility issues where close button description was missing and color contrast when editing notes was unfriendly. (#11292)
  • Fixed
    Fixes minor accessibility issues where close button description was missing and color contrast was too low when editing notes. (#11292)
  • Fixed
    Fixes an issue where note icons selection was not properly updated. (#11450)

3.2.1 - 21 Jun 2017

  • Changed
    Updates dependency - RxJava was updated to 2.1.1.
  • Fixed
    Fixes missing dependency issue when adding SDK to application. (#11031)
  • Fixed
    Fixes a possible crash due to initialization race condition. (#10745)

3.2.0 - 15 Jun 2017

  • API
    Adds PdfConfiguration.Builder#setAutomaticLinkGenerationEnabled and PdfDocument#setAutomaticLinkGenerationEnabled to enable automatic detection of web links in the document. (#9865)
  • API
    Adds PdfDocument#setWatermarkTextFilteringEnabled to exclude watermark text from selection and text extraction methods. (#10832)
  • API
    Adds PdfConfiguration.Builder#automaticallyGenerateLinks to enable automatic detection of web links in the document.
  • API
    Adds ImagePicker#wasStarted which returns a boolean whether an image picker request was already started and is running or not. (#10756)
  • API
    ImagePicker class is now final. (#10947)
  • Added
    Adds settings menu item for page transition, page layout, scroll direction and screen timeout: (#10345)
    • Added
      Adds PdfActivityConfiguration.Builder#[show/hide]SettingsMenu to show and hide setting menu icon.
    • Added
      Adds PdfActivityConfiguration.Builder#setSettingsMenuItems(EnumSet<SettingsMenuItemType>) to select which items to show.
    • Added
      Adds PdfActivityConfiguration#getDarkTheme to retrieve theme resource used to override dark theme of the launched activity.
    • Added
      Adds PdfActivityConfiguration#isSettingsItemEnabled to check whether the settings menu is shown or not.
    • Added
      Adds PdfActivityConfiguration#getSettingsMenuItemShown to check which items are shown in the settings menu.
    • Added
      Adds PdfActivityConfiguration#Builder(PdfActivityConfiguration, int themeRes, int themeDarkRes) to create a new builder from existing configuration with new default and new dark theme.
    • Added
      Adds PdfActivityConfiguration.Builder#themeDark(int) to set a new dark theme used to override predefined dark activity theme.
    • Added
      Adds PdfActivityConfiguration.Builder#themeMode(ThemeMode) to set the used theme mode.
  • Added
    Adds basic support for playing media annotations in documents: (#10769)
    • Added
      Adds PdfConfiguration.Builder#playingMultipleMediaInstancesEnabled() providing control over whether the multiple media files can be played at the same time.
    • Added
      Adds RichMediaAnnotation class representing RichMedia annotations.
    • Added
      Adds ScreenAnnotation class representing Screen annotations.
    • Changed
      Link annotations pointing to local media files, now play embedded on the page as well.
  • Changed
    Allows navigation between search results while search is still in progress (in case of inline search). (#10561)
  • Fixed
    Fixes an issue with saving files that did not conform completely to the PDF format. (#10712)
  • Fixed
    Fixes a leak when rendering bitmaps. (#10777, #10847)
  • Fixed
    Fixes an issue with saving link annotations. (#10355)
  • Fixed
    Fixes a crash on Android versions lower than 5.0. (#10822)
  • Fixed
    Fixes issue while saving PDF files. (#10849)
  • Fixed
    Fixes issue that sometimes prevented edited documents from saving via Save As... option on document editor. (#10771)
  • Fixed
    Fixes page tiles not being fully refreshed upon configuration change. (#10772)
  • Fixed
    Fixes TTS text reading by removing pauses between text lines in the document. (#10889)
  • Fixed
    Fixes a possible crash when retrieving active annotation editing tool before all views are properly instantiated. (#10939)

3.1.1 - 25 May 2017

  • API
    Adds ImagePicker class. (#9287)
    • API
      Removes ImagePickerFragment, create ImagePicker instance and then use #startImageCapture() or #startImageGallery() to start picking/capturing image.
    • API
      ImagePickerFragment.OnImagePickedListener is now ImagePicker.OnImagePickedListener class.
      • API
        onImagePickerError(int resultCode, @Nullable Intent data) is now onImagePickerUnknownError().
      • API
        Adds onCameraPermissionDeclined(boolean permanent) for warning about missing camera permissions.
    • API
      Empty OnImagePickedListener implementation called OnImagePickedListenerAdapter is now SimpleOnImagePickerListener.
    • Changed
      See DocumentProcessingExampleActivity in catalog for new image picker API usage.
  • Added
    Adds listener to allow custom handling of PDF actions. (#9964)
    • API
      Adds DocumentActionListener class which allows custom handling of PDF actions in onActionExecuted() class.
    • API
      Adds registerDocumentActionListener() and unregisterDocumentActionListener() calls to PdfFragment class.
    • API
      Adds classes for new action types - GoToRemoteAction, GoToEmbeddedAction, JavaScriptAction, LaunchAction and ImportDataAction.
  • Added
    Adds the ability to customize selected item colors in forms. (#10331).
    • Added
      Adds pspdf__itemHighlightColor theme attribute to pspdf_FormSelection style.
    • API
      Adds formItemHighlightColor() call to PageRenderConfiguration constructor.
  • Added
    Adds handling for new named actions - OUTLINE, PRINT, FIND, SEARCH and SAVEAS. (#10586)
  • Removed
    Removes deprecated MemoryDataProvider and PdfActivityConfiguration#showThumbnailBar()/#hideThumbnailBar() (use setThumbnailBarMode() instead).
  • Changed
    Changes default selection in sharing and printing dialog from Single Page - current to All pages. (#10563)
  • Changed
    Improves saving behavior around encrypted files. (#9088)
  • Changed
    Improves performance when reading page labels (#10575)
  • Changed
    Improves performance around reading PDF files. (#10565)
  • Fixed
    Fixes annotations with the NoView and Print flags not being rendered. (#10549)
  • Fixed
    Fixes a crash when parsing invalid metadata. (#10611)
  • Fixed
    Fixes an issue where radio buttons were rendered incorrectly (#10631)
  • Fixed
    Fixes issues in PdfActivityConfiguration and PdfConfiguration. (#10649)
    • Fixed
      Fixes infinite recursion inside PdfActivityConfiguration.Builder#setCustomerSignatureFeatureEnabled().
    • Fixed
      Fixes PdfConfiguration copy constructor which was not copying property isCustomerSignatureFeatureEnabled().
  • Fixed
    Fixes an issue where BaseFileProvider would return paths to the internal app directory. (#10636)
  • Fixed
    Fixes an issue where FormProvider leaked memory. (#10693)
  • Fixed
    Fixes an issue where page position wasn't properly restored in some rare cases. (#10708, #10700)

3.1.0 - 11 May 2017

  • API
    Adds support for scrollable thumbnail bar. (#7376)
    • API
      Adds PdfActivityConfiguration.Builder#setThumbnailBarMode(ThumbnailBarMode) for selecting thumbnail bar mode.
    • API
      Deprecates PdfActivityConfiguration.Builder#showThumbnailBar and PdfActivityConfiguration.Builder#hideThumbnailBar. Use above method instead.
    • API
      Deprecates PdfActivityConfiguration.Builder#isThumbnailBarEnabled. Use PdfActivityConfiguration.Builder#getThumbnailBarMode() to get the thumbnail bar mode set on the activity.
  • API
    Removes theme configuration classes. Themes should be applied through Android's XML theme support or by directly accessing UI elements. (#7092)
    • API
      PdfConfiguration.Builder() constructors do not need the Context to be provided as a parameter anymore.
    • API
      PdfActivityConfiguration.Builder() secondary constructors do not need the Context to be provided as a parameter anymore.
    • API
      Adds PdfActivity#getActivityMenuManager that exposes PdfActivityMenuManager object, which you can use to control activity menu icons and colors programmatically (theme equivalent is using attributes declared in pspdf__ActionBarIcons and setting it through pspdf__actionBarIconsStyle):
      • API
        Adds PdfActivityMenuManager#[set/get]ToolbarIconsColor(), also controlled by pspdf__iconsColor.
      • API
        Adds PdfActivityMenuManager#[set/get]ToolbarIconsColorActivated(), also controlled by pspdf__iconsColorActivated.
      • API
        Adds PdfActivityMenuManager#[set/get]OutlineIcon(), also controlled by pspdf__outlineIcon.
      • API
        Adds PdfActivityMenuManager#[set/get]OutlineIconActivated(), also controlled by pspdf__outlineIconActivated.
      • API
        Adds PdfActivityMenuManager#[set/get]SearchIcon(), also controlled by pspdf__searchIcon.
      • API
        Adds PdfActivityMenuManager#[set/get]SearchIconActivated(), also controlled by pspdf__searchIconActivated.
      • API
        Adds PdfActivityMenuManager#[set/get]ThumbnailGridIcon(), also controlled by pspdf__gridIcon.
      • API
        Adds PdfActivityMenuManager#[set/get]ThumbnailGridIconActivated(), also controlled by pspdf__gridIconActivated.
      • API
        Adds PdfActivityMenuManager#[set/get]EditAnnotationsIcon(), also controlled by pspdf__editAnnotationsIcon.
      • API
        Adds PdfActivityMenuManager#[set/get]EditAnnotationsIconActivated(), also controlled by pspdf__editAnnotationsIconActivated.
      • API
        Adds PdfActivityMenuManager#[set/get]ShareIcon(), also controlled by pspdf__shareIcon.
      • API
        Adds PdfActivityMenuManager#[set/get]PrintIcon(), also controlled by pspdf__printIcon.
    • API
      Removes DocumentThemeConfiguration, uses attributes from pspdf__SearchResultHighlighter attribute set (specified by theme attribute pspdf__searchResultHighlighterStyle) along with added methods:
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultBackgroundColor(), also controlled by pspdf__searchResultBackgroundColor.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultBorderColor(), also controlled by pspdf__searchResultBorderColor.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultBorderWidth(), also controlled by pspdf__searchResultBorderWidth.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultPadding(), also controlled by pspdf__searchResultPadding.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultAnnotationPadding(), also controlled by pspdf__searchResultAnnotationPadding.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultAnimationPadding(), also controlled by pspdf__searchResultAnimationPadding.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultCornerRadiusToHeightRatio(), also controlled by pspdf__searchResultCornerRadiusToHeightRatio.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultCornerRadiusMin(), also controlled by pspdf__searchResultCornerRadiusMin.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultCornerRadiusMax(), also controlled by pspdf__searchResultCornerRadiusMax.
    • API
      Removes ThumbnailBarThemeConfiguration:
      • API
        For default static thumbnail bar, uses attributes from pspdf__ThumbnailBar attribute set (specified by theme attribute pspdf__thumbnailBarStyle).
      • API
        For scrollable thumbnail bar, uses attributes from pspdf__ScrollableThumbnailBar attribute set (specified by theme attribute pspdf__scrollableThumbnailBarStyle).
      • API
        Adds PdfThumbnailBar#[set/get]BackgroundColor().
      • API
        Adds PdfThumbnailBar#[set/get]ThumbnailWidth().
      • API
        Adds PdfThumbnailBar#[set/get]ThumbnailHeight().
      • API
        Adds PdfThumbnailBar#[set/get]ThumbnailBorderColor().
      • API
        Adds PdfThumbnailBar#[set/get]SelectedThumbnailBorderColor().
    • API
      Adds PdfFragment#[set/get]BackgroundColor() for setting a background color on the fragment (extracted from DocumentThemeConfiguration), also configurable in the theme under the pspdf__backgroundColor attribute.
    • API
      Adds PdfFragment#setPasswordView(PdfPasswordView) and PdfFragment#getPasswordView() methods for controlling PdfPasswordView set on the fragment.
    • API
      Removes PasswordViewThemeConfiguration, uses attributes from pspdf__PasswordView attribute set (specified by theme attribute pspdf__passwordViewStyle) along with added methods:
      • API
        Adds PdfPasswordView#[set/get]Color(), also controlled by pspdf__color.
      • API
        Adds PdfPasswordView#[set/get]HintColor(), also controlled by pspdf__hintColor.
      • API
        Adds PdfPasswordView#[set/get]ErrorColor(), also controlled by pspdf__errorColor.
      • API
        Adds PdfPasswordView#[set/get]FloatingHintColor(), also controlled by pspdf__floatingHintColor.
      • API
        Adds PdfPasswordView#[set/get]IconResourceId(), also controlled by pspdf__icon.
      • API
        Adds PdfPasswordView#[set/is]IconTintingEnabled(), also controlled by pspdf__iconTintingEnabled.
    • API
      Removes InlineSearchThemeConfiguration, uses attributes from pspdf__SearchViewInline attribute set (specified by theme attribute pspdf__inlineSearchStyle) along with added methods:
      • API
        Adds PdfSearchViewInline#[set/get]TextColor(), also controlled by pspdf__textColor.
      • API
        Adds PdfSearchViewInline#[set/get]HintTextColor(), also controlled by pspdf__hintTextColor.
      • API
        Adds PdfSearchViewInline#[set/get]NavigationTextColor(), also controlled by pspdf__navigationTextColor.
      • API
        Adds PdfSearchViewInline#[set/get]PrevIconColorTint(), also controlled by pspdf__prevIconColorTint.
      • API
        Adds PdfSearchViewInline#[set/get]NextIconColorTint(), also controlled by pspdf__nextIconColorTint.
      • API
        Adds PdfSearchViewInline#[set/get]BackIconColorTint(), also controlled by pspdf__backIconColorTint.
      • API
        Adds PdfSearchViewInline#[set/get]PrevIcon(), also controlled by pspdf__prevIconDrawable.
      • API
        Adds PdfSearchViewInline#[set/get]NextIcon(), also controlled by pspdf__nextIconDrawable.
    • API
      Removes ModularSearchThemeConfiguration, uses attributes from pspdf__SearchViewModular attribute set (specified by theme attribute pspdf__modularSearchStyle) along with added methods:
      • API
        Adds PdfSearchViewModular#[set/get]BackgroundColor(), also controlled by pspdf__backgroundColor.
      • API
        Adds PdfSearchViewModular#[set/get]InputFieldTextColor(), also controlled by pspdf__inputFieldTextColor.
      • API
        Adds PdfSearchViewModular#[set/get]InputFieldHintColor(), also controlled by pspdf__inputFieldHintColor.
      • API
        Adds PdfSearchViewModular#[set/get]SeparatorColor(), also controlled by pspdf__separatorColor.
      • API
        Adds PdfSearchViewModular#[set/get]ListItemBackgroundColor(), also controlled by pspdf__listItemBackgroundColor.
      • API
        Adds PdfSearchViewModular#[set/get]ListItemTitleColor(), also controlled by pspdf__listItemTitleColor.
      • API
        Adds PdfSearchViewModular#[set/get]ListItemSubtitleColor(), also controlled by pspdf__listItemSubtitleColor.
      • API
        Adds PdfSearchViewModular#[set/get]ListSelector(), also controlled by pspdf__listItemSelector.
      • API
        Adds PdfSearchViewModular#[set/get]HighlightBackgroundColor(), also controlled by pspdf__highlightBackgroundColor.
      • API
        Adds PdfSearchViewModular#[set/get]HighlightBorderColor(), also controlled by pspdf__highlightBorderColor.
      • API
        Adds PdfSearchViewModular#[set/get]HighlightTextColor(), also controlled by pspdf__highlightTextColor.
    • API
      Removes OutlineViewThemeConfiguration, uses attributes from pspdf__OutlineView attribute set (specified by theme attribute pspdf__outlineViewStyle) along with added methods:
      • API
        Adds PdfOutlineView#[set/get]BackgroundColor(), also controlled by pspdf__backgroundColor.
      • API
        Adds PdfOutlineView#[set/get]ListSelector(), also controlled by pspdf__listItemSelector.
      • API
        Adds PdfOutlineView#[set/get]DefaultTextColor(), also controlled by pspdf__defaultTextColor.
      • API
        Adds PdfOutlineView#[set/get]BookmarksBarBackgroundColor(), also controlled by pspdf__bookmarksBarBackgroundColor.
      • API
        Adds PdfOutlineView#[set/get]BookmarksBarIconColor(), also controlled by pspdf__bookmarksBarIconColor.
      • API
        Adds PdfOutlineView#[set/get]BookmarksAddIcon(), also controlled by pspdf__bookmarksAddIcon.
      • API
        Adds PdfOutlineView#[set/get]BookmarksEditIcon(), also controlled by pspdf__bookmarksEditIcon.
      • API
        Adds PdfOutlineView#[set/get]BookmarksDoneIcon(), also controlled by pspdf__bookmarksDoneIcon.
      • API
        Adds PdfOutlineView#[set/get]GroupIndicatorIconColor(), also controlled by pspdf__bookmarksGroupIndicatorIconColor.
      • API
        Adds PdfOutlineView#[set/get]TabIndicatorColor(), also controlled by pspdf__tabIndicatorColor.
      • API
        Adds PdfOutlineView#[set/get]BookmarksDeleteIcon(), also controlled by pspdf__bookmarksDeleteIcon.
      • API
        Adds PdfOutlineView#[set/get]BookmarksDeleteIconColor(), also controlled by pspdf__bookmarksDeleteIconColor.
      • API
        Adds PdfOutlineView#[set/get]BookmarksDeleteBackgroundColor(), also controlled by pspdf__bookmarksDeleteBackgroundColor.
    • API
      Removes ThumbnailGridThemeConfiguration, uses attributes from pspdf__ThumbnailGrid attribute set (specified by theme attribute pspdf__thumbnailGridStyle) along with added methods:
      • API
        Adds PdfThumbnailGrid#[set/get]BackgroundColor(), also controlled by pspdf__backgroundColor.
      • API
        Adds PdfThumbnailGrid#[set/get]ItemLabelTextStyle(), also controlled by pspdf__itemLabelTextStyle.
      • API
        Adds PdfThumbnailGrid#[set/get]ItemLabelBackground(), also controlled by pspdf__itemLabelBackground.
    • API
      Adds setters and getters for UI properties on FormEditingBar, uses attributes from pspdf__FormEditingBar attribute set (specified by theme attribute pspdf__formEditingBarStyle) along with added methods:
      • API
        Adds FormEditingBar#[set/get]IconsColor, also controlled by pspdf__iconsColor.
      • API
        Adds FormEditingBar#[set/get]BackgroundColor, also controlled by pspdf__backgroundColor.
      • API
        Adds FormEditingBar#[set/get]TextColor, also controlled by pspdf__textColor.
      • API
        Adds FormEditingBar#[set/get]PrevIcon, also controlled by pspdf__prevIconDrawable.
      • API
        Adds FormEditingBar#[set/get]NextIcon, also controlled by pspdf__nextIconDrawable.
    • API
      Removes FormEditingConfiguration, use attributes from pspdf__FormSelection attribute set (specified by theme attribute pspdf__formSelectionStyle) to configure UI:
      • API
        Adds enableFormEditing() and disableFormEditing() to the PdfConfiguration and PdfActivityConfiguration builders (pulled out of FormEditingConfiguration)
    • API
      Removes AnnotationEditingConfiguration, use attributes from pspdf__AnnotationSelection attribute set (specified by theme attribute pspdf__annotationSelectionStyle) to configure UI. Other methods are extracted to PdfConfiguration.Builder() and PdfActivityConfiguration.Builder():
      • API
        Adds Pdf[Activity]Configuration.Builder#disableAnnotationEditing().
      • API
        Adds Pdf[Activity]Configuration.Builder#enableAnnotationEditing().
      • API
        Adds Pdf[Activity]Configuration.Builder#editableAnnotationTypes().
      • API
        Adds Pdf[Activity]Configuration.Builder#enabledAnnotationTools().
      • API
        Adds Pdf[Activity]Configuration.Builder#setSelectedAnnotationResizeEnabled().
      • API
        Adds Pdf[Activity]Configuration.Builder#setSelectedAnnotationResizeGuidesEnabled().
      • API
        Adds Pdf[Activity]Configuration.Builder#setResizeGuideSnapAllowance().
      • API
        Adds Pdf[Activity]Configuration.Builder#setResizeGuideLineIntervals().
      • API
        Adds Pdf[Activity]Configuration.Builder#setAnnotationInspectorEnabled().
      • API
        Adds Pdf[Activity]Configuration.Builder#setSignatureSavingEnabled().
      • API
        Adds Pdf[Activity]Configuration.Builder#setCustomerSignatureFeatureEnabled().
    • API
      Removes deprecated defaultAnnotationCreator() method from AnnotationEditingConfiguration#Builder, use PSPDFKitPreferences#setAnnotationCreator(String) to set annotation creator name.
    • API
      Removes AnnotationRenderConfiguration, use attributes from pspdf__Annotation attribute set (specified by theme attribute pspdf__annotationStyle) to configure UI. Other methods are extracted to PdfConfiguration.Builder() and PdfActivityConfiguration.Builder():
      • API
        Adds Pdf[Activity]Configuration.Builder#excludedAnnotationTypes().
  • Added
    Adds annotation indexing capabilities to PdfLibrary. (#9235)
    • API
      Adds IndexingOptions and PdfLibrary#enqueueDocuments(documents, indexingOptions) overloads which allow to disable annotation or document text indexing.
    • API
      Adds QueryOptions.Builder#ignoreAnnotations() and QueryOptions.Builder#ignoreDocumentText()
    • API
      Renames QueryOptions methods: isMatchExactPhrases to shouldMatchExactPhrases, isMatchExactWords to shouldMatchExactWords, and generateTextPreviews to shouldGenerateTextPreviews.
    • Changed
      Updates IndexedFullTextSearchExample in the catalog app, to showcase new query options.
    • Added
      Adds enqueueDocumentSources and enqueueDocumentSourcesWithMetadata to PdfLibrary to allow indexing documents without opening them first. This fixes OOM issues when indexing large amount of PDF documents.
  • Added
    Adds support for the NeedAppearances form flag. (#10288)
  • Added
    Adds the ability to modify document PDF and XMP metadata. (#10494)
    • API
      Adds set(), get(), setInXmp() and getInXmp() methods to DocumentMetadata class.
    • Changed
      DocumentMetadata object isn't parcelable anymore.
    • Changed
      PdfProcessorTask#withMetadata() now accepts HashMap<String,String> instead of DocumentMetadata class.
  • Added
    Adds AesDataProvider and AesEncryptedFileExample to catalog app. (#10230)
  • Removed
    Deprecates MemoryDataProvider. (#10451)
  • Changed
    Improves reliability of reading from data providers. (#10382)
  • Fixed
    Fixes missing PdfActivity documentation. (#10300)
  • Fixed
    Fixes page not being properly settled on startup until the first touch. (#10155)
  • Fixed
    Fixes wrong view state being restored in double page mode and single page document. (#10157)
  • Fixed
    Fixes an issue where red border was rendered around required form fields even when form editing was disabled. (#10331)
  • Fixed
    Fixes failed manifest verification if DocumentSharingProvider class was renamed. (#10174)
  • Fixed
    Fixes a unhandled NullPointerException thrown while initializing documents forms. (#10418)
  • Fixed
    Fixes a runtime failure occurring due to framework initialization process not being properly synced. (#10309)
  • Fixed
    Fixes an issue where circle and square annotations grown in size when drawing while zoomed in. (#10347)
  • Fixed
    Fixes an issue that could result in a very long running loop when rendering PDF documents with broken dashed lines. (#9764)

3.0.0 - 12 Apr 2017

  • API
    Update RxJava to 2.0.8 and RxAndroid to 2.0.1. (#9254)
    • Changed
      All public facing methods are now using the new RxJava 2 types Observable, Flowable, Single, Completable.
    • Changed
      For a comprehensive overview of the changes in RxJava 2, please have a look at the official RxJava 2 documentation.
  • API
    Removes license from the configuration files, the framework is now implicitly initialized using <meta-data> tag in your AndroidManifest.xml. More information in the guides. (#9791)
    • API
      Adds PSPDFKit#setApplicationPolicy() which is now a preferred way of changing application policy instead of re-initializing the whole framework.
    • API
      Removes deprecated PSPDFActivityConfiguration.Builder#activity(). Target activity is now set through PdfActivityIntentBuilder#activityClass() with extras being added to the intent created with PdfActivityIntentBuilder#build().
  • API
    Adds support for programmatic forms filling. (#9656)
    • API
      Adds FormsProvider class for handling all forms related operations. It can be retrieved by calling PSPDFDocument#getFormsProvider().
    • API
      Adds FormField class representing the single field in an interactive form.
    • API
      Adds FormElement class representing visible form control. Each FormElement has exactly one parent FormField. Each FormField can have multiple child FormElement (for example radio button group is a FormField, while each radio button in a group is a FormElement).
  • API
    Moves PSPDFKit#openDocument, PSPDFKit#openDocuments and PSPDFKit#openDocumentAsync calls to PdfDocument class. (#5330)
    • Changed
      Drops several of more complex overloads in favor of passing document information with DocumentSource parameter.
  • API
    Moves and renames PSPDFKit#invalidateDocumentCache to PdfDocument#invalidateCache and PSPDFKit#invalidatePageCache to PdfDocument#invalidateCacheForPage. (#5330)
  • API
    PSPDFActivity renamed to PdfActivity. (#9680)
    • API
      Replaces PSPDFActivity.IntentBuilder() with PdfActivityIntentBuilder that is used creating an intent for starting PdfActivity instance.
    • API
      Removes PSPDFActivity#showDocument() for creating documents from multiple sources and just keeps the simpler ones, use PdfActivityIntentBuilder for full control over the document opening process.
    • API
      Removes deprecated PSPDFActivity#onToggleActionbarVisibility().
    • API
      PSPDFActivity#setDocument() methods have been renamed to specific ones depending on the parameters, so setDocumentFromUri(), setDocumentFromUris(), setDocumentFromDataSource(), setDocumentFromDataSources().
    • API
      Removes methods for explicitly removing single listeners from PdfActivity, use setXYListener(null).
  • API
    Drops PSPDF prefix for several classes: (#6520)
    • Changed
      PSPDFActivity to PdfActivity.
    • Changed
      PSPDFDocument to PdfDocument, PSPDFDocumentMetadata to DocumentMetadata, PDFVersion to PdfVersion.
    • Changed
      PSPDFFragment to PdfFragment.
    • Changed
      PSPDFPreferences to PSPDFKitPreferences.
    • Changed
      PSPDFTextBlock to TextBlock.
    • Changed
      PSPDFLibrary to PdfLibrary.
    • Changed
      PSPDFAnnotationManager to AnnotationManager.
    • Changed
      PSPDFProcessor to PdfProcessor, PSPDFProcessorTask to PdfProcessorTask, PSPDFProcesorException to PdfProcessorException.
    • Changed
      PSPDFSearchOptions to SearchOptions, PSPDFSearchResult to SearchResult, PSPDFTextSearch to TextSearch.
    • Changed
      PSPDFException to PSDPDFKitException.
    • Changed
      PSPDFNotInitializedException to PSPDFKitNotInitializedException, PSPDFInitializationFailedException to InitializationFailedException.
    • Changed
      PSPDFInvalidLayoutException to InvalidLayoutException, PSPDFInvalidLayoutException to InvalidLayoutException, PSPDFInvalidPasswordException to InvalidPasswordException.
    • Changed
      PSPDFInvalidSignatureException to InvalidSignatureException, PSPDFMissingDependencyException to MissingDependencyException.
    • Changed
      PSPDFYouTubeActivity to PdfYouTubeActivity.
    • Changed
      PSPDFDrawableManager to PdfDrawableManager, PSPDFDrawableProvider to PdfDrawableProvider, PSPDFDrawable to PdfDrawable.
    • Changed
      PSPDFOutlineView to PdfOutlineView, PSPDFThumbnailBar to PdfThumbnailBar, PSPDFThumbnailGrid to PdfThumbnailGrid.
    • Changed
      PSPDFSearchView to PdfSearchView.
    • Changed
      PSPDFViews to PSPDFKitViews and PdfActivity#getPSPDFViews() to PdfActivity#getPSPDFKitViews().
  • API
    PSPDFActivityConfiguration renamed to PdfActivityConfiguration (#10131)
  • API
    PSPDFConfiguration renamed to PdfConfiguration (#10131)
  • API
    Changes how colors are modeled on free text annotations to be consistent with how these properties are shown in the inspector.
    • Removed
      Removes FreeTextAnnotation#getTextColor() and FreeTextAnnotation#setTextColor().
    • Changed
      Changes FreeTextAnnotation#getColor() and FreeTextAnnotation#setColor() to get and set the text color instead of the fill color.
    • Changed
      Changes FreeTextAnnotation#getFillColor() and FreeTextAnnotation#setFillColor() to get and set the fill color instead of doing nothing.
  • API
    Removes deprecated method PSPDFActivityConfiguration.Builder#printingEnabled(), use PdfActivityConfiguration#enablePrinting() and PdfActivityConfiguration#disablePrinting() instead.
  • API
    Adds StampAnnotation#setBitmap() for re-setting an image on StampAnnotation. (#9803)
  • API
    Adds setFormMappingNameMappings() and setFormFieldNameMappings() call to PSPDFProcessorTask to allow renaming of form fields.
  • API
    Camel case syntax refactorings ():
    • API
      PDFUtils to PdfUtils along with method createPDFRectUnion() to createPdfRectUnion().
    • API
      PagePDF to PagePdf.
    • API
      PDFBox to PdfBox.
    • API
      URIAction to UriAction.
    • API
      HUDViewMode to HudViewMode.
    • API
      PSPDFDocumentEditor to PdfDocumentEditor.
    • API
      PSPDFDocumentEditorListener to PdfDocumentEditorListener.
    • API
      PSPDFDocumentEditorListenerCallbacks to PdfDocumentEditorListenerCallbacks.
    • API
      In PdfFragment:
      • API
        convertViewRectToPDFRect() to convertViewRectToPdfRect()
      • API
        convertPDFRectToViewRect() to convertPdfRectToViewRect()
      • API
        convertViewPointToPDFPoint() to convertViewPointToPdfPoint()
      • API
        convertPDFPointToViewPoint() to convertPdfPointToViewPoint()
      • API
        getVisiblePDFRect() to getVisiblePdfRect()
  • Added
    Adds support for interactive forms. (#2939)
    • API
      Adds PSPDFFragment#registerFormElementSelectedListener for listening to form element selection.
    • API
      Adds PSPDFFragment#registerFormElementDeselectedListener for listening to form element deselection.
    • API
      Adds PSPDFFragment#registerFormElementUpdatedListener for listening to form element updates.
    • API
      Adds PSPDFFragment#setSelectedFormElement for selecting form element and PSPDFFragment#getSelectedFormElement for getting selected form element.
    • API
      Adds FormEditingConfiguration that can be used to control form editing configuration.
  • Added
    Adds support for filling text form fields. (#8984)
  • Added
    Adds support for filling list and combo box fields. (#8986)
  • Added
    Adds support for keyboard shortcuts when editing forms. (#8987)
  • Added
    Adds FormEditingBar that helps with form filling. (#9978)
  • Added
    Adds support for changing configuration at runtime. (#2966)
    • Added
      Adds setConfiguration to PdfActivity to change PdfActivityConfiguration at runtime.
    • Changed
      Allow creation of PdfActivityConfiguration.Builder and PdfConfiguration.Builder from existing configuration.
    • Added
      Adds DynamicConfigurationExample showcasing how to modify PdfActivity configuration at runtime.
    • Added
      Adds CustomFragmentDynamicConfigurationExample showcasing how to modify PSPDFFragment configuration at runtime when used with custom activity.
  • Added
    Adds support for HideAction and ResetFormAction. (#9971)
  • Added
    Adds getState and setState methods to PdfFragment for saving and restoring fragment state. (#9605)
  • Added
    Adds a feature for saving internal UI Context when possible. (#7260)
  • Changed
    Improves stream handling in DocumentDownloadExample. (#10161)
  • Changed
    Improves PdfLibrary search when using FTS5. (#10018)
  • Changed
    Improves memory usage. (#10082)
  • Changed
    Improves stability in low memory situations. (#10086)
  • Fixed
    Fixes symbol characters being used for rendering text in certain situations. (#9878)
  • Fixed
    Fixes an issue where autocorrection didn't work for edited free text annotations. (#9887)
  • Fixed
    Fixes an issue with error handling when enqueuing a print job was not successful. (#9913)
  • Fixed
    Fixes full text search results returning incorrect results when an unmatched quote character is included in the search string. (#9831)
  • Fixed
    Fixes an issue where view state could not be restored correctly in some cases when using continuous scrolling mode. (#9682)
  • Fixed
    Fixes an issue where the page is not settled after the keyboard is dismissed or the screen size changes. (#9793)
  • Fixed
    Fixes an issue where incorrect page is restored in double page mode. (#9683)
  • Fixed
    Fixes memory leak when form field is selected. (#10124)

2.9.4 - 22 Mar 2017

  • Changed
    Updates dependencies - RxJava to 1.2.7 and support libraries to 25.3.0.
  • API
    Introduces PSPDFPreferences to read and write global framework preferences. (#7300)
    • API
      Deprecates AnnotationEditingConfiguration.defaultAnnotationCreator. Use PSPDFPreferences.setAnnotationCreator to configure the annotation creator name.
  • API
    Introduces AnnotationPreferences to access and change the annotation creator name. (#7300)
    • Added
      Adds AnnotationEditingConfiguration.annotationCreator to set the default creator name or override the stored one.
    • Removed
      Deprecates AnnotationEditingConfiguration.defaultAnnotationCreator. Use above method instead.
  • API
    DocumentListener#onDocumentSaveFailed(Throwable) is now changed to onDocumentSaveFailed(PSPDFDocument, Throwable) providing the document for which the saving failed. (#9817)
  • Added
    Adds helpers for changing screen timeout through PSPDFActivity#setScreenTimeout(long). (#8527)
  • Fixed
    Fixes an issue where failing to save the document would not clear the cache thus keeping the incorrect document cached.
  • Fixed
    Fixes an issue where document pages had incorrect height when using vertical paginated scrolling. (#9671)
  • Fixed
    Fixes an issue where click events on link annotation where not properly handled. (#9772)
  • Fixed
    Fixes an issue where dragging an annotation using the long-press gesture would not work if another annotation was currently selected. (#9786)
  • Fixed
    Fixes incorrect continuous mode scrolling to the rect that's on the different page than the current one. (#9664)
  • Fixed
    Fixes an issue where document saving would fail when only permissions were protected by a document password. (#9623)
  • Fixed
    Fixes an issue where thumbnail bar wasn't hidden when showing soft keyboard after the document has been edited. (#9806)
  • Fixed
    Fixes an issue where NewPageDialog wasn't calling the onDialogCancelled listener when being dismissed via back button or touch event. (#9820)
  • Fixed
    Fixes an issue where thumbnails in the thumbnail grid would be stuck, when quickly starting to scroll after the grid became visible. (#9821)
  • Fixed
    Fixes an issue where clicking on the annotation would not invoke DocumentListener#onPageClick() listener. (#9815)
  • Fixed
    Fixes an issue where document editing from unsupported sources was not consistent. (#7656)
  • Fixed
    Fixes incorrect animations in outline list when expanding or collapsing an outline on Android API 17 and lower. (#9899)
  • Fixed
    Fixes a issue on incrementally saving using a data provider. (#9410)

2.9.3 - 28 Feb 2017

  • Added
    Adds keyboard navigation using left/right keys. (#9370)
  • Changed
    Changes the note annotation creation flow. (#9645)
    • Changed
      It is now possible to create empty note annotation using the note annotation editor.
    • Changed
      Newly created note annotations are now automatically selected.
  • Fixed
    Fixes an issue where navigation bar got transparent when returning from multi-window mode. (#9530)
  • Fixed
    Fixes an issue where toolbar layout could get broken because it was incorrectly allowed to be vertical on certain screen sizes. (#9488)
  • Fixed
    Fixes an issue where document title view could get hidden behind action bar when switching to multi-window mode. (#9545)
  • Fixed
    Fixes an issue where deselecting an annotation tapping on the document background was hiding the user interface. (#9550)
  • Fixed
    Fixes incorrect animation in annotation inspector when showing soft keyboard. (#9527)
  • Fixed
    Fixes possible NullPointerException in the catalog example. (#9561)
  • Fixed
    Fixes an issue where setting double page mode in combination with continuous scroll doesn't properly fall back to single page layout mode in the thumbnail bar. (#9567)
  • Fixed
    Fixes an issue where PSPDFActivity would hide the thumbnail bar on devices with high density screens. (#9597)
  • Fixed
    Fixes double page mode scrolling being broken in some cases (inline search results navigation, state restoration, etc.) (#9626)
  • Fixed
    Fixes an issue where using the soft keyboard in password view in immersive mode would result in wrongly rendered UI below translucent navigation bar. (#9658)

2.9.2 - 14 Feb 2017

  • Changed
    Updates dependencies - Support libraries to 25.1.1, RxJava to 1.2.6.
  • Added
    Adds support for annotation flags in Annotation class and user interface. (#6939)
    • Added
      Adds support for HIDDEN flag. If set, do not display or print the annotation and prevent annotation editing.
    • Added
      Adds support for PRINT flag. Annotation is printed only when this flag is set.
    • Added
      Adds support for NOVIEW flag. If set, do not display the annotation and prevent annotation editing. However, printing is still allowed when PRINT flag is set.
    • Added
      Adds support for READONLY flag. If set, prevent annotation editing.
    • Added
      Adds support for LOCKED flag. If set, annotation can't be deleted, dragged or resized.
    • Added
      Adds support for LOCKEDCONTENTS flag. If set, annotation contents can't be changed.
  • Added
    Adds an API to manipulate user interface visibility in PSPDFActivity. (#8348)
    • Added
      Adds showUserInterface to show user interface controls.
    • Added
      Adds hideUserInterface to hide user interface controls.
    • Added
      Adds toggleUserInterface to toggle user interface visibility.
    • Added
      Adds setUserInterfaceVisible to force show/hide user interface with or without animation.
    • Added
      Adds isUserInterfaceVisible to query user interface visibility.
    • Added
      Adds PSPDFActivity.onUserInterfaceVisibilityChanged to listen to user interface visibility changes.
    • Removed
      Deprecates Commands.ToggleSystemBars. Use above methods instead.
    • Removed
      Deprecates PSPDFActivity.onToggleActionbarVisibility.
  • Added
    Adds ToolbarCoordinatorLayout.OnContextualToolbarPositionListener that listens for toolbar position within the ToolbarCoordinatorLayout, set through PSPDFActivity#setOnContextualToolbarPositionListener(listener). (#9212)
  • Added
    Adds ContextualToolbar#isDraggable to query whether contextual toolbar is currently draggable. (#9212)
  • Changed
    Improves search highlighter and search navigation. (#8327)
  • Changed
    Hides HUD when creating annotations and annotation toolbar is in vertical position. (#9212)
    • Added
      Adds hideHudWhenCreatingAnnotations to PSPDFActivityConfiguration to control this behavior.
  • Changed
    Disables immersive mode when running in multi-window mode. (#9491)
  • Fixed
    Fixes an issue where it wasn't possible to draw annotations under system bars. (#9220)
  • Fixed
    Fixes an issue causing the thumbnail grid to crash certain devices when opened in landscape orientation. (#9433)
  • Fixed
    Fixes a possible resource leak that caused warnings in strict mode during library initialization. (#9405)
  • Fixed
    Fixes an issue where tapping while scrolling in paginated mode makes scrolling stuck between pages. (#7971)
  • Fixed
    Fixes an issue where scrolling gets stuck after snapping back from zoom-out action. (#9380)
  • Fixed
    Fixes an issue where wrong document insets were calculated when showing keyboard in multi-window mode. (#9487)
  • Fixed
    Fixes an issue where PSPDFThumbnailBar would throw an exception when switching from double-page mode back to single-page mode. (#9490)
  • Fixed
    Fixes a crash in PSPDFThumbnailBar when number of pages drops under 2. (#9352)
  • Fixed
    Fixes an UI bug where drag button doesn't reappear on the toolbar once the keyboard is hidden and there's enough room for it to move. (#9322)

2.9.1 - 31 Jan 2017

  • Added
    Adds a feature to search the outline, showing also parent sections. (#9101, #9215)
  • Fixed
    Fixes a crash when opening single-paged documents in double page mode. (#9269)
  • Fixed
    Fixes an issue where DocumentListener save callbacks sometimes weren't called after PSPDFFragment was detached. (#9319)
  • Fixed
    Fixes an issue where FTS 5 PSPDFLibrary searches with only whitespace failed to execute. (#9271)
  • Fixed
    Fixes an issue where ImagePickerFragment was not asking for camera permission when required. (#9231)
  • Fixed
    Fixes an issue where it was possible to enter emojis in custom stamps text. (#9227)
  • Fixed
    Fixes an issue where FAB was not hidden when CustomStampCreatorLayout was loaded for the first time. (#9229)
  • Fixed
    Fixes an UI bug where annotation toolbar submenu overflows the main toolbar. (#8970)
  • Fixed
    Fixes an issue where PSPDFDocument#wasModified returned false if only bookmarks were modified. (#9320)
  • Fixed
    Fixes an issue where search button in catalog app could be lost after searching. (#9344)
  • Fixed
    Fixes an issue where PSPDFActivity was using wrong insets when running immersively in multi-window mode. (#9321)

2.9.0 - 25 Jan 2017

  • Fixed
    Fixes a security issue where DocumentSharingProvider could expose other private application files. (#9136)
  • Added
    Adds paginated double page layout for browsing documents. (#5670)
    • Added
      Adds PageLayoutMode which is set through PSPDFConfiguration and has values AUTO, SINGLE, DOUBLE. AUTO mode will display double page layout on larger devices in landscape, and single page layout on all other.
    • Added
      Adds firstPageAlwaysSingle property to the PSPDFConfiguration that controls whether to keep first page as a cover and display it as a single, or include it in double page mode.
    • Added
      Adds showGapBetweenPages property to the PSPDFConfiguration that controls whether there should be gap between sibling pages or if they should be touching each other.
  • Added
    Adds support for styling modal dialogs used across the framework. (#7970)
    • Changed
      Make sure that AlertDialogs use theme specified in alertDialogTheme theme attribute.
    • Added
      Adds pspdf__modalDialogStyle theme attribute for styling common properties of custom modal dialogs - share/print options dialog, Annotation inspector, Action menus, Stamp and Signature pickers, New page dialog.
    • Added
      Adds pspdf__sharingdialogStyle theme attribute for styling share/print options dialog.
    • Added
      Adds pspdf__newPageDialogStyle theme attribute for styling new page dialog in document editor.
    • Added
      Adds pspdf__stampPickerStyle theme attribute for styling stamp picker.
    • Added
      Adds pspdf__actionMenuStyle theme attribute for styling action menus.
  • Added
    Adds LocalizationListener interface used to override built-in UI strings programatically. (#5187)
  • Added
    Adds an API for using existing signature picker in custom UI. (#9081)
    • Added
      Adds Signature representing single signature.
    • Added
      Adds SignaturePickerFragment encapsulating signature picker flow and signature storage handling.
    • Added
      Adds CustomInkSignatureExample to catalog app showcasing how to use this API to integrate signature picker in custom activity that is using PSPDFFragment.
  • Added
    Adds PSPDFFragment#addAnnotationToPage() which simplifies adding annotations to page. (#9081)
  • Added
    Adds support for free-text annotations fill color. (#9020)
  • Added
    Adds getHudViewMode() method to PSPDFActivity for querying currently used HUD view mode. (#9100)
  • Added
    Adds setRotation and getRotation properties to PageImage object to allow rotation of images when using the PSPDFProcessor. (#9096)
  • Added
    Adds a usage example of PSPDFThumbnailGrid to the CustomFragmentActivity of the FragmentExample inside the catalog app. (#9133)
  • Added
    Adds size and getIndexedUIDs method calls to PSPDFLibrary. (#9192)
  • Added
    Adds LibraryIndexingListener and registerLibraryIndexingListener/unregisterLibraryIndexingListener to PSPDFLibrary. (#9192)
  • Added
    Adds support for FTS5 to PSPDFLibrary, when available. Note that this upgrade will require all documents to be reindexed. (#9026)
  • Added
    Adds enabledAnnotationTools to AnnotationEditingConfiguration.Builder for controlling which annotation tools are enabled when creating annotations. (#8201)
  • Added
    Adds a new PSPDFFragment#newInstance method which accepts an already opened PSPDFDocument as a parameter. (#8199)
  • Added
    Adds setting to prevent copying of selected text, see CustomApplicationPolicyExample from the catalog app. (#8728)
  • Changed
    Renames AnnotationCreationMode enum to AnnotationTool. (#9119)
    • Changed
      Renames getActiveAnnotationCreationMode in AnnotationCreationController to getActiveAnnotationTool.
    • Removed
      Removes deprecated methods getCurrentlyEditedAnnotationType and changeAnnotationCreationMode in AnnotationCreationController.
    • Changed
      Changes Analytics.Data#ANNOTATION_CREATION_MODE constant to ANNOTATION_TOOL.
  • Changed
    Changes default search result limit of library searches to 500. Use maximumSearchResultsTotal() and maximumPreviewResultsTotal() methods in QueryOptions to change this. (#9131)
  • Changed
    Improves custom stamps creation API. (#8571, Z#4917)
    • Added
      Adds fromBitmap, fromPredefinedType and fromSubject to StampPickerItem to access builders for creating custom stamps.
    • Removed
      Removes create* methods from StampPickerItem and StampAnnotationDefaultsProvider.
    • Changed
      Moves StampPickerItem and PredefinedStampType to com.pspdfkit.annotations.stamps package.
  • Changed
    DownloadJob now executes ProgressListener callbacks on the main thread. (#9162)
  • Changed
    DocumentPrintManager is now a singleton and not a static class anymore. Retrieve the instance with the get() method. (#9179)
  • Changed
    Improves performance of library indexing and preview snippet generation. (#9131)
  • Fixed
    Fixes an issue where it wasn't possible to scroll to parts of the document that were hidden under system bars when using HUD_VIEW_MODE_VISIBLE in PSPDFActivity. (#9078)
  • Fixed
    Fixes an issue when adding JPEG images to pages with PSPDFProcessor would load them all into memory and cause OutOfMemory exceptions. (#9096)
  • Fixed
    Fixes an issue where ink thickness was not recalculated when resizing. (#4808)
  • Fixed
    Fixes an issue where note annotation text was not being processed during searching immediately after creating note annotations. (#8889)
  • Fixed
    Fixes an issue where an outline element which referenced an invalid page index would cause an exception. (#8855)
  • Fixed
    Fixes an issue where back button wasn't visible when showing custom stamp layout on tablets (#8962)
  • Fixed
    Fixes a crash when using custom versions of SQLite 3.11 or higher. (#8967)
  • Fixed
    Fixes an issue where document editor has been closed after a configuration change. (#5979)
  • Fixed
    Fixes an issue where new page dialog stopped working after a configuration change. (#8989)
  • Fixed
    Fixes an issue where document editing toolbar wasn't hidden after leaving document editor. (#8982)
  • Fixed
    Fixes an issue where tapping on document background didn't toggle the HUD. (#8965)
  • Fixed
    Fixes an issue where note annotation editor remained in broken state after restoring application's state. (#9100)
  • Fixed
    Fixes an issue where active text selection was lost after configuration change. (#7366)
  • Fixed
    Fixes an issue where application state could not be restored properly in some cases. (#9099)
  • Fixed
    Fixes an issue where PSPDFThumbnailGrid failed to render images if not properly laid out. (#9134)
  • Fixed
    Fixes an issue where PSPDFThumbnailGrid could not be shown immediately after being hidden. (#9151)
  • Fixed
    Fixes an issue where touch gesture could get handled after the document has been reloaded which could cause a crash. (#9145)
  • Fixed
    Fixes an issue where last letter of a sentence couldn't be highlighted in some cases. (#8751)
  • Fixed
    Fixes an issue where repeatedly highlighting same sentence would make the highlight darker and underlines overlap. (#4913)
  • Fixed
    Fixes an issue where it was possible to create empty custom stamps. (#8969)
  • Fixed
    Fixes an issue where annotation list items were missing icons for certain annotations. (#9206)

2.8.1 - 13 Dec 2016

  • Added
    Adds NewPageDialog. (#8759)
    • Added
      Adds NewPageFactory interface and PSPDFThumbnailGrid#setNewPageFactory. The factory returns NewPage instances that are used by the document editor when adding a page.
    • Added
      Adds DialogNewPageFactory for creating new pages using the NewPageDialog. This is the default factory.
    • Added
      Adds ValueNewPageFactory that allows programmatically specifying a single NewPage instances that is used by the document editor.
  • Added
    Adds divider after annotation preview as a visual cue that annotation preview is clipped. (#8827)
  • Added
    Adds support for PropertyInspector#ItemDecoration that can be used to implement custom dividers between inspector views. (#8849)
  • Added
    Adds Slovak language localization. (#8928)
  • Added
    Adds the ability to disable annotations from rendering via PSPDFActivityConfiguration#annotationRenderConfiguration(AnnotationRenderConfiguration), see AnnotationRenderingExample from the catalog app. (#7571)
  • Changed
    Improves grouping of icons in AnnotationCreationToolbar. (#8863)
    • Changed
      Items are now grouped more by the context and not just extracted if enough space (which was leading to strange structures).
    • Changed
      Groups are predefined and can be found in AnnotationCreationToolbarItemPresets.
    • Changed
      Grouping is being done by AnnotationCreationToolbarGroupingRule instead of being directly passed to setMenuItems() - flat list of items is passed now.
  • Changed
    Improves DocumentEditingToolbar by making it draggable and introducing pre-defined item groupings same as for AnnotationCreationToolbar. (#8898)
    • Changed
      Groups are predefined and can be found in DocumentEditingToolbarItemPresets.
    • Changed
      Grouping is being done by DocumentEditingToolbarGroupingRule instead of being directly passed to setMenuItems() - flat list of items is passed now.
    • Changed
      Drag position is saved and the toolbar's default position on the tablet is on the left side.
  • Fixed
    Fixes an issue where AnnotationCreationToolbar single menu items cannot be deselected. (#8852)
  • Fixed
    Fixes an issue with loading invalid annotations. (#8869)
  • Fixed
    Fixes an issue where an invalid page index read from the document store could cause an exception. (#8858)
  • Fixed
    Fixes an issue while garbage collecting PDF objects on saving non-incrementally. (#8901)
  • Fixed
    Fixes an issue where opening note annotation dialog twice at the same time broke UI. (#8854)
  • Fixed
    Fixes thumbnail bar flickering when changing pages. (#4894)
  • Fixed
    Fixes an issue where edit annotation menu item is not selected once the annotation creation mode is activated. (#7513)
    • Added
      Adds pspdf__editAnnotationsIconActivated for specifying custom icon when annotation creation mode is active. This is contained in pspdf__ActionBarIcons style.
    • Changed
      Selected icon color is controlled by pspdf__ActionBarIcons_pspdf__iconsColorActivated style parameter.
  • Changed
    Lets com.pspdfkit.utils.Size implement Parcelable. (#8765)
  • Fixed
    Fixes an exception in UnitSelectionEditText for Arabic devices. (#8738)
  • Fixed
    Fixes an issue where leaving annotation creation mode could lead to an exception. (#8860)
  • Fixed
    Fixes an issue causing an IndexOutOfBoundsException when selecting text on a page. (#8922)
  • Fixed
    Fixes an issue where sharing with WhatsApp triggered an exception. (#8424)

2.8.0 - 1 Dec 2016

  • Changed
    Updates dependencies - Support libraries to 25.0.1, RxJava to 1.2.3.
  • Added
    Adds automated saving and restoration of the last viewed page in a document (#8744)
    • Added
      Adds PSPDFConfiguration#isLastViewedPageRestorationEnabled and respective setters PSPDFConfiguration.Builder#restoreLastViewedPage and PSPDFActivityConfiguration.Builder#restoreLastViewedPage.
    • Added
      Adds constant PSPDFFragment#DOCUMENTSTORE_KEY_LAST_VIEWED_PAGE_INDEX that is used by the fragment as key for storing the last viewed page index inside the DocumentDataStore of the loaded document.
    • Added
      Adds catalog app setting "Restore last viewed page".
  • Added
    Adds feature to reveal the URL stored inside a link annotation when long-pressing the annotation. (#5558)
  • Added
    Adds support for square and circle annotations. (#8548)
    • Added
      Adds SquareAnnotation and CircleAnnotation classes.
    • Added
      Adds UI to add and edit square and circle annotations on the page.
    • Added
      Adds ShapeAnnotationDefaultsProviderproviding defaults for creating and editing square and circle annotations.
  • Added
    Adds support for polygon and polyline annotations. (#8625)
    • Added
      Adds PolygonAnnotation and PolylineAnnotation classes.
    • Added
      Adds UI to add and edit polygon and polyline annotations on the page.
    • Changed
      Defaults for polygon annotations are provided by ShapeAnnotationDefaultsProvider.
    • Changed
      Defaults for polyline annotations are provided by LineAnnotationDefaultsProvider.
  • Added
    Adds support for storing persistent per-document preferences. (#8638, #8703).
    • Added
      Adds DocumentDataStore public class to access the document preferences.
  • Added
    Adds support for line annotations with filled line ends. (#8455)
  • Added
    Adds support for editing annotation points for line, polygon and polyline annotations. (#8456)
  • Added
    Adds missing setAlpha setter to Annotation class. (#8398)
  • Changed
    Improves the ContextualToolbar so that items are dynamically re-grouped once the size of the toolbar changes. (#8173)
    • Added
      Adds DefaultMenuItemGroupingRule which is an implementation of MenuItemGroupingRule interface. You can use these two to implement your custom grouping of menu items. The DefaultMenuItemGroupingRule is generic and somewhat complex. It's set by calling ContextualToolbar#setMenuItemGroupingRule().
  • Changed
    Improves the positioning of the items in the AnnotationCreationToolbar: annotation menu items are on the left side (top when vertical) and control buttons (close, open color picker and drag) are on the right side (bottom when vertical). (#8615)
  • Changed
    Improves memory handling in low-memory situations and with many open documents. (#8352, #8447)
  • Changed
    Improves performance of decoding JPEG images. (#8712, #8673)
  • Changed
    Improves bookmark handling in Processor and DocumentEditor. (#8091)
  • Changed
    Improves annotation deletion speed. (#8788)
  • Changed
    Improves loading time of large documents lazily loading page sizes, labels and rotations. (#7842)
  • Changed
    Disables resize guides for line annotations. (#8696)
  • Fixed
    Fixes an issue where line annotation ends were being clipped by annotation's bounding box. (#8357)
  • Fixed
    Fixes pixelated ink paths when drawing on zoomed page. (#8696)
  • Fixed
    Fixes an issue where ink/lines could dissappear while drawing in Android 4.1. (#8811)
  • Fixed
    Fixes an issue where annotation selection didn't reflect annotation bounding box changes. (#8696)
  • Fixed
    Fixes an issue where white and transparent colors could not be distinguished from background in annotation inspector. (#8548)
  • Fixed
    Fixes an issue where a page would not be properly refreshed when adding certain annotation types. (#8577)
  • Fixed
    Fixes an issue with opening a PDF with bookmarks in Preview.app. (#8591)
  • Fixed
    Fixes an issue where it wasn't possible to resize image stamps with large aspect ratios. (#8570)
  • Fixed
    Fixes an issue where PSPDFPasswordView would still apply color filters if tinting was deactivated via PasswordViewThemeConfiguration#isIconTintingEnabled. (#8607)
  • Fixed
    Fixes an issue where the toolbar was clipped when animating its visibility in immersive viewing mode. (#8681)
  • Fixed
    Fixes label backgrounds in page grid when the page has a long page label. (#8745)
  • Fixed
    Fixes an issue where markup annotation wasn't updated when changing its color. (#8749)
  • Fixed
    Fixes unnecessary page render when creating annotations. (#8700)
  • Fixed
    Fixes an issue where parceled DataProvider instances were not correctly loaded by PSPDFFragment. (#8743)

2.7.0 - 7 Nov 2016

  • Changed
    Updates dependencies - Support libraries to 25.0.0, RxJava to 1.2.2.
  • Changed
    Updates target to 25 - Android Nougat 7.1.
  • Added
    Adds full support for Android Nougat multi-window mode.
  • Added
    Adds support for signatures. (#6582)
    • Added
      Adds UI for adding, selecting and deleting signatures, which are then added to the page as ink annotations.
    • Added
      Adds two modes for handling signature annotations: "My Signature" (stores added signatures) and "Customer Signature" (one time signature).
    • Added
      Adds setCustomerSignatureFeatureEnabled(boolean) and setSignatureSavingEnabled(boolean) to AnnotationEditingConfiguration.Builder for configuring previously mentioned modes.
    • Added
      Adds pspdf__signatureLayoutStyle attribute for styling the signature dialog.
  • Added
    Adds support for line annotations. (#8339)
    • Added
      Adds LineAnnotation class.
    • Added
      Adds UI to add and edit line annotations on the page.
    • Added
      Adds LineAnnotationDefaultsProvider providing defaults for creating and editing line annotations.
  • Added
    Adds setBorderColor, setBorderWidth, setBorderStyle and setBorderDashArray (and getters) to Annotation class. (#8301)
  • Added
    Adds support for stamps with images captured from camera. (#8218)
  • Added
    Adds ready to use API for picking images from gallery or capturing images via camera. (#8190)
    • Added
      Adds ImagePickerFragment that encapsulates whole picker lifecycle.
    • Added
      Adds BitmapUtils class for decoding Bitmap from Uris retrieved via ImagePickerFragment#OnImagePickedListener.
    • Added
      Adds an example to catalog app showcasing how to use this API to create new pages with images captured by camera.
  • Added
    Adds #toString methods to DownloadRequest and URLDownloadSource. (#8264)
  • Added
    Adds PasswordViewThemeConfiguration.Builder#iconTintingEnabled which allows turning off tinting of the password view drawable. (#8403)
  • Added
    Adds close button to annotation property inspector. (#8262)
  • Added
    Adds scrollbars and document scrolling API. (#8388)
    • Changed
      Enables default Android scrollbars on the PSPDFFragment. You can disable them using #scrollbarsEnabled on the PSPDFConfiguration.Builder or PSPDFActivityConfiguration.Builder.
    • Added
      Adds styleable attribute pspdf__documentViewStyle that accepts a style defining View attributes for modifying the appearance of scrollbars. If not overridden by the active theme, this attribute is set to the pspdf__DocumentView style.
    • Added
      Adds scrollbar theming example to the existing DarkThemeExample.
    • Added
      Adds DocumentScrollListener interface for observing scrollbar movement of the current document.
    • Added
      Adds PSPDFFragment#registerDocumentScrollListener and PSPDFFragment#unregisterDocumentScrollListener
    • Added
      Adds VerticalScrollBar widget, a customizable scrollbar with draggable indicator (for quick page browsing).
    • Added
      Adds VerticalScrollBarExample to showcase scrollbar usage inside a custom activity.
  • Added
    Adds the ability to disable bookmark renaming with PSPDFOutlineView#setBookmarkRenamingEnabled. (#8118)
  • Added
    Adds PSPDFKit#setLoggingEnabled method for enabling or disabling PSPDFKit debug output in logcat. (#8515)
  • Added
    Adds an API for dynamic modification of certain properties of the active annotation selection. (#8150)
    • Added
      Adds new method onPrepareAnnotationSelection to PSPDFAnnotationManager.OnAnnotationSelectedListener.
    • Added
      Adds AnnotationSelectionController exposing multiple properties for controlling active annotation selection.
    • Added
      Adds AnnotationSelectionCustomizationExample showcasing this new API.
    • Added
      Adds OnAnnotationSelectedListenerAdapter which is an empty implementation of the PSPDFAnnotationManager.OnAnnotationSelectedListener interface.
  • Removed
    Removes PSPDFConfiguration#isLoggingEnabled and corresponding builder methods. (#8515)
  • Changed
    Improves large memory usage handling of PSPDFProcessor. (#8291, #8352)
  • Fixed
    Fixes an exception thrown by a DownloadJob if the parent folder of the output file did not exist. The DownloadJob will now try to create the folder itself, or throw an exception if not able to do so. (#8265)
  • Fixed
    Fixes an unlikely crash in annotation parsing. (#8295)
  • Fixed
    Fixes an issue causing a NullPointerException when exiting text selection mode while a highlight annotation is being created. (#8299)
  • Fixed
    Fixes a rare issue in the Document Editor. (#8370)
  • Fixed
    Fixes typo in class name: FloatingHitEditText is now called FloatingHintEditText. (#8404)
  • Fixed
    Fixes an issue where bookmark name edit dialog could not be confirmed with enter key. (#8328)
  • Fixed
    Fixes an issue where annotations could be rendered with a wrong image. (#8493)
  • Fixed
    Fixes an issue where document wasn't resized correctly after hiding keyboard in immersive mode. (#8494)
  • Fixed
    Fixes an issue where grid view was always showing page labels even if disabled. (#8046)

2.6.1 - 17 Oct 2016

  • Added
    Adds support for custom stamps. (#8062)
  • Added
    Adds progress dialog when sharing file without processing. (#8156)
  • Added
    Adds web download capabilities to DownloadJob. (#8160)
    • Changed
      DownloadJob will now use a temporary file for writing while downloading. This prevents corrupted files when downloads are interrupted. To not use a temporary file set DownloadRequest.Builder#useTemporaryOutputFile to false
    • Added
      Adds DownloadProgressFragment#setDialogOnCancelListener for setting a listener that will be notified of when the progress dialog was cancelled by the user.
    • Added
      Adds URLDownloadSource that can download PDF documents from a URL object.
    • Added
      Adds detection of http and https URIs using DownloadRequest.Builder#uri.
    • Removed
      Removes @Nullable annotation from DownloadProgressFragment#getJob.
  • Added
    Adds ActionResolver for executing PDF actions from the com.pspdfkit.annotations.actions package. PSPDFFragment implements this interface, allowing to execute PDF actions on the document. (#8205)
  • Added
    Adds missing BookmarkViewAdapter interface which can be set by PSPDFOutlineView#setBookmarkViewAdapter. (#8117)
  • Changed
    Automatically uses ReLinker to load native library if available. This fixes UnsatisfiedLinkError exceptions on some older devices. For more information on ReLinker usage and configuration see our guide article: https://pspdfkit.com/guides/android/current/miscellaneous/relinker/ (#8197)
  • Changed
    Change occurrences of pageNumber, page, etc. to pageIndex. (#8115)
    • Changed
      Renames PSPDFSearchResult#pageNumber to PSPDFSearchResult#pageIndex.
    • Changed
      Renames GoToAction#getPage to #getPageIndex.
    • Changed
      Renames QueryPreviewResult#getPage to #getPageIndex.
    • Changed
      Renames StampPickerDialog#setPageNumber and #getPageNumber to #setPageIndex and #getPageIndex respectively.
    • Changed
      Renames Bookmark#getPage to #getPageIndex.
    • Changed
      Renames TextSelection#page to #pageIndex.
    • Changed
      Renames OnZoomFactorChangedEvent#page to #pageIndex.
  • Fixed
    Fixes an issue where swiping through a large PDF could cause a crash. (#8141)
  • Fixed
    Fixes an issue that caused crashes on some documents when dragging selection handles. (#8186)
  • Fixed
    Fixes an issue where document insets were not applied when creating free-text annotations. (#8185)
  • Fixed
    Fixes inconsistent peek height of the bottom sheet ActionMenu. (#8071)
  • Fixed
    Fixes an issue where contextual toolbars weren't updating toolbar icons correctly. (#8193)
  • Fixed
    Fixes an issue where share button stopped working after reloading the document. (#8198)
  • Fixed
    Fixes an issue that caused duplicated text rendering when creating free-text annotation. (#8243)
  • Fixed
    Fixes an issue where document editor persisted edited state across editing sessions even when editing had been cancelled. (#8241)
  • Fixed
    Fixes an issue where DownloadProgressFragment would always switch to indeterminate progress bar style after a configuration change. (#8166)
  • Fixed
    Fixes an issue where images captured by device camera had wrong orientation when used as stamp image or PageImage. (#8221)
  • Fixed
    Fixes an issue where image annotations weren't rotated correctly on rotated PDF pages. (#8135)
  • Fixed
    Fixes an issue where an invalid modification or creation date inside the PDFs metadata would cause a crash. (#8236)

2.6.0 - 3 Oct 2016

  • Added
    Adds support for image and stamp annotations. (#5628)
    • Added
      Adds StampAnnotation object representing both image and stamp annotations.
    • Added
      Adds UI to add and edit stamp annotations on the page.
    • Added
      Adds UI to add pictures from device library to the pages.
  • Added
    Adds a new bottom sheet sharing dialog that replaces the share/print menu. (#7598)
    • Added
      Adds ActionMenu for displaying list of ActionMenuItem inside grid list bottom sheet.
    • Added
      Adds SharingMenu which extends ActionMenu to display list of sharing targets.
    • Added
      Adds DefaultSharingMenu which extends SharingMenu to display print and view actions.
    • Added
      Adds PSPDFActivity#setSharingMenuListener(listener) for listening to default sharing menu lifecycle and click events.
  • Added
    Adds download API for saving PDF documents to the local filesystem. (#7553)
    • Added
      Adds DownloadRequest and DownloadJob for configuring and performing a download.
    • Added
      Adds DownloadSource interface for defining different types of remote PDF document sources.
    • Added
      Adds AssetDownloadSource for copying a PDF document from the app's assets.
    • Added
      Adds ContentResolverDownloadSource for saving a PDF document from a content provider.
  • Added
    Adds sub-menus to the ContextualToolbar instead of displaying a new set of items. Sub-menus are activated with long-pressing the items with sub-menu indicators. (#7116)
    • Added
      Adds pspdf__contextualToolbarSubmenuBackground for controlling the background of sub-menus, alongside the already existing pspdf__contextualToolbarBackground which is now applied to the main menu bar.
    • Added
      Adds ContextualToolbarMenuBar class which represents a single bar inside the ContextualToolbar serving as a ViewGroup.
  • Added
    Adds CustomSharingMenuExample to catalog app showcasing how to add custom share actions to sharing menu. (#7564)
  • Added
    Adds set of new methods to DocumentSharingManager accepting ShareTarget for sharing documents to single share target. (#7604).
  • Added
    Adds async versions for methods in DocumentSharingIntentHelper that could potentially block UI thread. (#7822)
  • Added
    Adds methods PSPDFKit#invalidateDocumentCache and PSPDFKit#invalidatePageCache for clearing the render cache of a document or page respectively. (#7739)
  • Added
    Adds new document processing examples inside the DocumentProcessorExample of the catalog app. (#7594, #7797)
    • Added
      Adds example on how to rotate pages.
    • Added
      Adds example on how to add new pages to a document.
  • Added
    Adds better support for preserving passwords from the original document when saving or processing. (#6665)
  • Added
    Adds PSPDFKit#openDocument(context, DocumentSource) and PSPDFKit#openDocuments(context, List<DocumentSources>) methods. A DocumentSource object describes the source of a document which can be either a Uri or a DataProvider. (#7994)
    • Removed
      Removes PSPDFKit#openDocuments(List<Uri>). It had to be removed instead of deprecated due to Java generics type erasure. It has been replaced with PSPDFKit#openDocuments(List<DocumentSource>).
    • Added
      Adds PSPDFDocument#getDocumentSource() and PSPDFDocument#getDocumentSources() methods for retrieving the source of document PDF data.
    • Removed
      Deprecates all PSPDFKit#open methods which accepted a DataProvider or list of document Uris. The new methods accepting DocumentSource objects should be used instead.
    • Removed
      Deprecates PSPDFDocument#getUri(), PSPDFDocument#getUriList(). The new getDocumentSource() and getDocumentSources() methods should be used instead.
  • Added
    Adds position independent executable flag (-fpie) for further security hardening of the native code. (#7731)
  • Added
    Adds keyboard shortcuts. (#7750)
    • Added
      Adds Ctrl+P for opening the printer dialog.
    • Changed
      Selected annotations can now be deleted by pressing backspace or delete.
  • Added
    Adds AnnotationCreationMode enum that is used instead of AnnotationType to control active annotation tool in annotation creation mode. (#7883)
    • Removed
      Deprecates PSPDFFragment#enterAnnotationCreationMode(AnnotationType). Use #enterAnnotationCreationMode(AnnotationCreationMode) instead.
    • Removed
      Deprecates AnnotationCreationController#getCurrentlyEditedAnnotationType. Use #getActiveAnnotationCreationMode instead.
    • Removed
      Deprecates AnnotationCreationController#changeAnnotationCreationMode(AnnotationType). Use #changeAnnotationCreationMode(AnnotationCreationMode) instead.
  • Added
    Adds analytics API allowing developers to collect framework data. (#7836)
    • Added
      Adds AnalyticsClient interface. This can be implemented to receive various analytics events and data from the framework.
    • Added
      Adds Analytics.Event and Analytics.Data classes defining all existing analytics events and their carried data.
    • Added
      Adds PSPDFKit#addAnalyticsClient and PSPDFKit#removeAnalyticsClient for adding and removing AnalyticsClient instances respectively.
  • Added
    Adds an option to limit the maximum number of search results. See SearchConfiguration.Builder#maxSearchResults(int). (#7512)
  • Changed
    Significantly improves rendering performance by partially rendering zoomed pages. (#7531)
    • Fixed
      Fixes fuzzy text while scrolling around the page.
    • Changed
      Significantly reduces memory usage of the application.
  • Changed
    Default position of the AnnotationCreationToolbar is now Position.LEFT on tablet devices with sw600dp. (#7517)
  • Changed
    Clicking on annotation editing button now toggles annotation creation mode. (#8069)
  • Changed
    Improves rendering of annotations on rotated documents. (#6312, #7185, #7792)
  • Changed
    Improves memory usage when searching in a large document. (#7958)
  • Changed
    Improves font size picker in SliderPickerInspectorView. (#8014)
  • Changed
    PSPDFKit.open*Async methods now return a Single<PSPDFDocument> instead of Observable<PSPDFDocument>. (#7994)
  • Changed
    Renames controller binding methods in ContextualToolbar implementations: (#7908)
    • Changed
      AnnotationCreationToolbar#bindAnnotationCreationController(), DocumentEditingToolbar#bindDocumentEditingController() and TextSelectionToolbar#bindTextSelectionController() are all renamed to bindController().
    • Changed
      AnnotationCreationToolbar#unbindAnnotationCreationController(), DocumentEditingToolbar#unbindDocumentEditingController() and TextSelectionToolbar#unbindTextSelectionController() are all renamed to unbindController().
  • Fixed
    Fixes toolbar icon when sharing is disabled - the icon will now show a printer to accurately reflect the remaining action. (#8045)
  • Fixed
    Fixes an issue where a highlight annotation was rendered with a border. (#7618)
  • Fixed
    Fixes an issue where some documents couldn't be exported or printed. (#7585)
  • Fixed
    Fixes an incorrect bitmap recycling when the PSPDFActivity is finishing, possibly causing out-of-memory errors when quickly being restarted. (#7659)
  • Fixed
    Fixes a build tools issue causing resource resolution errors at runtime. (#7672)
  • Fixed
    Fixes a crash originating inside the ContentResolverDataProvider if the used content provider was not supporting append operations. (#7716)
  • Fixed
    Fixes an issue where the text selection offsets were wrong in certain documents, causing highlight annotations to be misaligned. (#7271)
  • Fixed
    Fixes an issue where text selection mode was exited when dragging both handles to the same text index. (#7652)
  • Fixed
    Fixes an issue where document editor didn't re-render changed pages. (#7690)
  • Fixed
    Fixes an issue where document didn't refresh when creating highlight annotation from selected text. (#7729)
  • Fixed
    Fixes an issue where markup annotation color wasn't applied before leaving annotation inspector. (#7786)
  • Fixed
    Fixes clipped background of selected toolbar icons on some density configurations. (#7741)
  • Fixed
    Fixes DocumentListener callbacks onPageChanged(PSPDFDocument, int) and onDocumentZoomed(PSPDFDocument, int, float) inconsistent with paginated scrolling. (#6727)
  • Fixed
    Fixes bookmark list view losing changed sort order when a bookmark is deleted. (#7977)
  • Fixed
    Fixes wrong tint of bookmark edit button. (#8001)
  • Fixed
    Fixes autocorrect not working for free text annotations. (#7857)
  • Fixed
    Fixes markup annotations sometimes being rendered on top of other annotations. (#8029)
  • Fixed
    Fixes rendering of compound documents with annotations. (#8048)
  • Fixed
    Fixes an issue where thumbnail bar is being kept on top of the keyboard, thus reducing the available space on the screen. (#7999)

2.5.1 - 29 Aug 2016

  • Added
    Adds preview of free-text and ink annotations to annotation inspector when creating annotations. (#7330)
  • Added
    Adds example on how to add custom share actions to the CustomActionsExample of the catalog app. (#7564)
  • Added
    Adds example on how to rotate pages using the PSPDFProcessor to the DocumentProcessingExample of the catalog app. (#7594)
  • Changed
    Renames PropertyInspectorView#bindToController() to PropertyInspectorView#bindController(). (#7540)
  • Changed
    Catalog app now asks for external storage read/write permissions when opening files from implicit intents on Android M and higher. (#7150)
  • Changed
    Allows re-selecting text via long press gesture when text is already selected. (#7566)
  • Fixed
    Fixes an issue where windowSoftInputMode set on PSPDFActivity was overwritten with SOFT_INPUT_ADJUST_NOTHING when opening password protected documents. (#7431)
  • Fixed
    Fixes crash when deselecting FreeText annotations with null contents. (#7584)
  • Fixed
    Fixes an issue where ink annotations that were created with smaller bounding box than the minimum bounding box size could not be resized to their original size. (#7438)
  • Fixed
    Fixes an issue with single dot ink annotation disappearing when moved around the page. (#7436)
  • Fixed
    Fixes an issue where HUD disappeared when tapping menu item while HUD was hiding. (#7502)
  • Fixed
    Fixes an issue where annotation creation mode was left after creating note annotation on single page documents. (#7516)
  • Fixed
    Fixes an issue that could lead to inconsistent UI when clicking on HUD buttons while selecting annotations. (#7520)
  • Fixed
    Fixes an issue where ink annotations resized to their maximum size were rendered without alpha. (#7534)
  • Fixed
    Fixes an issue where creating multiple free-text annotations would exit annotation creation mode. (#7591)

2.5.0 - 15 Aug 2016

  • Changed
    Updates dependencies - support libraries have been reverted to 23.4.0 until release of Android Nougat. RxJava was updated to version 1.1.9.
  • Added
    Adds bookmark support to the UI and APIs. Bookmarks are stored inside the PDF document itself in a portable manner. (#5787)
    • Added
      Adds Bookmarks tab to the outline view with controls to add and delete bookmarks.
    • Added
      Adds BookmarkProvider class handling all Bookmark related operations. It can be retrieved by calling PSPDFDocument#getBookmarkProvider().
    • Added
      Adds BookmarkListView as a view to display bookmark list inside a document.
  • Added
    Adds annotation property inspector replacing old color and thickness picker dialog. (#3594)
    • Changed
      IMPORTANT: The property inspector coordinator needs to be present in activity layout for annotation inspector to work correctly. If you are using custom view in PSPDFActivity, add com.pspdfkit.ui.inspector.PropertyInspectorCoordinatorLayout with id R.id.pspdf__inspector_coordinator (for example, see custom_pdf_activity.xml from the catalog app).
    • Added
      Adds PropertyInspectorView interface with implementations ColorPickerInspectorView and SliderPickerInspectorView for picking colors and thickness/text size.
    • Added
      Adds PropertyInspector used as a container for PropertyInspectorViews.
    • Added
      Adds PropertyInspectorCoordinatorLayout used for displaying instances of PropertyInspector and handling animations and interactions between them.
    • Changed
      Updates AnnotationToolbarFragmentExample from the catalog app to show how to incorporate PropertyInspectorCoordinatorLayout with working annotation inspector in PSPDFFragment within the custom activity.
    • Added
      Adds CustomAnnotationInspectorExample showing how to add views to existing annotation inspector and how to create custom annotation inspector UI from scratch.
  • Added
    Adds PSPDFActivity.IntentBuilder that builds an Intent to display a PDF document. This allows customization of Intent flags and extras before starting the activity. (#7158)
  • Added
    Adds an API for controlling annotation inspector when creating or editing annotations.
    • Added
      Adds AnnotationInspectorController through which the annotation inspector can be fully customised.
    • Added
      Adds bindAnnotationInspectorController and unbindAnnotationInspectorController to AnnotationCreationController and AnnotationEditingController.
    • Added
      Adds AnnotationCreationInspectorController and AnnotationEditingInspectorController managing annotation inspector in annotation creation and editing modes.
  • Added
    Adds an API for controlling annotation editing defaults and preferences.
    • Added
      Adds AnnotationDefaultsManager handling defaults and allowed values for annotation properties.
    • Added
      Adds set of AnnotationDefaults*Provider interfaces for supported annotation properties and FreeTextAnnotationDefaultsProvider, InkAnnotationDefaultsProvider, MarkupAnnotationDefaultsProvider and NoteAnnotationDefaultsProvider providing annotation defaults for supported annotation types.
    • Added
      Adds AnnotationPreferencesManager handling annotation editing preferences.
    • Added
      Adds PSPDFFragment#getAnnotationDefaults() and PSPDFFragment#getAnnotationPreferences to access AnnotationDefaultsManager and AnnotationPreferencesManager.
    • Added
      Adds AnnotationDefaultsExample showing how to use the new annotation defaults API.
  • Changed
    Improves configuring search and adds more options to the search API. (#7246)
    • Added
      Adds SearchConfiguration to PSPDFActivityConfiguration containing properties for searching the document.
    • Added
      Adds SearchView#setSearchConfiguration() for setting the SearchConfiguration to the SearchView implementation.
    • Added
      Adds an option to start search on the current page in the search views. See SearchConfiguration.Builder#setStartSearchOnCurrentPage().
    • Added
      Adds getters and setters for SearchConfiguration properties applied to PSPDFSearchViewInline and PSPDFSearchViewModular.
    • Added
      Adds setting up priority pages when performing a search. Those pages will be the first ones to search, before the other ones. See PSPDFSearchOptions#priorityPages().
    • Removed
      Removes setSnippetLength() and setStartSearchChars() (along with its XML counterparts) from ModularSearchThemeConfiguration since those don't really belong to the theme, moved to SearchConfiguration.
    • Removed
      Removes setStartSearchChars() (along with its XML counterparts) from InlineSearchThemeConfiguration since that doesn't really belong to the theme, moved to SearchConfiguration.
  • Added
    Adds PropertyInspectorCoordinatorLayout.PropertyInspectorLifecycleListener that listens for property inspector lifecycle within the PropertyInspectorCoordinatorLayout (preparing, displaying, removing), set through PSPDFActivity#setPropertyInspectorLifecycleListener(listener) and removed through PSPDFActivity#removePropertyInspectorLifecycleListener().
  • Added
    Adds support for annotation resizing guides. (#5555)
  • Added
    Adds theme attributes for ToolbarCoordinatorLayout set through: <item name="pspdf__toolbarCoordinatorLayoutStyle"/> with dragTargetColor attribute for setting a color of the target area when dragging the toolbars. It can also be set programmatically through ToolbarCoordinatorLayout#setDragTargetColor. (#7165)
  • Added
    Adds ToolbarCoordinatorLayout.LayoutParams to be used for positioning ContextualToolbar within ToolbarCoordinatorLayout. (#7161)
    • Added
      Adds allowedPositions property as part of the ToolbarCoordinatorLayout.LayoutParams that allows selecting which toolbar positions are allowed.
    • Changed
      Improves toolbar position changes: when forcefully pinned to the top due to the lack of space, the toolbar will restore it's original position once there's enough space again.
    • Removed
      Removes ContextualToolbar#setPosition() and ContextualToolbar#getPosition() calls. Set position parameter through ToolbarCoordinatorLayout.LayoutParams, set on the ContextualToolbar.
  • Added
    Adds DocumentSharingProvider automatically to the manifest through manifest merging (no need to set them manually). (#7287)
  • Added
    Adds android:largeHeap="true" to the AndroidManifest.xml using manifest merging. (#7287)
  • Changed
    Renames Annotation#getPageNumber() to Annotation#getPageIndex() to avoid confusion about zero indexing. (#7340)
  • Changed
    Renames MediaAssetsContentProvider to AssetsContentProvider. It's authority is changed to {$applicationId}.pdf.assets and it is not added automatically to the app's manifest. (#7391)
  • Changed
    Improves compatibility when flattening documents with non-standard headers. (#7212)
  • Changed
    Improves logic around copying forms via the processor when the source document has invalid form entries. (#7273)
  • Changed
    Improves JPEG2000 decoding performance. (#7307)
  • Removed
    Deprecates PSPDFActivityConfiguration#printingEnabled() and replaces it with enablePrinting() / disablePrinting() methods for consistency. (#7476)
  • Fixed
    Fixes all documents using the same thread pool causing severe performance issues when trying to do background operations like thumbnail generation. (#7240)
  • Fixed
    Fixes an issue where note annotation wasn't created with last used color and icon. (#7107)
  • Fixed
    Fixes several issues found when editing annotation in compound documents. (#7192)
  • Fixed
    Fixes improper toolbar height on pre-Lollipop devices. (#7334)
  • Fixed
    Fixes incorrect InvalidThemeException being thrown when the context provided to the theme configuration builders is not using some NoActionBar theme. (#7463)
  • Fixed
    Fixes an issue where annotation could not be resized when scale handle moved outside of a page. (#7367)
  • Fixed
    Fixes an issue where annotation could not be resized when scale handles moved outside of a page. (#4814)
  • Fixed
    Fixes an issue that could result in infinite search when performing inline search. (#7410)
  • Fixed
    Fixes false positive warnings when detecting missing android:largeHeap flag. (#7262)
  • Fixed
    Fixes an issue when inline search query is not cleared up when exiting the search bar. (#7453)
  • Fixed
    Fixes an issue where annotation resizing couldn't be disabled via AnnotationEditingConfiguration.Builder#setSelectionResizeEnabled. (#7488)

2.4.3 - 6 Jul 2016

  • Added
    Adds pspdf__tabIndicatorColor attribute to the pspdf__OutlineView styleable. The attribute defaults to ?colorPrimary. (#7091)
  • Changed
    Marks exception parameters in DocumentListener#onDocumentLoadFailed and DocumentListener#onDocumentSaveFailed as @NonNull. (#7122)
  • Changed
    DocumentSharingProvider will now return the android.provider.OpenableColumns when queried for a shared file. (#7131)
  • Fixed
    Fixes an issue where PSPDFKit thought it runs in debug mode. (#7129)
  • Fixed
    Fixes an issue where the soft keyboard was not closed after exiting search on some Samsung devices. (#7145)

2.4.2 - 28 Jun 2016

  • Changed
    Updates dependencies - Support libraries (support-v4, appcompat-v7, recyclerview-v7, cardview-v7 and design) have been updated to version 24.0.0. RxJava was updated to 1.1.6 and RxAndroid to 1.2.1.
  • Added
    Adds ToolbarsInFragmentExample instead of AnnotationToolbarFragmentExample in the catalog app, incorporating all new toolbars instead of just annotation creation toolbar. (#6914)
  • Added
    Adds a lot of the documentation with the matched styling across the framework. (#6406, #6404)
  • Added
    Adds InvalidThemeException that may be thrown if an invalid theme is used. (#6942, #6943)
  • Added
    Adds theme validation to PSPDFActivity#onCreate which will throw an exception if the used theme is incompatible with the activity. (#6942)
  • Changed
    ThumbnailBarThemeConfiguration#getBackgroundColor now defaults to the theme's ?colorPrimary attribute. (#6943)
  • Added
    Adds a default icon to the PDF password screen. To disable the icon set pspdf__icon of your theme's pspdf__passwordViewStyle to @null. (#6943)
  • Changed
    Improves rendering performance in certain situations. (#6944)
  • Changed
    Improves thumbnail grid to render thumbnails in page order. (#5307)
  • Changed
    Changes the toolbar drag being activated with a long press on the drag button. Now it starts as soon as the drag button is touched. (#6927)
  • Fixed
    Fixes an issue where rotated pages were not rendered correctly in print preview. (#6892)
  • Fixed
    Fixes an issue with print dialog being canceled when changing orientation. (#6755)
  • Fixed
    Fixes an issue where overriding menu item clicks in ContextualToolbar through ContextualToolbar.OnMenuItemClickListener was not correctly applied and the default action was executed alongside the custom one. (#6995)
  • Fixed
    Fixes a native crash caused when passing null as license to PSPDFKit#initialize. The method will now throw a PSPDFInvalidLicenseException if called with a null license. (#7055)
  • Fixed
    Fixes keyboard not closing after exiting search in some cases. (#7070)

2.4.1 - 10 Jun 2016

  • Changed
    Theme attribute actionModeBackground is no longer used for setting default color for all contextual toolbars. Please use pspdf__contextualToolbarBackground instead. (#6912)
  • Removed
    Removes the no longer used TextSelectionListener interface. Please use the newer OnTextSelectionChangedListener instead. (#6896)
  • Fixed
    Fixes an issue causing a license error when initializing the PSPDFThumbnailGrid. (#6910)
  • Fixed
    Fixes an issue where text in note annotation editor had low contrast when using certain background colors. (#6819)
  • Fixed
    Fixes an issue where annotation color picker didn't show correct color when editing annotations. (#6875)
  • Fixed
    Fixes crash in ContextualToolbar that occurred when theme didn't define the actionModeBackground attribute. (#6906)
  • Fixed
    Fixes PSPDFFragment#onSaveInstanceState blocking the main thread when being called while the fragment was on the fragment back stack without being displayed. (#6971)
  • Fixed
    Fixes an issue with print dialog being canceled when changing orientation. (#6755)

2.4.0 - 7 Jun 2016

PSPDFKit 2.4 for Android is one of our largest releases so far. A new annotation toolbar, printing and many smaller improvements to almost all parts of the SDK make this a worthy upgrade.

  • Changed
    IMPORTANT: PSPDFActivity now uses android.support.v7.widget.Toolbar as action bar instead of the default one (#6036). These are the necessary migration changes:
    • Changed
      If using custom view in PSPDFActivity, add android.support.v7.widget.Toolbar with id R.id.pspdf__toolbar_main contained within the com.pspdfkit.ui.toolbar.ToolbarCoordinatorLayout with id R.id.pspdf__toolbar_coordinator. The toolbar coordinator needs to contain main toolbar as a child so the new toolbars can be displayed and animated properly (for example, see custom_pdf_activity.xml from the catalog app).
    • Changed
      The theme applied to the activity should have Theme.AppCompat.Light.NoActionBar as a parent, with these attributes: <item name="windowActionBar">false</item>, <item name="windowNoTitle">true</item> and <item name="windowActionModeOverlay">true</item>. The default color for all the contextual toolbars is set through <item name="actionModeBackground">.
  • Added
    Adds support for printing documents in Android 4.4 (API level 19) and higher. (#2936)
    • Added
      Adds PrintAdapter class to manually handle PDF processing for printing.
    • Added
      Adds DocumentPrintDialog to display a dialog with printing options.
  • Added
    Adds an API for controlling the annotation creation mode:
    • Added
      Adds method to start the annotation creation: PSPDFFragment#enterAnnotationCreationMode(AnnotationType annotationType).
    • Added
      Adds listeners for mode changes: PSPDFAnnotationManager.OnAnnotationCreationModeChangeListener and PSPDFAnnotationManager.OnAnnotationCreationModeSettingsChangeListener.
    • Added
      Adds methods for registering those listeners in PSPDFFragment: registerAnnotationCreationModeChangeListener() and registerAnnotationCreationModeSettingsChangeListener() along with unregister* calls.
    • Added
      Adds AnnotationCreationController provided by listener callbacks through which the annotation creation mode can be controlled programmatically.
  • Added
    Adds an API for controlling the annotation editing mode:
    • Added
      Adds method to start the annotation editing: PSPDFFragment#enterAnnotationEditingMode(Annotation annotation).
    • Added
      Adds listener for mode changes: PSPDFAnnotationManager.OnAnnotationEditingModeChangeListener.
    • Added
      Adds methods for registering that listener in PSPDFFragment: registerAnnotationEditingModeChangeListener() along with unregister* call.
    • Added
      Adds AnnotationEditingController provided by listener callbacks through which the annotation editing mode can be controlled programmatically.
  • Added
    Adds an API for controlling the text selection mode:
    • Added
      Adds method to start the text selection mode: PSPDFFragment#enterTextSelectionMode(int pageNumber, Range textRange).
    • Added
      Adds listeners for mode changes: TextSelectionManager.OnTextSelectionModeChangeListener and TextSelection.OnTextSelectionChangeListener.
    • Added
      Adds methods for registering those listeners in PSPDFFragment: registerTextSelectionModeChangeListener() and registerTextSelectionChangeListener() along with unregister* calls.
    • Added
      Adds TextSelectionController provided by listener callbacks through which the text selection mode can be controlled programmatically.
    • Removed
      Deprecates PSPDFFragment#setTextSelection() (use PSPDFFragment#enterTextSelectionMode()) and PSPDFFragment#clearTextSelection() (use PSPDFFragment#exitCurrentlyActiveMode()).
  • Added
    Adds PSPDFFragment#exitCurrentlyActiveMode() for exiting any currently active mode such as text selection, annotation creation and annotation editing.
  • Added
    Adds an API for controlling the document editing mode:
    • Added
      Adds methods to start and exit document editing mode: PSPDFThumbnailGrid#enterDocumentEditingMode() and PSPDFThumbnailGrid#exitDocumentEditingMode().
    • Added
      Adds listeners for mode changes: PSPDFThumbnailGrid.OnDocumentEditingModeChangeListener and PSPDFThumbnailGrid.OnDocumentEditingPageSelectionChangeListener.
    • Added
      Adds methods for registering those listeners in PSPDFThumbnailGrid: registerDocumentEditingModeChangeListener() and registerDocumentEditingPageSelectionChangeListener() along with unregister* calls.
    • Added
      Adds DocumentEditingController provided by listener callbacks through which the document editing mode can be controlled programmatically.
  • Added
    Adds toolbars for special modes (all extend ContextualToolbar): AnnotationCreationToolbar, AnnotationEditingToolbar, DocumentEditingToolbar and TextSelectionToolbar.
  • Added
    Adds ToolbarCoordinatorLayout used for animating views and handling animations and interactions between them. Toolbars can now be dragged to the sides of the screen (if enough room).
  • Added
    Adds ToolbarCoordinatorLayout#displayContextualToolbar(ContextualToolbar toolbar, boolean animate) and ToolbarCoordinatorLayout#removeContextualToolbar(boolean animate) methods for displaying/removing contextual toolbars from the coordinator.
  • Added
    Adds ToolbarCoordinatorLayout.OnContextualToolbarLifecycleListener that listens for toolbar lifecycle within the ToolbarCoordinatorLayout (preparing, displaying, removing), set through PSPDFActivity#setOnContextualToolbarLifecycleListener(listener) and removed through PSPDFActivity#removeOnContextualToolbarLifecycleListener().
  • Added
    Adds ToolbarCoordinatorLayout.OnContextualToolbarMovementListener that listens for toolbar movements within the ToolbarCoordinatorLayout, set through PSPDFActivity#setOnContextualToolbarMovementListener(listener) and removed through PSPDFActivity#removeOnContextualToolbarMovementListener().
  • Added
    Adds theme attributes for new toolbar views icons, set through: <item name="pspdf__annotationCreationToolbarIconsStyle"/>, <item name="pspdf__annotationEditingToolbarIconsStyle"/>, <item name="pspdf__textSelectionToolbarIconsStyle"/> and <item name="pspdf__documentEditingToolbarIconsStyle"/>.
  • Added
    Adds ContextualToolbarMenuItem class which represents a single item in the ContextualToolbar.
  • Added
    Adds AnnotationToolbarFragmentExample to the catalog app. It shows how to incorporate ToolbarCoordinatorLayout in PSPDFFragment within the custom activity to get toolbar animations.
  • Added
    Adds support for Now-On-Tap feature introduced in Android Marshmallow. (#5294)
  • Added
    Adds fullscreen version of Document Editor page creator dialog for small devices. (#5984)
  • Added
    Adds ScreenReaderExample which showcases how to build a screen reader using PSPDFKit. (#6489)
  • Added
    Adds highlighting of the currently active page to PSPDFThumbnailGrid. (#6601)
  • Added
    Adds new ThumbnailGridThemeConfiguration styleable fields: pspdf__itemLabelTextStyle and pspdf__itemLabelBackground. (#6445)
  • Added
    Adds a new option to control video playback via PSPDFActivityConfiguration.Builder#videoPlaybackEnabled. This is useful for environments with increased security requirements or to work around old Android devices that might be affected by the Stagefright vulnerability. (#6455)
  • Added
    Adds PSPDFProcessorTask(NewPage) constructor for creating a new single-page document. (#6643)
  • Added
    Adds PSPDFProcessor#processDocumentAsync override accepting OutputStream as processor output. (#6666)
  • Added
    Adds an updated Guide.pdf to the catalog app. (#6483)
  • Added
    Adds support for scrolling the page while performing a pinch-zoom gesture. (#4797)
  • Added
    Adds ability to modify page media and crop box to PSPDFProcessor with PSPDFProcessorTask#setPageBox method. (#6746)
  • Added
    Adds getBox to PSPDFDocument to allow retrieval of page media box and crop box. (#6775)
  • Added
    Adds PSPDFProcessorTask#scalePage for scaling document pages. (#6655)
  • Removed
    Removes AnnotationToolbarIconsConfiguration.
  • Removed
    Removes PSPDFFragment#clearAnnotationListeners() and PSPDFFragment#clearDrawableProviders(). Each of the registered listeners or drawable providers should be removed using unregister calls. (#6571)
  • Removed
    Removes #notifyAnnotationSelected, #notifyAnnotationDeselected, and #notifyAnnotationUpdated from PSPDFFragment. If your code was using those methods, use #setSelectedAnntaton, #clearSelectedAnnotations, and #notifyAnnotationHasChanged respectively. (#6419)
  • Changed
    Refinements of the drawable provider API.
    • Changed
      Increases visibility of PSPDFDrawableProvider#notifyDrawablesChanged() and PSPDFDrawableProvider#notifyDrawablesChanged(int) from protected to public.
    • Changed
      Changes PSPDFDrawableProvider#getDrawablesForPage and PSPDFDrawableProvider#getDrawablesForPageAsync to use the upperbounded wildcard ? extends PSPDFDrawable.
  • Changed
    PSPDFThumbnailGrid will now automatically scroll to the currently active page when being opened. (#5578)
  • Changed
    PSPDFFragment now correctly restores visible viewport and zoom scale after rotating the device. (#6531)
  • Removed
    Deprecates Intent extras PSPDFYouTubeActivity#ARG_YOUTUBE_URL and PSPDFMediaDialog#ARG_URI. Instead use PSPDFYouTubeActivity#ARG_MEDIA_URI and PSPDFMediaDialog#ARG_MEDIA_URI with MediaUri values. (#6621)
  • Changed
    Improves rendering performance for some complex documents. (#6686)
  • Changed
    Improves security in various critical areas of the framework via using checked memory functions.
  • Changed
    Correctly cancels document processing after unsubscribing from Observable returned by PSPDFProcessor#processDocumentAsync. (#6666)
  • Fixed
    Fixes ConcurrentModificationException being thrown when registering/unregistering DocumentListeners in PSPDFFragment. (#6744)
  • Fixed
    Fixes ConcurrentModificationException being thrown when registering/unregistering OnVisibilityChangedListeners in OnVisibilityChangeListenerManager. (#6866)
  • Fixed
    Fixes possible multiple registrations of OnVisibilityChangedListener instances inside OnVisibilityChangeListenerManager. (#6800)
  • Fixed
    Fixes crash in PSPDFThumbnailBar that appeared when opening certain documents. (#6830)
  • Fixed
    Fixes an issue where sharing was canceled when rotating device. (#6062)
  • Fixed
    Fixes a race condition that could cause a NullPointerException when calling methods on the PSPDFFragment. (#6644, #6650)
  • Fixed
    Fixes an issue causing a NullPointerException when injecting a key event before the document has been loaded. (#6680)
  • Fixed
    Fixes an issue where the scrolling is blocked when performed on a page while another page is in text selection mode. (#6807)
  • Fixed
    Fixes issues while parsing many annotations on page and lifts limit of 500 annotations per page. (#6629)
  • Fixed
    Fixes an issue where "light" weight font was selected in font substitution process instead of the missing "regular" weight font. (#6487)
  • Fixed
    Fixes an issue where note annotations were not probably displayed when consecutively added within a short timeframe. (#6585)
  • Fixed
    Fixes an issue where annotation wasn't deselected when tapping on document background or on a different page. (#5991)
  • Fixed
    Fixes an issue where PSPDFFragment#clearSelectedAnnotations and PSPDFFragment#getSelectedAnnotations worked only on annotations on the current page. (#6592)

2.3.3 - 10 May 2016

  • Changed
    Updates dependencies - RxJava to 1.1.5, RxAndroid to 1.2.0.
  • Added
    Adds new PSPDFThumbnailGrid UI. (#6437)
  • Added
    Adds improved support for Accessibility services and screen readers (#6495)
  • Added
    Adds improved support for hardware keyboard shortcuts.
  • Added
    Adds keepPages helper method to PSPDFProcessorTask.
  • Added
    Adds factory method DocumentSaveOptions#createDefaultsFromDocument for creating default save options when processing documents with PSPDFProcessor. (#6412)
  • Added
    Adds support for XML vector drawables on Android devices back to API 16. (#6207)
  • Added
    Adds PSPDFFragment#setInsets and PSPDFFragment#addInsets that makes document insets configurable. (#6299)
  • Removed
    Removes DocumentEditorThemeConfiguration. (#6437)
  • Changed
    Changes DocumentSharingProvider authority - in AndroidManifest.xml the provider authority must be <application package>.pdf.share not com.pspdfkit.share. (#6460)
  • Changed
    PSPDFThumbnailGrid page click listener is now registered via PSPDFThumbnailGrid#setOnPageClickListener.
  • Changed
    Changes PSPDFThumbnailGrid default background color to light gray. (#6437)
  • Changed
    Improves exception message when calling PSPDFFragment#setSelectedAnnotation or PSPDFFragment#setSelectedAnnotations from a thread other than the main-thread. (#6339)
  • Changed
    Marks PSPDFFragment#getSelectedAnnotations return type as @NonNull. The method will now return an empty list if no annotations were selected. (#6339)
  • Changed
    PSPDFFragment#setSelectedAnnotation will no longer automatically change the current page, but rather a separate call to PSPDFFragment#setPage is now required. (#6339)
  • Changed
    Free text annotation is now brought to view when user starts typing. (#5347)
  • Fixed
    Fixes possible crash when checking provider configuration if application contained no providers. (#6527)
  • Fixed
    Fixes appearance of duplicate letters on some devices when editing Free Text annotations. (#6308)
  • Fixed
    Fixes sharing issues on Samsung devices. Note that DocumentSharingProvider now MUST be exported. For security reasons, files may only be shared from an isolated directory. (#6462)
  • Fixed
    Fixes an issue where fragment transactions were possibly not committed before the activity was destroyed, resulting in a missing fragment while activity recreation. (#6326)
  • Fixed
    Fixes DocumentEditor visibility. (#6437)
  • Fixed
    Fixes an issue where PSPDFProcessor would incorrectly throw a PSPDFInvalidLicenseException when processing certain documents. (#6409)
  • Fixed
    Fixes an issue where search results could get hidden behind HUD. (#4190)
  • Fixed
    Fixes an issue where document sharing dialog didn't use activity title as default document name when explicitly set in PSPDFActivityConfiguration. (#6426, Z#3575)
  • Fixed
    Fixes an issue where text markup annotations couldn't be selected via PSPDFFragment#setSelectedAnnotation. (#6378)
  • Fixed
    Fixes an issue where annotation couldn't be reselected from a previously selected note annotation. (#6476)
  • Fixed
    Fixes a NullPointerException that was generated when launching a PSPDFActivity with an invalid license. (#6499)

2.3.2 - 26 Apr 2016

  • Changed
    Text search now also searches over annotation contents. (#5790)
  • Added
    Adds support for search result highlighting customization. (#6206)
  • Changed
    PSPDFThumbnailBar now implements DocumentListener and has to be registered via fragment.registerDocumentListener(thumbnailBar). (#6171)
  • Added
    Adds boolean return type to PSPDFDocument#saveIfModified methods returning true if there were any changes to save. (#6317)
  • Changed
    PSPDFKit#initialize will now log a warning message if android:largeHeap="true" was not declared inside the app's AndroidManifest.xml. (#6157, #6321)
  • Changed
    Shows soft keyboard when opening annotation creator name dialog. (#6306)
  • Removed
    Deprecates methods setBackgroundColor, setSearchResultBorderColor and setSearchResultBackgroundColor in DocumentThemeConfiguration#Builder. Use backgroundColor, searchResultBorderColor and searchResultBackgroundColor instead. (#6206)
  • Changed
    PSPDFThumbnailBar now implements OnAnnotationUpdatedListener and has to be registered via fragment.registerAnnotationUpdatedListener(thumbnailBar). (#6205)
  • Added
    Adds PSPDFThumbnailGrid.OnPageTappedListener and #setOnPageTappedListener(OnPageTappedListener). (#6172)
  • Added
    Adds PSPDFThumbnailBar.OnPageChangedListener and #setOnPageChangedListener(OnPageChangedListener). (#6171)
  • Changed
    Drops EventBus events Events#OnAnnotationUpdated, Events#OnAnnotationSelected and Events#OnAnnotationDeselected. (#6205)
    • Added
      Adds PSPDFFragment#registerAnnotationSelectedListener for listening to annotation selection.
    • Added
      Adds PSPDFFragment#registerAnnotationDeselectedListener for listening to annotation deselection.
    • Added
      Adds PSPDFFragment#registerAnnotationUpdatedListener for listening to annotation updates.
  • Fixed
    Fixes an issue in certain documents where text selection contained more text that was actually selected. (#6213, Z#3424)
  • Fixed
    Fixes an issue where selecting a note annotation on a recycled page would create an exception. (#6183, Z#3403)
  • Fixed
    Fixes an issue where markup annotations couldn't be deselected by tapping on empty document area. (#6228)
  • Fixed
    Fixes an issue where saving an ink annotation would throw a NullPointerException on older devices. (#6276, #6300)
  • Fixed
    Fixes an issue where newly created note annotations where not correctly added to the document after a configuration change. (#6301)
  • Fixed
    Fixes an issue where flattening and removing annotations at the same time caused problems. (#6344)

2.3.1 - 8 Apr 2016

  • Added
    Adds support for exporting selected pages with the Document Editor. (#5987)
  • Added
    Adds sharing support. (#5633)
    • Changed
      Allows sharing selected text.
    • Changed
      Allows sharing free-text and note annotation contents.
    • Changed
      Allows sharing documents.
    • Added
      Adds DocumentSharingProvider which provides access to shared files for other applications.
  • Added
    Adds com.pspdfkit.utils.PDFUtils#createPDFRectUnion for calculating the union of a list of PDF rects. (#6117)
  • Added
    Adds catalog examples CustomInlineSearchExample and CustomSearchUiExample. (#6037, #6106)
  • Added
    Adds option to set custom password, pdf version and permissions when saving documents. (#6014)
    • Added
      Adds DocumentSavingOptions parameter to onSaveDocument() call in DocumentListener for customization.
    • Added
      Adds DocumentSavingOptions parameter to save methods in PSPDFDocument.
    • Added
      Adds getDefaultDocumentSavingOptions() method to PSPDFDocument to retrieve document options representing the current document parameters.
    • Added
      Adds option to disable incremental saving via DocumentSavingOptions.
  • Added
    Adds maximumPreviewResultsPerDocument and maximumPreviewResultsTotal to QueryOptions to allow limitation of preview results in full-text search. (#6047, #6017)
  • Changed
    Marks the return values of various PSPDFKit#openDocument* methods as @NonNull. (#6133)
  • Fixed
    Fixes possible OutOfMemory exceptions when resizing PSPDFThumbnailBar. (#6083, Z#3358)
  • Fixed
    Fixes a misleading build error message shown when dependency com.android.support:cardview-v7 is missing. (#6073)
  • Fixed
    Fixes a possible activity leak. (#6111, Z#3380)

2.3.0 - 31 Mar 2016

This release features the new Document Editor. This component allows users to access a whole host of page editing features, including new page creation, page duplication, reordering, rotation or deletion, as well as creating a new document from pages selected across multiple existing documents. If you like to add the Document Editor to your license, ping our sales team to receive a quote.

  • Added
    Adds Document Editor. (#5719)
  • Added
    Adds handling for document permission flags. (#5151)
  • Changed
    Updates dependencies - com.android.support:recyclerview-v7:23.2.1, com.android.support:cardview-v7:23.2.1 and com.android.support:design:23.2.1 have been added, updates RxJava to 1.1.1, RxAndroid to 1.1.0 and support library to 23.2.1.
  • Added
    New page drawable API. (#5766)
    • Added
      Adds PSPDFDrawable to draw arbitrary content on top of rendered pages.
    • Added
      Adds PSPDFDrawableProvider which can serve one or multiple drawables for a page.
    • Added
      Adds PSPDFFragment#registerDrawableProvider, PSPDFFragment#unregisterDrawableProvider, and PSPDFFragment#clearDrawableProviders for managing drawable providers.
  • Added
    New text search API allowing to manually search a document and build custom search implementations. (#5463)
    • Added
      Adds PSPDFTextSearch for searching a document. Searching a document will return a list of PSPDFSearchResult objects.
    • Added
      Adds PSPDFSearchResultHighlighter for visually highlighting one or multiple search results using the new drawable API.
    • Changed
      Search views (PSPDFSearchViewInline and PSPDFSearchViewModular) are now inside package com.pspdfkit.ui.search. This package also contains all other search UI related classes.
  • Added
    Adds PSPDFFragment#scrollTo for scrolling to rects on a page. (#5597)
  • Added
    Adds PSPDFKitActivityConfiguration#setHudViewMode(int) that makes showing/hiding HUD and system bars configurable. (#5566)
  • Added
    Adds PSPDFActivity#setHudViewMode(HudViewMode) that makes showing/hiding HUD and system bars configurable at runtime. (#5566)
  • Changed
    Contextual action modes now behave more consistently. (#5414)
  • Changed
    Inline search now scrolls to search results even when they are outside of the current viewport. (#5560)
  • Changed
    Annotation#getBoundingBox now returns a copy of the internal rectangle to prevent inconsistent API behavior. (#5122)
  • Changed
    PSPDFDocument#getPermissions now returns a copy of the internal permissions set. (#5722)
  • Added
    Adds a warning if text-to-speech service is unavailable. (#5552)
  • Changed
    Disables entering emojis into free text annotation. (#5840)
  • Fixed
    Fixes an issue where ink paths got lost after zooming while drawing on multiple pages. (#5604)
  • Fixed
    Fixes an issue where it was possible to create empty free text annotations. (#5468)
  • Fixed
    Fixes an issue where selected annotation wasn't unselected after selecting text markup annotation. (#5523)
  • Fixed
    Fixes an issue where scrolling while having text selected would crash the app. (#5653, Z#3160)
  • Fixed
    Fixes an issue where scrolling by touching some tappable area causes it to highlight for a split second. (#5698)
  • Fixed
    Fixes an issue where drawing dots with ink is not shown on the screen. (#5614)
  • Fixed
    Fixes an issue where reading note annotations is not possible if annotation editing is disabled. (#5665)
  • Fixed
    Fixes ink annotation drawing performance regression. (#5557)
  • Fixed
    Fixes saving to files with non-ASCII filenames. (#5839)
  • Fixed
    Fixes an issue where the page 2 places to the left of the last page would disappear when the last page becomes the current one. (#5694)
  • Fixed
    Fixes an issue in the continuous scroll mode where setting the specific page would align left edge of the screen with the one of the page, instead of the middles. (#5745)
  • Fixed
    Fixes an issue where annotation was displayed twice when moving or disappeared when unselected. (#5727)
  • Fixed
    Fixes an issue when using PSPDFThumbnailBar in custom layouts. (#5763)
  • Fixed
    Fixes an issue where PSPDFActivity wouldn't listen to events after loading new document. (#5785)
  • Fixed
    Fixes an issue appearing randomly when changing orientation after highlighting text selection. (#5798)
  • Fixed
    Fixes an issue where changing text size of a free text annotation to 1pt didn't work. (#5799)
  • Fixed
    Fixes an issue where note annotation wasn't deselected after being deleted in note editor. (#5791)
  • Fixed
    Fixes an issue when soft keyboard is not dismissed after quitting free text annotation editing. (#5843)
  • Fixed
    Fixes an issue where it wasn't possible to pick grey color in note annotation editor. (#5794)
  • Fixed
    Fixes an issue with leaking the activity context when initializing in short-lived activities. (#5879)
  • Fixed
    Fixes an issue where documents where loaded multiple times when using a DataProvider as source. (#5869)
  • Fixed
    Fixes an issue where editing annotations would produce flickering. (#5931)
  • Fixed
    Fixes several out-of-memory errors caused by intensive bitmap allocations. (#5724)
  • Fixed
    Fixes non-natural fling gestures after pinch-zooming into the document. (#4798)

2.2.1 - 26 Feb 2016

  • Changed
    Improves text highlighting by using a smart paragraph selection and not just the selected rect. (#5032)
  • Added
    Adds support for reading documents from a ContentProvider serving data through a pipe (i.e. via ParcelFileDescriptor.createPipe()).
  • Added
    Adds com.pspdfkit.listeners.SimpleDocumentListener which is an empty implementation of the DocumentListener interface. (#5512)
  • Changed
    Inline search now shows results starting from the current page. (#5579)
  • Changed
    Minor cosmetic tweaks in annotation list. (#5559)
  • Fixed
    Fixes an issue with duplicated search results when searching from text selection. (#5553)
  • Fixed
    Fixes an issue when selecting "Testcase_No_Annotations.pdf" example in PSPDFKit catalog's "Document switcher example" would crash the app.
  • Fixed
    Fixes an issue where edge pages are never marked as current in continuous scroll mode because they never reach the middle of the screen. (#4964)
  • Fixed
    Fixes an issue where certain characters (like parenthesis, brackets, etc.) could not be searched. (#5596, Z#3117)
  • Fixed
    Fixes performance regression when editing large annotations. (#5618)

2.2.0 - 19 Feb 2016

  • Changed
    Enables annotation editing on multiple pages, as well as switching pages while editing. (#5346, #5289)
  • Added
    Adds search menu option for selected text in the document. (#5298)
  • Added
    Adds PSPDFKit#openDocumentFromSource. (Z#2985)
  • Changed
    Keeps parameter names of public API methods. (#5019)
  • Changed
    Displays page number indicator overlay after system bars are shown. (#5299)
  • Changed
    Note annotation editor can now be opened by double-tapping a selected annotation. (#5290)
  • Changed
    Free text annotation editor now differentiates between editing and writing modes. (#5296)
  • Changed
    PSPDFFragment can now be nested as a child fragment. (#5476)
  • Changed
    Allows scrolling while in drawing mode. (#5252, Z#2861)
  • Fixed
    Fixes an issue where saving to ContentProviders which don't support appending would fail.
  • Fixed
    Fixes an issue in the free text annotation editor where the soft-keyboard wasn't hidden after selection ended.
  • Fixed
    Fixes an issue in the free text annotation editor where the soft-keyboard wasn't automatically opened in the landscape screen orientation. (#5503)
  • Fixed
    Fixes an issue where text couldn't be pasted into the free text annotation editor. (#5123)
  • Removed
    Removes wrong @Nullable annotation from PageRenderConfiguration.Builder#build.
  • Changed
    Clicking text markup annotations won't start edit mode if annotation editing is disabled. (#5434)
  • Fixed
    Fixes an issue where AssetDataProvider would return an invalid Uri via #getUri. (#5420)
  • Fixed
    Fixes IllegalStateException crash appearing randomly in paginated layout. (#5361)
  • Fixed
    Fixes animation transition from selected text to ActionMode. (#5378)
  • Fixed
    Fixes an issue that could cause a crash when opening documents with large number of annotations in a page. (#5455)
  • Fixed
    Fixes an issue where highlight annotations created from text selection action bar had undefined author field. (#5343)
  • Fixed
    Fixes an issue where outline button was disabled even when annotation list was available. (#5287)
  • Fixed
    Fixes an issue where Bitmap objects returned by PSPDFDocument#renderPageToBitmap would not have premultiplied alpha values. (#5412)
  • Fixed
    Fixes an issue where immersive mode wasn't handled correctly while contextual action mode was active.
  • Fixed
    Fixes MediaController displacement. (#5314)
  • Fixed
    Fixes a non-fatal exception on Samsung devices failing to unparcel framework classes. (#5456)
  • Fixed
    Fixes an issue where annotation editing button was clickable even when disabled visually. (#5288, #5464, Z#3035)
  • Fixed
    Fixes an issue where drawing ink annotations outside of the page makes it larger than the page itself. (#5498)
  • Fixed
    Fixes an issue that would cause exceptions when accessing AnnotationProvider#getAnnotations concurrently. (#5500)
  • Fixed
    Fixes an issue when adding multiple annotations at the same time programmatically would cause MissingBackpressureException to be thrown. (#5233)

2.1.1 - 2 Feb 2016

  • Added
    Added PSPDFKit#openDocumentsFromSources, PSPDFActivity#showDocumentsFromSources and PSPDFFragment#newInstanceFromSources to allow opening of compound PDF documents from multiple DataProviders.
  • Fixed
    Fixes preserving page sharpness when performing zoom actions on already zoomed page (#5302)
  • Fixed
    Fixes an issue where a subscription license would stop working once expired. (#5327)
  • Changed
    Outline and search view are now dismissed when entering annotation editing mode. (#5326)
  • Changed
    Preserving page sharpness when performing zoom actions on already zoomed page (#5302).
  • Changed
    In PSPDFSearchViewInline, methods getPrevIconColorFilter and getNextIconColorFilter are renamed to getPrevIconColorTint and getNextIconColorTint respectively.
  • Added
    Adds closing back arrow to inline search. (#5291)

2.1.0 - 28 Jan 2016

  • Changed

    IMPORTANT: PSPDFActivity is now always based on AppCompatActivity and PSPDFAppCompatActivity class has been removed. This change has been made because new annotation editing UI elements need support-v7 and appcompat-v7 dependency.

  • Changed

    Indexed full text search is now supported via the PSPDFLibrary class. This feature needs to be enabled for your license. See https://pspdfkit.com/features/indexed-search/ for details.

  • Changed

    Adds PSPDFProcessor to split/merge/flatten PDF documents.

  • Changed

    Adds support for incremental PDF saving:

    • Changed
      Files will now be appended to instead of being fully rewritten on each save.
    • Added
      Added ContentResolverDataProvider incremental saving support for files opened via SAF or other content providers.
    • Added
      Added supportsAppending method to WritableDataProvider. It should return true if the DataProvider supports appending to PDF file and then handle writing with WrideMode.APPEND_TO_FILE mode.
    • Changed
      Due to encryption, password protected files cannot be incrementally written. They will always be fully rewritten and encrypted.
  • Changed

    getUid() method added to PSPDFDocument. UID represents a unique ID for a document and is derived from getUid call in DataProvider if one is used.

  • Changed

    Adds the list of annotations under the outline menu. (#5039)

  • Changed

    getAllAnnotationsOfType added to AnnotationProvider for easy retrieval of all annotations of certain types from the document.

  • Changed

    Adds PSPDFActivity#showDocument(Context, DataProvider, PSPDFActivityConfiguration) method overload (without password parameter).

  • Changed

    Adds PSPDFActivity#getDocument method which returns the currently loaded document. (#5260)

  • Changed

    Adds PSPDFActivity#getPSPDFFragment() which is a shorthand getter to retrieve the activities fragment.

  • Changed

    Adds PSPDFFragment#getVisiblePDFRect(int page) and PSPDFFragment#getVisiblePages() for accessing current visible rect on the page and fetching a list of visible pages. (#4086)

  • Changed

    Adds PSPDFFragment#setScrollingEnabled(boolean enabled) and PSPDFFragment#setZoomingEnabled(boolean enabled) that can disable zooming/scrolling in the document view. (#4931)

  • Changed

    Adds DocumentListener#onDocumentZoomed(PSPDFDocument document, int pageNumber, float scaleFactor) callback method for receiving page zoom changes. (#5017)

  • Changed

    Adds PSPDFDocument#getUri and PSPDFDocument#getUriList (for compound documents). (#5015)

  • Changed

    New text selection API (#5020)

    • Added
      Added typed TextSelection class which holds page number, text and rects of the current selection.
    • Changed
      Current selection can be retrieved by calling PSPDFFragment#getTextSelection.
    • Changed
      Selection can be set using PSPDFFragment#setTextSelection.
    • Changed
      A simpler TextSelectionListener interface allows to intercept all selection events (selection, changes, deselection), and to cancel them.
  • Changed

    Adds PSPDFConfiguration#pagePadding for customizing the padding between pages. (#5136)

  • Changed

    Replaces "Loading.." text while the page is being loaded with the progress bar (throbber). (#3640)

  • Changed

    In PSPDFAppCompatActivity and PSPDFActivity, the method getPSPDFKitViews() is renamed to getPSPDFViews(). (#5134)

  • Changed

    Copying selected text to clipboard displays a toast message as a feedback (#5253).

  • Changed

    Fixes transfer of document permissions and password to saved documents.

  • Changed

    Fixes a performance regression that caused jank while scrolling large documents. (#5071)

  • Changed

    Fixes an issue on certain devices when accessing external cache directory. (#5103)

  • Changed

    Fixes an issue caused by switching the active annotation editing tool for annotations not attached to a document. (#5061)

  • Changed

    Fixes setting of creation date on newly created annotations. (#5124)

  • Changed

    Fixes link annotation touch feedback being cleared on long-press. (#4891)

2.0.1 - 16 Dec 2015

  • Changed
    Greatly improved high-resolution detail rendering performance. (#4886, #4546)
  • Fixed
    Fixes an issue where highlight annotations were getting darker each time a new one was added. (#4886)
  • Changed
    Improves browsing performance - UI more responsive during the rendering. (#4914, #4674)
  • Changed
    PDF parsing/rendering improvements for older, non-compliant versions. (#4903)
  • Changed
    Proper handling of orientation changes when having android:configChanges="orientation|screenSize" declared in manifest. (#4955)
  • Fixed
    Fixes an issue where annotation is deselected if annotation editor was opened. (#4902)
  • Fixed
    Fixes an issue where thumbnail bar was dismissed when dragging a finger over it. (#4896)
  • Fixed
    Fixes transition into the highlighted search result while in zoom mode. (#4893)
  • Fixed
    Fixes an issue where certain unicode (emoji) characters in the PDF could be converted into invalid UTF-8. (#4946)
  • Changed
    Don't deselect annotation immediately as page starts scrolling. (#4880)
  • Fixed
    Fixes a crash where some theme items weren't resolved on API < 15. (#4941)
  • Changed
    WriteableDataProvider renamed to WritableDataProvider.
  • Fixed
    Fixes search highlighting issues. (#4947)

2.0.0 - 7 Dec 2015

PSPDFKit 2 for Android is a major new release, adding support for creating/editing annotations. See the announcement article for details. The new minimum API level is 16 (Android 4.1 Jelly Bean).

  • Changed
    PSPDFDocument now has getAnnotationProvider() call which returns AnnotationProvider object that handles all Annotation related operations.
  • Changed
    getPageAnnotations call from PSPDFDocument has been moved to AnnotationProvider class.
  • Changed
    Implemented public constructors, getters and setters for newly supported annotation classes. Those are:
    • Changed
      HighlightAnnotation
    • Changed
      StrikeOutAnnotation
    • Changed
      SquigglyAnnotation
    • Changed
      UnderlineAnnotation
    • Changed
      InkAnnotation
    • Changed
      FreeTextAnnotation
    • Changed
      NoteAnnotation
  • Added
    Added Annotation editing user interface. Configuration is controlled by several classes in PSPDFConfiguration:
    • Changed
      AnnotationEditingConfiguration can be used to enable/disable editing per annotation type or altogether.
    • Changed
      AnnotationToolbarThemeConfiguration and connected theme classes can be used to customize editing toolbar icons.
  • Added
    Added ability to disable editing for some annotation types. Currently supported editable annotation types are: HIGHLIGHT, STRIKEOUT, SQUIGGLY, UNDERLINE, FREETEXT, INK and NOTE.
  • Changed
    PSPDFKit can now display contents of Note annotations and allows editing of color, contents and icon.
  • Added
    Added WriteableDataProvider which extends existing DataProvider and allows writing of edited PDF documents.
  • Changed
    PSPDFDocument now has save and saveIfModified methods for saving in synchronous and asynchronous way.
  • Removed
    Removed previously deprecated setDisplayedPage in PSPDFFragment. Use setPage instead. (#4210)
  • Changed
    Changed behaviour of TextSelectionListener - if false is returned in onTextSelectionStarted, onTextSelectionEnded will be called immediately after it.
  • Changed
    Previously deprecated PSPDFFragment#getPageToScreenTransformation now removed. Use PSPDFFragment#getPageToViewTransformation instead.
  • Changed
    In PSPDFFragment, renamed convertPage[Rect/Point]ToView[Rect/Point] to convertPDF[Rect/Point]ToView[Rect/Point], convertView[Rect/Point]ToPage[Rect/Point] to convertView[Rect/Point]ToPDF[Rect/Point]
  • Changed
    getModDate() in PSPDFDocumentMetadata class was renamed to getModificationDate().

1.5.0 - 28 Oct 2015

  • Added
    Added loadingProgressDrawable PSPDFKitConfiguration option that enables configuration of the document loading throbber. Setting it to null will disable the throbber. (#4259)
  • Removed
    Removed PSPDFThumbnailBar#setCurrentPage. The thumbnail bar is now automatically tied to the document view using the internal event bus. (#4291)
  • Changed
    Stop spoken text when text selection ends. (#4391)
  • Changed
    Updated support library dependencies to version 23.1.0.
  • Fixed
    Fixed an issue which prevented to open documents with an empty set of PDF permissions. (#4336)
  • Fixed
    Fixed an issue where improper text extraction was causing wrong search results. (#4187, #4189)
  • Fixed
    Fixed an issue where InputStreamDataProvider would fail reading data from intermittent input streams. (#4275)
  • Fixed
    Fixed an issue where link annotations and search results would be drawn as black blocks on some pre-Jellybean devices. (#4396)

1.4.1 - 5 Oct 2015

  • Added
    Added getTitle() call to DataProvider interface that lets implementor specify a fallback title of the document if none is available in metdata.
  • Changed
    Significantly improved performance of loading documents from a DataProvider. (#4143)
  • Fixed
    Fixed page rendering bug where wrong page could be momentarily rendered on some Android 5.x devices. (#4148)
  • Fixed
    Fixed improper page transitions controlled by boolean animate argument in setPage(int page, boolean animate). (#4112)
  • Fixed
    Fixed locked first swipe after a zoom-out in PER_PAGE mode.
  • Fixed
    Fixed an issue where main thread document access could cause jank when opening a document.

1.4.0 - 24 Sep 2015

  • Added
    New catalog examples: DocumentSwitcherExample, SplitDocumentExample, RandomDocumentReplacementExample, MemoryDataProviderExample, and CustomDataProviderExample. (#3869)
  • Added
    New PSPDFActivity#getConfiguration and PSPDFAppCompatActivity#getConfiguration allow to easily access the configuration object which was passed while launching the activity.
  • Changed
    Converted DataProvider to an interface for more flexibility. Previously, it was an abstract class.
  • Changed
    Moved DataProvider to com.pspdfkit.document.providers package.
  • Added
    Added MemoryDataProvider to load documents directly from byte arrays.
  • Added
    Added constants DataProvider#NO_DATA_AVAILABLE which has to be returned by a DataProvider if it fails to read data inside DataProvider#read. (#3952)
  • Added
    Added constant DataProvider#FILE_SIZE_UNKNOWN which has to be returned by the DataProvider if it fails to retrieve the correct data size.
  • Changed
    Changed search input field and password field to material design. pspdf__backgroundColor, pspdf__borderColor and pspdf__borderWidth properties have been removed. (#3693)
  • Changed
    Greatly improved data provider Javadoc documentation. (#3952)
  • Changed
    Updated dependencies: RxJava 1.0.14, Support libraries 23.0.1, RxAndroid 1.0.1.
  • Fixed
    Fixed a problem where DocumentListener objects were removed when calling PSPDFActivity#setDocument or PSPDFAppCompatActivity#setDocument.
  • Fixed
    Fixed a bug where padding of PSPDFThumbnailGrid was applied multiple times.
  • Fixed
    Fixed obfuscation problems in the data provider API. (#3952)
  • Changed
    Updated dependencies - RxJava - 1.0.14, Support libraries - 23.0.1, RxAndroid - 1.0.1.
  • Added
    Added zoom calls to PSPDFFragment for zooming to a specified rect or to a specified zoom scale (zoomTo()). Also, the document can now be scaled by a given scale factor with zoomBy(). (#3704)
  • Changed
    Three new properties added to a configuration - startZoomScale that enables starting the document at a specified scale, maxZoomScale which controls the document zoom limit, and zoomOutBounce defining should the page have that bounce effect when zoomed out or not.
  • Changed
    onDocumentLoaded() callback is now invoked when both document is loaded and layout displaying the document is ready
  • Fixed
    Fixed invoking multiple onPageChanged() calls. (#3845)
  • Changed
    Enabled hiding page labels and showing the page number instead, both while scrolling pages and in outline view. (#3927)
  • Changed
    Disabled bounce effect on pages in per-page mode, causing some unintuitive behavior. (#3691)
  • Changed
    Improved file opening performance when accessing DocumentProvider files.
  • Fixed
    Fixed issues with opening files from SD Card on Android 6.0.

1.3.1 - 1 Sep 2015

  • Changed
    Page labels are now displayed in page number popup, outline view and grid view if applicable.
  • Changed
    Enabled retrieval of page labels via getPageLabel() and getPageIndexForPageLabel() methods on PSPDFDocument class.
  • Added
    Added getPermissions() call on PSPDFDocument class to retrieve PDF document permissions.
  • Changed
    Replaced PSPDFFragment#setDocumentListener by PSPDFFragment#registerDocumentListener and PSPDFFragment#unregisterDocumentListener.
  • Changed
    PSPDFActivity and PSPDFAppCompatActivity now implement the DocumentListener interface and allow access to listener methods by overriding.
  • Changed
    show() and hide() calls on PSPDF views now properly update state of menu items in the Activity.
  • Changed
    setOnVisibilityChangedListener in PSPDF views has been replaced with addOnVisibilityChangedListener and removeOnVisibilityChangedListener calls.
  • Fixed
    Fixed a possible memory leak when closing PSPDFFragment before document is loaded.
  • Changed
    Prevent crash when invalid start page is passed in PSPDFActivityConfiguration.
  • Fixed
    Fixed some annotations sticking around on wrong pages after orientation change.
  • Fixed
    Fixed issues with link annotation tap highlights.
  • Changed
    Multiple UI fixes and improvements for immersive mode.
  • Changed
    Improved fling on the pages while zoomed.
  • Changed
    Faster settle after a zoom-out.
  • Fixed
    Fixed diagonal scroll invoking incorrect page fling in FIT_TO_WIDTH mode.
  • Changed
    Rendering high-resolution image at default zoom scale with insignificant performance hit (#2972).
  • Fixed
    Fixed detail view clipping in paginated mode (#3696).
  • Fixed
    Fixed slow vertical fling (#3692).
  • Changed
    Moving page opposite of the scroll direction in CONTINUOUS scroll mode is now limited by the border.

1.3.0 - 19 Aug 2015

  • Changed
    IMPORTANT Classes prefixed with PSPDFKit have been renamed to PSPDF for consistency and future-proofness (e.g. PSPDFKitActivity is now PSPDFActivity)
  • Changed
    PSPDFKit can now open content provider URIs directly without copying files to internal cache. isOpenableUri will now return true for all such URIs that can be opened.
  • Changed
    PSPDFCatalog example has been updated to demonstrate opening documents from document provider.
  • Changed
    Activities derived from PSPDFKitActivity or PSPDFKitAppCompatActivity can now load another PDF document using setDocument parent call.
  • Changed
    Bookmark class has been renamed to OutlineElement to better reflect it's function. PSPDFDocument.getBookmarks() was also renamed to PSPDFDocument.getOutline().
  • Changed
    An error graphic will now appear in PSPDFKitFragment / PSPDFKitActivity / PSPDFKitAppCompatActivity when attempting to open an invalid file.
  • Changed
    AssetDataProvider was added to allow opening of PDF documents from APK assets directly. Use it with open methods that accept a DataProvider source.
  • Changed
    ContentResolverDataProvider was added to open arbitrary content provider URIs. It will be used automatically in all open methods.
  • Added
    Add PSPDFDocument#getCharIndexAt to retrieve the index of a character on a page at the given page coordinates.
  • Changed
    Improved log messages when encountering incompatible device ABIs.
  • Fixed
    Fixed a problem where the catalog app would restart itself after closing it when being launched using an external intent.
  • Fixed
    Fixed a crash when using PSPDFKitThumbnailBar in custom activities. (#3420)
  • Fixed
    Fixed a crash due to inconsistent state in PSPDFKitSearchView (#1695)
  • Changed
    Various performance and stability improvements to the PDF rendering backend.
  • Added
    Added Finnish, Slovenian, Czech and Greek localization.
  • Changed
    Loading... text display colors are now properly inverted when invertColors configuration parameter is set.
  • Added
    Added new annotation type classes: FreeTextAnnotation, UnderlineAnnotation, SquigglyAnnotation, StrikeoutAnnotation, HighlightAnnotation and InkAnnotation
  • Changed
    Disabled disk cache by default - for simple text document this means a significant performance boost.

1.2.3 - 6 Jul 2015

  • Fixed
    Fixed corrupt PDFs crashing the library.
  • Fixed
    Fixed a crash bug caused by swiping before the document was fully initialized.
  • Added
    Added NoteAnnotation class to represent note annotations in the document.
  • Changed
    Annotation object now exposes contents and rich text contents of each annotation.
  • Changed
    Documents now expose getAnnotations(page) call which returns annotations on the page.
    • Changed
      Unknown annotations will be returned as UnknownAnnotation object with proper type.
  • Added
    Added LeakCanary support. (#3241)
  • Changed
    Expose com.pspdfkit.ui.PSPDFKitFragment.getPageToScreenTransformation. (#3195)
  • Fixed
    Fixed bug causing stack overflow when exiting text selection mode. (#3284)
  • Changed
    In-memory caching of rendered pages is now noticeably faster
  • Added
    Added FragmentExample and CustomFragmentActivity. (#3338)

1.2.2 - 23 Jun 2015

  • Added
    Added support for Named action type in link annotations.
  • Added
    Added PSPDFKitActivityConfiguration#layout(int). (#3075)
  • Added
    Added CustomLayoutExample to catalog app. (#3075)
  • Changed
    Exposed menu action ids for action bar menu customization:
    • Changed
      com.pspdfkit.ui.PSPDFKitActivity#MENU_OPTION_THUMBNAIL_GRID
    • Changed
      com.pspdfkit.ui.PSPDFKitActivity#MENU_OPTION_SEARCH
    • Changed
      com.pspdfkit.ui.PSPDFKitActivity#MENU_OPTION_OUTLINE
  • Fixed
    Fixed page not switching properly on small scroll in PER_PAGE scroll mode. (#2905)
  • Fixed
    Fixed multi-line search. (#2993)
  • Changed
    Exposed startSearch() calls in PSPDFKitSearchViewModular and PSPDFKitSearchViewInline. (#2971)
  • Changed
    Quick switching between menu items now works correctly. (#3157)
  • Changed
    Modular search improved - selected result animated and border coloring added.
  • Changed
    Optimized performance on ARMv7 devices.

1.2.1 - 6 Jun 2015

  • Added
    Add a new advanced catalog example showing customization and other features.
  • Changed
    Notify users for missing dependencies. (#3047)
  • Changed
    Automatically hide keyboard when browsing through the list of search results. (#2978)
  • Changed
    Exposed custom intent data to be added when launching activities. (#3073)

1.2.0 - 1 Jun 2015

  • Changed
    Theming support - all PSPDFKit views are now customized via themes. Existing appearance configuration in PSPDFKitActivityConfiguration and related have been moved to theme attributes. See CUSTOMIZATION.html for more information.
  • Changed
    Text selection is now implemented and allows users to copy and listen to selected text.
  • Changed
    Text selection listeners are now implemented.
  • Changed
    Media framework with PSPDFKit extensions for Gallery, offline videos and Youtube videos is now implemented.
  • Changed
    Implemented scroll direction lock for easier reading of content in columns.
  • Fixed
    Fixed memory caching issues which could lead to a OOM crash.
  • Added
    Added inline search (search as action view) option.
  • Changed
    getPageTextRect has been changed into getPageTextRects that returns multiple rects if the range requires them.
  • Added
    Added more than 20 new localizations.
  • Added
    Added getPage and setPage(int) calls to PSPDFKitActivity, PSPDFKitAppCompatActivity and PSPDFKitFragment.
  • Changed
    setDisplayedPage(int) deprecated, use setPage(int) instead.
  • Added
    Added page numbers to table of contents.
  • Changed
    A bucket full of bug fixes.

1.1.1 - 17 Apr 2015

  • Changed
    Custom Activity extended from either PSPDFKitActivity or PSPDFKitAppCompatActivity can now be used by setting classname with activityClass() in PSPDFKitActivityConfiguration for easier customization.
  • Changed
    getPSPDFKitViews() method was added to Activity classes to make access to PSPDFKit views easier when extending the activity.
  • Added
    Added getBookmarks() call to PSPDFDocument which retrieves PDF bookmarks. (Table of Contents)
  • Fixed
    Fixed PSPDFKitFragment wrongly expecting a Parcelable DataSource.
  • Changed
    Improvements to fit to width and zooming code.
  • Changed
    Improved look of page grid display on smaller devices.
  • Fixed
    Fixed an issue where setDisplayedPage call on PSPDFFragment didn't work before layout.
  • Fixed
    Fixed severe performance degradation on some high-resolution devices like Samsung Note 4.
  • Fixed
    Fixed accidentally obfuscated listener interfaces.

1.1.0 - 3 Apr 2015

  • Changed
    Page view may now be fit to width by using fitMode setting in PSPDFKitConfiguration.
  • Changed
    PDF documents can now be loaded from a custom source with DataProvider class.
  • Added
    Added DocumentListener which allows handling page loading events and page tap events.
  • Changed
    Flinging pages in PER_PAGE scrolling mode now always flings a single page.
  • Fixed
    Fixed issue where entered password was lost when changing orientation.
  • Fixed
    Fixed issue where current page was being changed when changing orientation while using a Fragment.
  • Changed
    Zoomed view rendering is now significantly faster.
  • Changed
    RxJava and support library dependency versions updated to 1.0.8 and 22.0.0 respectively.

1.0.4 - 11 Mar 2015

  • Fixed
    Fixed an issue where zoomed view was larger than maximum allowed texture size on some devices.

1.0.3 - 9 Mar 2015

  • Added
    Added password parameter to openDocument Activity API to allow for opening password protected documents.
  • Added
    Added user password prompt when attempting to open password-protected PDF without passed password.
  • Changed
    Minor bugfixes.

1.0.2 - 4 Mar 2015

  • Changed
    Minor documentation and bug fixes.

1.0.1 - 3 Mar 2015

  • Changed
    Minor documentation and bug fixes.

1.0.0 - 27 Feb 2015

  • Changed
    Fast and responsive PDF viewer.
  • Changed
    Annotation display.
  • Changed
    Support for PDF links.
  • Changed
    Display document outline.
  • Changed
    Display thumbnail bar and thumbnail grid.
  • Changed
    Support for document search.
  • Changed
    Support for rendering into bitmaps.