docs: add release note summary for v2.3.8, v2.3.9, and v2.4.0 to CHANGELOG.md#251
docs: add release note summary for v2.3.8, v2.3.9, and v2.4.0 to CHANGELOG.md#251
Conversation
Co-authored-by: afreakyelf <38572147+afreakyelf@users.noreply.github.com>
|
@copilot update it there are new changes in release |
Co-authored-by: afreakyelf <38572147+afreakyelf@users.noreply.github.com>
Added the new v2.4.0 entry at the top of CHANGELOG.md (commit |
There was a problem hiding this comment.
Pull request overview
Updates CHANGELOG.md to document recent releases that were previously missing, adding structured release-note entries for newer versions of the PDF viewer library.
Changes:
- Added a new changelog section for v2.3.8 (2026-03-15) covering new zoom/navigation APIs and multiple bug fixes.
- Added a new changelog section for v2.3.9 (2026-03-16) covering DISABLE_CACHE and fast-scroll corruption fixes plus an explicit revert note.
- Added an additional top section for v2.4.0 (2026-03-16) describing cache-strategy alignment and expanded testing/build notes.
You can also share your feedback on Copilot code review. Take the survey.
| # [v2.4.0] — 2026-03-16 | ||
|
|
||
| This release aligns the three cache strategies with their intended behavior and adds broad regression coverage around caching, rendering, and embedded-view lifecycle cleanup. |
|
|
||
| ### New Features | ||
| - **Zoom controls exposed** (`#246`): `PdfRendererView` and `PdfRendererViewCompose` now expose `zoomIn()`, `zoomOut()`, and `zoomTo(scale)` methods. A Jetpack Compose example using FABs for zoom in/out has been added to the sample app. | ||
| - **Configurable max zoom** (`#239`): Maximum pinch-zoom scale is now configurable via the `pdfView_maxZoom` XML attribute or programmatically via `setMaxZoom(scale)`. Default remains `5×`. |
| - **Zoom-settled listener alias**: `onZoomSettled` callback added as a stable alias for the zoom-end event so callers do not need to parse raw scale values. | ||
|
|
||
| ### Bug Fixes | ||
| - **API 33 `getParcelableExtra` NPE** (`#244`, `#245`): Replaced deprecated `getParcelableExtra` call with the type-safe `getParcelableExtra(name, Class)` overload to prevent a `NullPointerException` on Android 13+. |
CHANGELOG.mdonly documented releases up to v2.0.0, leaving the last ~10 months of changes undocumented. This adds structured entries for v2.3.8, v2.3.9, and v2.4.0.v2.4.0 (2026-03-16)
CacheStrategymodes now have a clearly defined and consistently enforced behavioral contract (remote PDF reuse, page bitmap memory/disk retention, prefetch enabled/disabled)PdfRendererView.initWithUrltransient file not cleaned up when embedded outsidePdfViewerActivity; DISABLE_CACHE blank pages (DISABLE_CACHE doesn't work #222); fast-scroll bitmap corruption (draw multiple pages on the same bitmap when scrolling very quickly #223); render job and callback bookkeeping hardened with minSdk-21-safe logicCachePolicyabstraction centralising per-strategy behavior; unit tests for cache policy mapping, document retention, and transient cleanup; hermetic instrumented tests for all three strategies; dynamic version-from-Git-tag publishing and updated GH Actions workflowv2.3.9 (2026-03-16)
v2.3.8 (2026-03-15)
zoomIn()/zoomOut()/zoomTo(scale)(feat: expose zoom methods and add Compose example with FABs #246);setMaxZoom(scale)/pdfView_maxZoomattr (make MAX ZOOM more then 3.0 #239);scrollToNextPage()/scrollToPreviousPage()with zoom-aware boundary clamping (Add scrollToNextPage() / scrollToPreviousPage() for within-page scroll-before-advance navigation #250);onZoomSettledlistener aliasgetParcelableExtraNPE ([BUG] Opening PdfViewerActivity with Headers on Android 13 crashes #244/Fix: Use deprecated getParcelableExtra on API 33 to prevent NPE (#244) #245); stale ViewHolder height on rebind (fix: reset page height to WRAP_CONTENT on ViewHolder rebind #242);PdfRenderershutdown race ([BUG] Brief Description of Issue #241); scroll state lost after re-init ([BUG] Scroll state is not saved #225); zoomed-scroll over/under-shoot ([BUG] Scroll Not Working When Zoomed In (Requires Full Zoom Out to Scroll) #230); bottom-sheet nested scroll (View + Compose) ([BUG] Scroll not working when used inside compose bottom sheet #231); ViewPager tab reattach blank state ([BUG] Content is not displayed in viewpagers when swiping back to a tab containing a PdfRendererView #235); cache key collision for same-named PDFs in different directories (Fix cache key collision for same-named PDFs in different directories #249);ParcelFileDescriptor/PdfRendererleaks on init failure (Fix cache key collision for same-named PDFs in different directories #249); silentinitWithUrinull-FD (Fix cache key collision for same-named PDFs in different directories #249)NoClassDefFoundErrorforlifecycle-processin Java consumer apps — pinned via version constraints + consumer ProGuardkeeprules (Fix NoClassDefFoundError for lifecycle-process Kotlin anonymous classes in Java consumer apps #248)🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.