Implement Phase 2: notebook list screen with navigation

- NotebookListScreen: lazy list, create dialog (title + page size),
  long-press delete with confirmation, empty state
- NotebookListViewModel: StateFlow-based, create/delete operations
- EngPadTheme: high-contrast light scheme for e-ink displays
- NavGraph: three routes (notebooks, pages stub, editor stub)
- MainActivity wired to NavHost with database injection

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-24 14:15:48 -07:00
parent 8f41c41589
commit 644b8a4732
7 changed files with 381 additions and 11 deletions

View File

@@ -35,16 +35,16 @@ completed and log them in PROGRESS.md.
## Phase 2: Notebook List Screen
- [ ] 2.1: Set up `MainActivity` with Compose and `NavHost`
- [x] 2.1: Set up `MainActivity` with Compose and `NavHost`
- `MainActivity.kt`, `ui/navigation/NavGraph.kt`, `ui/theme/Theme.kt`
- [ ] 2.2: Implement `NotebookListViewModel`
- [x] 2.2: Implement `NotebookListViewModel`
- `ui/notebooks/NotebookListViewModel.kt`
- [ ] 2.3: Implement `NotebookListScreen`
- `ui/notebooks/NotebookListScreen.kt` — list, create dialog, delete
- [ ] 2.4: Auto-create page 1 on notebook creation
- In `NotebookRepository` or ViewModel
- [ ] 2.5: Navigation: tap notebook → page list (stub screen)
- **Verify:** `./gradlew build && ./gradlew test`
- [x] 2.3: Implement `NotebookListScreen`
- `ui/notebooks/NotebookListScreen.kt` — list, create dialog, delete confirmation
- [x] 2.4: Auto-create page 1 on notebook creation
- In `NotebookRepository.create()`
- [x] 2.5: Navigation: tap notebook → page list (stub screen)
- **Verify:** `./gradlew build` — PASSED (build + test + lint)
## Phase 3: Canvas — Basic Drawing