Skip to content

feat(saved): export notes as PDF and Markdown - #151

Merged
Steadyx merged 7 commits into
mainfrom
feat/note-export
Sep 4, 2026
Merged

feat(saved): export notes as PDF and Markdown#151
Steadyx merged 7 commits into
mainfrom
feat/note-export

Conversation

@Steadyx

@Steadyx Steadyx commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • Export one note, all notes from a source, or all library notes as PDF or Markdown.
  • Add a theme-aligned export sheet, clear Saved-item actions, native destination selection, and cancellation/recovery handling.
  • Preserve a prepared snapshot while the picker is open; validate destinations and write through Android document providers without extra storage permissions.
  • Render paginated research-note PDFs with source/chapter context, quoted passages, dates, continuation headers, and multilingual text.
  • Localize the feature across all seven shipped locales.

Commit structure

  1. Export document model, Markdown renderer, filenames, and core tests.
  2. Localized export controls and document copy.
  3. Paginated PDF renderer and runtime tests.
  4. Android export service, localization adapter, and service tests.
  5. Saved-screen integration, lifecycle coordinator, and UI regression coverage.
  6. Merge current main, including the JDK validation work from build: validate local Gradle JDK #149.
  7. Update AGP to 9.4.0 and Coil to 3.6.2 to resolve the CI lint failures.

Validation

  • Follow-up HEAD 6226bc2 includes the merge of current main / PR build: validate local Gradle JDK #149 and a separate two-line dependency update.
  • Full local qualityGate plus assembleDebugAndroidTest passed under the native ARM64 JDK 17 validated by the new environment script; lintDebug explicitly ran and reports no issues.
  • 707 JVM tests passed (121 suites, no failures/errors/skips).
  • Normal pre-commit ktlint/Detekt hooks and pre-push qualityCheck passed.
  • Debug APK and Android-test APK assembled successfully.
  • API 35: PDF renderer 2/2, export service 2/2, export sheet 1/1, and affected Saved-editor tests 2/2 passed.
  • Actual all-notes PDF, source Markdown, single-note Markdown, and picker cancellation/reopen flows checked on an isolated emulator.
  • Every page of the final four-page multilingual PDF fixture was rendered and visually inspected; no clipping, overlap, or missing glyphs.
  • Independent correctness and security reviews: no remaining material findings.
  • git diff --check passed.

Known baseline limitations

Two unchanged Library test selectors fail outside this feature: the text-import placeholder and Delete versus Clear bookmarks. The dependency-version lint failures are now resolved by updating AGP to 9.4.0 and Coil to 3.6.2; no lint rules were disabled.

Integration plan

Wait for explicit approval before merging this PR into main. Then merge the updated main into feat/material3-expressive (draft PR #150), resolve overlapping Library/Saved changes, and validate that combined branch. Do not merge PR #150 into main as part of this request.

@Steadyx
Steadyx merged commit 08684bc into main Sep 4, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant