Nutrient 6 migration guide
Nutrient Android SDK 6 is a major release and includes many new features and a few breaking changes. This article provides a set of guidelines for migrating from Nutrient Android SDK 5.5 to Nutrient Android SDK 6.0.
Updated dependencies
With Nutrient 6, we updated various dependencies of Nutrient:
- Build System Dependencies
- The Android Gradle plugin used to build Nutrient was updated to version 3.5.0. In addition, all sample applications now use Android Gradle plugin 3.5.0 as well.
- Kotlin was updated to version 1.3.50.
Merge of Nutrient and Instant libraries
Starting with Nutrient 6.0, we no longer provide separate libraries for Nutrient and Instant. Instant client code is now part of the Nutrient library.
If you are currently using Instant and want to update to 6.0, you need to remove its dependency from your project’s dependencies block and add the OkHttp dependency, like so:
dependencies { implementation 'com.pspdfkit:pspdfkit:6.0' implementation 'com.pspdfkit:pspdfkit-instant:5.5.0' implementation 'com.squareup.okhttp3:okhttp:3.11.0'}Notable changes and deprecations
Dropped deprecated fields and methods
Here’s a list of other fields and methods we dropped:
AnnotationProvider#getAllAnnotationsOfType()no longer returnsObservable<Annotation>but now returnsList<Annotation>. You can useAnnotationProvider#getAllAnnotationsOfTypeAsync()instead.PdfFragment#getAnnotationDefaults(). UsePdfFragment#getAnnotationConfiguration()instead.PdfFragment#setAnnotationDefaultsProvider(). UseAnnotationConfigurationRegistry#put()instead.PSPDFKit#setLoggingEnabled(). To disable logging, remove all loggers viaPdfLog#removeAllLoggers(). Alternatively, implement a custom logging policy by setting multiple customLoggers viaPdfLog#setLoggers(Logger...).AnnotationDefaultsManager. Replaced byAnnotationConfigurationRegistry.AnnotationDefaultsProvider. Replaced byAnnotationConfiguration.com.pspdfkit.annotations.defaults.AnnotationProperty. Usecom.pspdfkit.annotations.configuration.AnnotationPropertyinstead.AnnotationAggregationStrategyDefaultsProvider. UseAnnotationAggregationStrategyConfigurationinstead.AnnotationDefaultsAlphaProvider. UseAnnotationAlphaConfigurationinstead.AnnotationDefaultsBorderStyleProvider. UseAnnotationBorderStyleConfigurationinstead.AnnotationDefaultsColorProvider. UseAnnotationColorConfigurationinstead.AnnotationDefaultsFillColorProvider. UseAnnotationFillColorConfigurationinstead.AnnotationDefaultsFontProvider. UseAnnotationFontConfigurationinstead.AnnotationDefaultsLineEndTypeProvider. UseAnnotationLineEndsConfigurationinstead.AnnotationDefaultsNoteIconProvider. UseAnnotationNoteIconConfigurationinstead.AnnotationDefaultsOutlineColorProvider. UseAnnotationOutlineColorConfigurationinstead.AnnotationDefaultsOverlayTextProvider. UseAnnotationOverlayTextConfigurationinstead.AnnotationDefaultsPreviewProvider. UseAnnotationDefaultsProviderinstead.AnnotationDefaultsRepeatOverlayTextProvider. UseAnnotationOverlayTextConfigurationinstead.AnnotationDefaultsTextSizeProvider. UseAnnotationTextSizeConfigurationinstead.AnnotationDefaultsThicknessProvider. UseAnnotationThicknessConfigurationinstead.AnnotationDefaultsStampProvider. UseStampAnnotationConfiguration.Builderinstead.EraserDefaultsProvider. UseEraserToolConfiguration.Builderinstead.FileAnnotationDefaultsProvider. UseFileAnnotationConfiguration.Builderinstead.FreeTextAnnotationDefaultsProvider. UseFreeTextAnnotationConfiguration.Builderinstead.InkAnnotationDefaultsProvider. UseInkAnnotationConfiguration.Builderinstead.LineAnnotationDefaultsProvider. UseLineAnnotationConfiguration.Builderinstead.MarkupAnnotationDefaultsProvider. UseMarkupAnnotationConfiguration.Builderinstead.NoteAnnotationDefaultsProvider. UseNoteAnnotationConfiguration.Builderinstead.RedactionAnnotationDefaultsProvider. UseRedactionAnnotationConfiguration.Builderinstead.ShapeAnnotationDefaultsProvider. UseShapeAnnotationConfiguration.Builderinstead.StampAnnotationDefaultsProvider. UseStampAnnotationConfiguration.Builderinstead.DEFAULT_STAMP_ANNOTATION_PDF_WIDTH,DEFAULT_STAMP_ANNOTATION_PDF_HEIGHT, andDEFAULT_STAMP_ANNOTATION_ASPECT_RATIOhave been moved fromStampAnnotationDefaultsProvidertoStampPickerItem.AnnotationPreferencesManager#getBorderStyle(). UseBorderStylePreset#getBorderStyle()on the border style preset returned viaAnnotationPreferencesManager#getBorderStylePreset().AnnotationPreferencesManager#setBorderStyle(). ConfigureBorderStyleinBorderStylePresetand set it viaAnnotationPreferencesManager#setBorderStylePreset().AnnotationPreferencesManager#getBorderDashArray(). UseBorderStylePreset#getDashArray()on the border style preset returned viaAnnotationPreferencesManager#getBorderStylePreset().AnnotationPreferencesManager#setBorderDashArray(). UseBorderStylePresetset viaAnnotationPreferencesManager#setBorderStylePreset().PdfConfiguration.Builder#textSharingEnabled(). UsePdfConfiguration.Builder#setEnabledShareFeatures()withShareFeatures#TEXT_SELECTION_SHARING,ShareFeatures.NOTE_ANNOTATION_SHARING, andShareFeatures.FREE_TEXT_ANNOTATION_SHARINGinstead.PdfConfiguration.Builder#embeddedFileSharingEnabled(). UsePdfConfiguration.Builder#setEnabledShareFeatures()withShareFeatures#EMBEDDED_FILE_SHARINGinstead.PdfConfiguration.Builder#sharingNoteEditorContentEnabled(). UsePdfConfiguration.Builder#setEnabledShareFeatures()withShareFeatures#NOTE_EDITOR_CONTENT_SHARINGinstead.PdfConfiguration.Builder#setSignatureSavingEnabled(). UsePdfConfiguration.Builder#signatureSavingStrategy()instead.PdfConfiguration.Builder#setCustomerSignatureFeatureEnabled(). UsePdfConfiguration.Builder#signatureSavingStrategy()instead.PdfConfiguration#isTextSharingEnabled(). UsePdfConfiguration#getEnabledShareFeatures()and check ifShareFeatures#TEXT_SELECTION_SHARINGis enabled.PdfConfiguration#isEmbeddedFilesSharingEnabled(). UsePdfConfiguration#getEnabledShareFeatures()and check ifShareFeatures#EMBEDDED_FILE_SHARINGis enabled.PdfConfiguration#isSharingNoteEditorContentEnabled(). UsePdfConfiguration#getEnabledShareFeatures()and check ifShareFeatures#NOTE_EDITOR_CONTENT_SHARINGis enabled.PdfConfiguration#isSignatureSavingEnabled(). UsePdfConfiguration#getSignatureSavingStrategy()instead.PdfConfiguration#isCustomerSignatureFeatureEnabled(). UsePdfConfiguration#getSignatureSavingStrategy()instead.PdfActivityConfiguration.Builder#sharingNoteEditorContentEnabled(). UsePdfActivityConfiguration.Builder#enabledShareFeatures()withShareFeatures#NOTE_EDITOR_CONTENT_SHARINGinstead.PdfActivityConfiguration.Builder#enableShare(). UsePdfActivityConfiguration.Builder#enabledShareFeatures()withShareFeatures.all()instead.PdfActivityConfiguration.Builder#disableShare(). UsePdfActivityConfiguration.Builder#enabledShareFeatures()withShareFeatures.none()instead.PdfActivityConfiguration.Builder#setSignatureSavingEnabled(). UsePdfActivityConfiguration.Builder#signatureSavingStrategy()instead.PdfActivityConfiguration.Builder#setCustomerSignatureFeatureEnabled(). UsePdfActivityConfiguration.Builder#signatureSavingStrategy()instead.PdfActivityConfiguration#isShareEnabled(). UsePdfActivityConfiguration#getEnabledShareFeatures()instead.ThumbnailBarMode#THUMBNAIL_BAR_MODE_DEFAULT. UseThumbnailBarMode#THUMBNAIL_BAR_MODE_FLOATINGinstead.PdfProcessorTask#addPdfToPage(). UsePdfProcessorTask#mergePage()instead.SearchOptions.Builder(Context). Use no parameter constructor instead.TextSearch(Context, PdfDocument, PdfConfiguration). UseTextSearch(PdfDocument, PdfConfiguration)instead.Signer#OnSigningCompleteCallback.Signer#signFormField()is now blocking and no longer requires this callback.Signer#signFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback). UseSigner#signFormField(SignerOptions)instead.Signer#signFormField(SignerOptions, OnSigningCompleteCallback). UseSigner#signFormField(SignerOptions)instead.Signer#signFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream). UseSigner#signFormFieldAsync(SignerOptions)instead.SignaturePickerFragment#setSignaturePickerOrientation(). Pass in the desiredSignatureOptionstoSignaturePickerFragment#show()instead.SignaturePickerFragment#showSignaturePicker(). UseSignaturePickerFragment#show()instead.AnnotationCreationController#getBorderStyle(). Use border style viaBorderStylePreset#getBorderStyle()returned byAnnotationCreationController#getBorderStylePreset().