Commit Graph

5 Commits

Author SHA1 Message Date
bedd3977b8 Fix protobuf setup: canonical proto, buf lint, Makefile proto target
- Restored canonical proto from eng-pad-server (PageData, StrokeData
  message names, not Notebook/Page/Stroke)
- Added java_package + java_multiple_files options
- Renamed service to EngPadSyncService (buf STANDARD lint compliance)
- Simplified build.gradle.kts: removed broken custom GenerateProtoTask,
  proto stubs generated via Makefile `make proto` and checked into git
- Generated stubs in app/src/main/java/gen/
- Fixed SyncClient/SyncManager to match canonical proto schema
- Updated dependency versions: protobuf 4.34.1, grpc 1.80.0, grpcKotlin 1.5.0
- Added buf.yaml with STANDARD lint rules and FILE breaking detection

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 21:24:45 -07:00
16de63972a Add protobuf Gradle setup and gRPC sync client skeleton
- Protobuf Gradle plugin with protoc, grpc-java, grpc-kotlin generators
- Dependencies: protobuf-kotlin-lite, grpc-kotlin-stub, grpc-okhttp,
  grpc-protobuf-lite
- Proto file at app/src/main/proto/engpad/v1/sync.proto
- SyncClient.kt: gRPC channel with TLS + credential metadata interceptor
- SyncManager.kt: notebook serialization to proto, sync/delete/list RPCs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 20:55:34 -07:00
368351f9c6 Add drag-to-reorder pages and fix page navigation from page list
Drag-to-reorder:
- Added sh.calvin.reorderable library for LazyVerticalGrid drag support
- Long-press and drag page thumbnails to reorder
- Page numbers updated in DB on drop
- Visual feedback: slight scale + transparency while dragging

Page navigation fix:
- Clicking a page in "view all pages" now correctly opens that page
  (key(pid) forces EditorScreen recreation with the selected page)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:20:28 -07:00
a31e7e64d0 Upgrade to Gradle 9.4.1, AGP 9.1.0, Kotlin 2.3.20
- Gradle wrapper 8.14.2 -> 9.4.1
- AGP 8.10.1 -> 9.1.0 (built-in Kotlin, no separate kotlin.android plugin)
- Kotlin 2.1.20 -> 2.3.20
- KSP 2.1.20-1.0.32 -> 2.3.6 (new versioning scheme)
- settings.gradle.kts: removed @Suppress for dependencyResolutionManagement
- gradle.properties: added android.disallowKotlinSourceSets=false for KSP compat

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 14:30:15 -07:00
0b53023a25 Implement Phase 1: project skeleton and data layer
Android project with Kotlin, Jetpack Compose, and Room. Includes:
- Gradle build system with version catalog, foojay JDK resolver, lint config
- Room entities (Notebook, Page, Stroke) with packed float BLOB encoding
- DAOs and repositories for all entities
- Unit tests for blob roundtrip and PageSize enum (10 tests, all passing)
- Minimal Application class and stub MainActivity

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 14:03:57 -07:00