Nutrient Android SDK 10.6 release notes

11 August 2025

Nutrient Android SDK 10.6 brings significant improvements to AI Assistant, along with UI enhancements and better document handling reliability. This release continues our commitment to providing a robust PDF SDK experience on Android.

We expanded AI Assistant with multiple document support for both remote documents (server-backed) and local PDF files, making it easier to work across different document sources. The UI improvements include better styling options for the outline view, property inspector, and thumbnail grid.

This release contains several fixes and enhancements. For the full list of changes, see our changelog.

AI Assistant enhancements

The standout feature of this release is the expanded AI Assistant functionality. You can now work with multiple documents simultaneously, whether they’re stored remotely through a server-backed implementation or locally on the device. This makes it much easier to analyze, compare, and extract insights from multiple PDF files in a single AI conversation.

UI improvements

We added several new styling options to give you more control over the appearance of PDF viewer components:

  • Outline view width — New styleable element for customizing the outline view width with the pspdf__width dimension in the pspdf__OutlineView styleable.
  • Property inspector icons — New pspdf__buttonIconTint attribute to customize button icon colors in the property inspector.
  • Thumbnail selection — New pspdf__itemSelectedBorderColor attribute to customize the selection frame in PdfThumbnailGrid.

Additionally, we improved text selection retention during content editing drag-and-drop operations. We also fixed several rendering issues, including PDF content partially hiding in vertical continuous scrolling mode and black screen issues with non-default blend modes.

Document handling improvements

This release includes important reliability improvements for document operations:

  • Enhanced document save reliability to prevent file corruption during app crashes.
  • Better handling of orphan page references when exporting edited documents.
  • Improved discovery of widgets not correctly linked to form fields.

Looking ahead

We continue to focus on performance, reliability, and developer experience improvements. The removal of deprecated components like the old Android YouTube player library helps streamline the SDK for modern Android development.


Migration guide

This section outlines the important public API changes in Nutrient Android SDK 10.6.

AI Assistant

New AI Assistant API

Nutrient 10.6 introduces a new, streamlined AI Assistant API that replaces the previous standaloneAiAssistant method.

Creating AI Assistant instances
val documentDescriptors = assetFiles.map {
DocumentDescriptor.fromDataProviders(listOf(AssetDataProvider(it)), listOf(), listOf())
}
val assistant = createAiAssistant(
context = this,
documentsDescriptors = documentDescriptors,
ipAddress = "your-server-ip",
sessionId = "your-session-id",
jwtToken = { documentIds ->
generateJwtToken(
context = this,
claims = mapOf(
"document_ids" to documentIds,
"session_ids" to listOf("your-session-id"),
"request_limit" to mapOf(
"requests" to 160,
"time_period_s" to 600000
)
)
)
}
)
AiAssistantProvider interface

AI Assistant now requires implementing the AiAssistantProvider interface in your Activity:

class YourActivity : AppCompatActivity(), AiAssistantProvider {
override fun getAiAssistant(): AiAssistant {
return assistant
}
// Optional: Implement navigation callback for multi-document support.
override fun navigateTo(
documentRect: List<RectF>,
pageIndex: Int,
documentIndex: Int
) {
// Handle navigation to specific document, page, and highlight rectangles.
}
}

Multi-document support

AI Assistant now supports multiple documents simultaneously:

val assetFiles = listOf("document1.pdf", "document2.pdf", "document3.pdf")
val documentDescriptors = assetFiles.map {
DocumentDescriptor.fromDataProviders(listOf(AssetDataProvider(it)), listOf(), listOf())
}
val assistant = createAiAssistant(
context = this,
documentsDescriptors = documentDescriptors, // Multiple documents
ipAddress = "your-server-ip",
sessionId = "your-session-id",
jwtToken = { documentIds -> /* generate JWT */ }
)

Programmatic AI Assistant display

You can now show the AI Assistant dialog programmatically:

import com.pspdfkit.ai.showAiAssistant
// Show AI Assistant dialog.
showAiAssistant(context)

Initialization improvements

Simplified initialization control with session history options:

// Initialize with session history (default).
aiAssistant.initialize(withSessionHistory = true)

AI Migration checklist

  1. Update AI Assistant creation — Replace standaloneAiAssistant with createAiAssistant.
  2. Implement AiAssistantProvider — Add the interface to your Activity.
  3. Update JWT generation — Use the new Lambda-based JSON Web Token (JWT) generation.
  4. Update initialization — Use the new initialize method with session history control.
  5. Consider multi-document support — Update your implementation to support multiple documents if needed.

Breaking APIs

Immersive mode

The immersive mode option previously defaulted to false but is now true. If you experience layout issues, set the immersive mode option to false in the PdfActivityConfiguration.

Outline view width

PdfOutlineView used to have a fixed width of 480 dp. Starting with version 10.6, this width is customized with the pspdf__width dimension attribute in the pspdf__OutlineView styleable. If this isn't set, the width will be set to the parent view width, which usually means it covers the width of the screen. If you set the width to be wider than the parent, it'll be overridden as the parent. If you want a custom width in landscape mode or on a tablet, set the value to your desired width.

For more information, refer to the changelog.