Skip to content

feat(android): ship mobile ink v1 parity#31

Merged
markm39 merged 16 commits into
mainfrom
feat/android-parity
May 14, 2026
Merged

feat(android): ship mobile ink v1 parity#31
markm39 merged 16 commits into
mainfrom
feat/android-parity

Conversation

@markm39
Copy link
Copy Markdown
Contributor

@markm39 markm39 commented May 14, 2026

Summary

  • add the Android native MobileInkCanvasView, module, package, Gradle/CMake wiring, and example docs
  • render Android with TextureView + EGL + Skia Ganesh so drawing stays GPU-backed like iOS
  • bring continuous-page behavior to parity: pooled page activation, trailing blank-page growth, dirty-page capture, previews while engines mount, and autosave status in the example
  • fix Android color ordering for live Ganesh rendering, previews, and PDF-backed pages
  • split the larger C++ drawing implementation into focused rendering, eraser, history, selection, crayon, calligraphy, and shape-recognition modules

Android v1 Scope

This PR is the Android v1 implementation for mobile-ink: drawing, erasing, selection chrome, multiple pages, page previews during engine load, persisted notebook reloads, and example Android run docs.

Not in this Android v1 PR: Android native benchmark runner UI/API. The example keeps benchmark controls iOS-only until the Android recorder/runner lands.

Validation

  • npm run typecheck
  • npm test
  • npm run test:native:smoke
  • npm run test:example:typecheck
  • ./gradlew ':mathnotes_mobile-ink:compileDebugKotlin' :app:assembleDebug
  • Manual Android device validation by Mark: drawing, multi-page activation, eraser, and color ordering are working

Review Gates

  • simplify: no blocking maintainability findings after review
  • security: no auth, tenant isolation, secret, injection, or sensitive-data findings in this native/client-only surface

@markm39 markm39 merged commit 2ead828 into main May 14, 2026
1 check passed
@markm39 markm39 deleted the feat/android-parity branch May 14, 2026 22:14
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