Cache strategy alignment and regression coverage
This release aligns the three cache strategies with their intended behavior and adds regression coverage around caching, rendering, and embedded-view lifecycle cleanup.
What changed
MAXIMIZE_PERFORMANCEnow clearly behaves as the high-retention mode:- reuses downloaded remote PDFs
- keeps page bitmaps in memory and on disk
- keeps prefetch enabled
MINIMIZE_CACHEnow behaves as a reduced-storage mode:- reuses the current remote PDF
- keeps page bitmaps in memory only
- disables disk page-bitmap caching
- retains only one document cache on disk
DISABLE_CACHEnow behaves as a transient mode:- does not reuse persistent remote files
- disables disk page-bitmap caching
- disables prefetch
- still keeps visible rendering correct
Bug fixes included
- Fixed incorrect remote cache retention and reuse behavior across cache strategies.
- Fixed
DISABLE_CACHEso transient remote sessions no longer interfere with or delete persistent cache from other strategies. - Fixed embedded
PdfRendererView.initWithUrl(...)cleanup so transient remote files are cleaned up on lifecycle destroy, not only inPdfViewerActivity. - Fixed stale disk page-bitmap artifacts when reopening the same document under a stricter cache strategy.
- Hardened render job and callback bookkeeping in
PdfRendererCorewith minSdk-21-safe logic.
Testing and regression coverage
- Added a dedicated internal
CachePolicylayer to centralize strategy behavior. - Added unit tests covering:
- cache policy mapping
- document retention rules
- transient cleanup behavior
- Added hermetic instrumentation coverage for:
- local PDF behavior under all three strategies
- remote PDF reuse vs non-reuse
- embedded
PdfRendererViewlifecycle cleanup - strategy downgrade behavior for stale disk bitmap cache
- Added a debug-only embedded host activity used to verify
PdfRendererViewcleanup outsidePdfViewerActivity.
Compatibility
- No public API breaking changes.
- Existing
CacheStrategyAPIs remain the same; behavior is now more consistent and predictable.