Repository navigation
Android compat: document intents via native file dialogs; iOS background execution guide - #6130
Conversation
…und guide ACTION_OPEN_DOCUMENT, ACTION_CREATE_DOCUMENT and non-media GET_CONTENT threw ActivityNotFoundException. They now open Display.showOpenDialog / showSaveDialog and return through onActivityResult and the AndroidX contracts (OpenDocument, OpenMultipleDocuments, CreateDocument, GetMultipleContents). Adds ClipData, persistable-permission no-ops and openOutputStream(uri, mode). The developer guide gains a section mapping Android foreground services, background location and WorkManager to iOS behaviour. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Encode-safe staging names, async CREATE_DOCUMENT result, staging cleanup, safe append mode, wildcard filters; guide no longer states an unverified background window length. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ancelled save Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Developer Guide build artifacts are available for download from this workflow run:
Developer Guide quality checks: |
Cloudflare Preview
|
✅ Continuous Quality ReportTest & Coverage
Static Analysis
Generated automatically by the PR CI workflow. |
|
Compared 191 screenshots: 191 matched. Native Android coverage
✅ Native Android screenshot tests passed. Native Android coverage
Benchmark ResultsDetailed Performance Metrics
|
|
Compared 227 screenshots: 227 matched. |
|
Compared 192 screenshots: 192 matched. Benchmark Results
Detailed Performance Metrics
ParparVM vs HotSpot (JDK 25): macOS arm64Runner CPU: Apple M1 (Virtual) (baseline Ratios are ParparVM / JDK 25: below 1.00x ParparVM is faster (time) or smaller (RAM). Median of 5 interleaved, paired rounds; every run's output was verified. A ratio more than 20% (time) / 25% (RAM) above its baseline in
Result: no regression |
|
Compared 184 screenshots: 184 matched. |
|
Compared 189 screenshots: 189 matched. Benchmark Results
Build and Run Timing
Detailed Performance Metrics
|
|
Compared 249 screenshots: 249 matched. |
Addresses discussion #6127.
Document intents. `ACTION_OPEN_DOCUMENT`, `ACTION_CREATE_DOCUMENT` and non-media `ACTION_GET_CONTENT` threw `ActivityNotFoundException`. They now open `Display.showOpenDialog` / `showSaveDialog` and return through `onActivityResult` (activities and fragments) and the AndroidX contracts (`OpenDocument`, `OpenMultipleDocuments`, `CreateDocument`, `GetMultipleContents`; non-media `GetContent`). Adds `ClipData`, `Intent.get/setClipData`, `ContentResolver.openOutputStream(uri, mode)` and no-op persistable URI permissions.
`CREATE_DOCUMENT` cannot match Android on iOS, where the picker only exports an existing file: the app gets a staged file at once, and closing the stream it wrote shows the Save dialog. Documented in the class and the guide.
Guide. New "Opening and creating documents" and "Background execution on iOS" sections in `Android-Interop.asciidoc`, mapping foreground services, background location (already wired: manifest -> `location` background mode -> `allowsBackgroundLocationUpdates`) and WorkManager to iOS behaviour, with porting advice.
Tests: `DocumentIntentsTest` (8) on new `HeadlessImplementation` dialog hooks; android-compat suite 599/599, SpotBugs 0, cast-semantics clean.
🤖 Generated with Claude Code