# Vital Health Monitor Android — TODO

- [x] Configure theme colors (violet accent, dark/light palette)
- [x] Create data storage layer (AsyncStorage: readings, profile, AGP thresholds)
- [x] Create health data types and constants
- [x] Create alert computation logic
- [x] Welcome / auth screen (name + PIN setup and verification)
- [x] Tab navigation (Dashboard, Add Reading, Recent, Settings)
- [x] Dashboard screen with 8 metric cards + trend arrows + alert colors
- [x] Last 3 readings panel on dashboard
- [x] Manage Recent panel on dashboard (edit/delete)
- [x] Blood Pressure entry screen
- [x] Heart Rate entry screen
- [x] SpO2 entry screen
- [x] Blood Glucose entry screen
- [x] Weight entry screen (kg → lb auto-calc)
- [x] Temperature entry screen (°F → °C auto-calc)
- [x] HRV entry screen
- [x] Sleep entry screen
- [x] Category picker screen (Add Reading tab)
- [x] Recent Readings screen with edit/delete
- [x] Settings screen (theme toggle, clear data, about)
- [x] AGP tile on dashboard (import LibreView PDF)
- [x] LibreView PDF import (document picker + parsing)
- [x] AGP status logic (Green/Yellow/Red)
- [x] Generate app icon and configure branding
- [x] Save checkpoint and deliver to user
- [x] Fix Android crash: remove runtime expo-symbols import from icon-symbol.tsx (iOS-only package)
- [x] Fix Android crash: remove expo-document-picker from app.config.ts plugins (no config plugin needed)
- [x] Fix Android crash: replace theme.config.js CJS import with TypeScript module import in theme-provider.tsx
- [x] Fix Android crash: circular dependency — ThemeProvider was calling useColorScheme which called useThemeContext back into ThemeProvider (null context crash)
- [x] Fix Android crash: disabled newArchEnabled and reactCompiler (incompatible with some native modules in SDK 54)
- [x] Fix Android crash: removed react-native-worklets babel plugin (not used, caused startup issues)
- [x] Fix Android crash: removed unused expo-audio and expo-video config plugins (added unnecessary native modules)
- [x] Fix LibreView PDF import: replaced broken atob(base64) approach with expo-pdf-text-extract (native PDFBox on Android)
- [x] Fix LibreView PDF import: corrected parsing strategy — Monthly Summary section with date-range pairing (validated against actual GregoryRoby_05-21-2026.pdf)
- [x] Fix LibreView PDF import: correct TIR regex to match "Target Range 70 - 180 mg/dL NN%" format
- [x] Fix LibreView PDF import: show confirmation dialog with all extracted stats (avg, GMI, TIR, variability) before importing
