10 Commits
Author SHA1 Message Date
stefwill 78aa032c1b feat: implement settings screen with reminders, biometrics, theme, and PDF export
- Daily reminder scheduling via flutter_local_notifications (inexact, repeating at chosen time)
- Biometric lock gate on app launch with auto-prompt and manual unlock button
- Theme mode selector (System/Light/Dark) persisted to settings DB
- PDF export of full mood history shared via share_plus
- Android: POST_NOTIFICATIONS, USE_BIOMETRIC permissions; switched to FlutterFragmentActivity
2026-04-26 15:49:52 +10:00
stefwill ffb0b427b7 fix: update model filename to gpu-int4 variant 2026-04-26 15:17:38 +10:00
stefwill 68780ff436 fix: replace download flow with manual transfer instructions; rename app package
The Gemma model requires Kaggle login/licence so direct HTTP download is
not possible. Replaces the download screen with adb transfer instructions,
a Scan button that checks the file on disk, and a Continue without AI bypass.

Also renames the Android package from com.example.dailyou to
net.stefwill.dailyou (build.gradle.kts, MainActivity.kt path + declaration)
and adds *.bin to .gitignore to keep model files out of the repo.
2026-04-26 15:14:17 +10:00
stefwill e464c5621e feat: add model download screen and gate app on model presence
Adds a one-time download flow for the on-device Gemma 2B model (~1.1 GB)
with a progress bar, partial-download cleanup, and automatic navigation
to the app shell once the file is verified. App.dart now gates on
modelPresentProvider instead of onboarding state.
2026-04-26 14:42:39 +10:00
stefwill ea412d6fe9 feat: implement background LLM pattern analysis on Insights screen
Adds a prompt builder that serialises 7-day mood/activity data, wires
InsightNotifier to call the on-device LLM directly (no user interaction),
caches results by prompt hash, and renders the analysis as a passive card.
Includes loading, empty (<2 entries), and error states with a force-refresh button.
2026-04-26 14:37:37 +10:00
stefwill d1b18c5296 feat: add day detail screen with swipe-to-delete and undo
Adds DayDetailScreen showing all entries for a selected day with
swipe-to-delete and an undo snackbar. CalendarScreen gains a tappable
day header (Today / Yesterday / Month Day) that pushes the detail screen.
2026-04-26 14:29:00 +10:00
stefwill 10c15e5c90 feat: implement history screen with calendar heatmap and day detail
Adds a month grid heatmap (colour-coded by daily mood average), prev/next
month navigation, and a scrollable entry list below for the selected day
showing mood, time, note, and metric chips (sleep, energy, positivity,
self-worth).
2026-04-26 14:25:20 +10:00
stefwill fefb61ffae feat: add bottom navigation shell with four tabs
Introduces AppShell with an IndexedStack-backed NavigationBar (Today,
History, Insights, Settings). Stub screens added for Calendar, Insights,
and Settings; app.dart now routes to AppShell instead of LogMoodScreen directly.
2026-04-26 14:21:12 +10:00
stefwill 6f3fb74e7e feat: implement multi-step mood logging wizard
Adds sleep/energy/positivity/self-worth tracking columns to the database
(schema v2 migration), a new 5-option StepScale widget, per-answer chips
at the top of the screen, a 2×2 activity grid chip, and a full step-by-step
wizard flow: mood → sleep (first entry today only) → energy → positivity →
self-worth → activities → review+save.
2026-04-26 12:14:45 +10:00
stefwill 59597c7a4f feat: wire up app shell, log mood screen, and fix Android build
- Bootstrap ProviderScope in main.dart and move App to app.dart with light/dark theming
- Add initial LogMoodScreen with mood entry flow and shared activity/mood widgets
- Add kIsWeb guard in app_database.dart for drift web support
- Enable Android core library desugaring required by flutter_local_notifications 21.x
- Guard all async notifier state assignments with ref.mounted checks to prevent
  use-after-dispose errors when providers are auto-disposed mid-operation
2026-04-26 12:00:14 +10:00