- 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
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.
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.
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.
- 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