feat: implement comprehensive app theme system with centralized color… - #56
Conversation
… tokens and initial architecture setup
|
Caution Review failedPull request was closed or merged during review No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (4)
WalkthroughThe PR updates app startup configuration, shared theme tokens, UI animation and styling values, import/export handling, nullable payload serialization, and F-Droid release metadata. ChangesApplication changes
F-Droid metadata
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #56 +/- ##
==========================================
- Coverage 38.54% 38.50% -0.04%
==========================================
Files 85 85
Lines 14088 14084 -4
==========================================
- Hits 5430 5423 -7
- Misses 8658 8661 +3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@workout-logger/android/app/src/main/AndroidManifest.xml`:
- Around line 55-57: The AndroidManifest metadata is using the deprecated
Flutter SurfaceControl opt-in, so update the existing `<meta-data>` entry in the
manifest to use the current Hybrid Composition++ key instead. Locate the
`EnableSurfaceControl` declaration in `AndroidManifest.xml` and replace it with
`io.flutter.embedding.android.EnableHcpp` while keeping the enabled value
unchanged.
In `@workout-logger/CLAUDE.md`:
- Line 1: The CLAUDE.md file starts with an h2 instead of a top-level heading,
so update the first line to use a single top-level title; either promote the
existing graphify heading to a top-level heading or add a proper file title
above it so the document begins with an H1 and satisfies markdownlint MD041.
In `@workout-logger/lib/main.dart`:
- Around line 47-53: The Android transparent bar styling in
SystemChrome.setSystemUIOverlayStyle is missing the contrast-enforcement flags,
so fully transparent bars may still get a scrim on SDK 29+ devices. Update the
SystemUiOverlayStyle used in main.dart to explicitly disable both
systemStatusBarContrastEnforced and systemNavigationBarContrastEnforced
alongside the existing transparent colors. Keep the change localized to the
overlay style definition in the app startup setup.
In `@workout-logger/pubspec.yaml`:
- Line 62: The Web file selection flow in the file picker migration still relies
on a non-Web path-based file lookup, which will fail because Web returns null
paths and file data is not loaded by default. Update the file picking logic that
uses FilePicker.pickFiles to request bytes with withData: true, then handle the
selected file via result.files.single.bytes on Web while keeping the existing
path-based handling for non-Web targets. Refer to the file picker usage in the
upload/import flow so the fix is applied wherever FilePicker is consumed.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: a1c992ae-243e-4eeb-b80b-8dc3504d0683
⛔ Files ignored due to path filters (1)
workout-logger/pubspec.lockis excluded by!**/*.lock
📒 Files selected for processing (23)
workout-logger/CLAUDE.mdworkout-logger/android/app/src/main/AndroidManifest.xmlworkout-logger/lib/main.dartworkout-logger/lib/screens/ai_coach_screen.dartworkout-logger/lib/screens/analytics_screen.dartworkout-logger/lib/screens/home_screen.dartworkout-logger/lib/screens/profile_screen.dartworkout-logger/lib/screens/programs/import_program_screen.dartworkout-logger/lib/screens/programs/program_designer_screen.dartworkout-logger/lib/screens/routine_optimizer_screen.dartworkout-logger/lib/screens/settings_screen.dartworkout-logger/lib/screens/widgets/analytics_overview.dartworkout-logger/lib/screens/widgets/exercise_progress_view.dartworkout-logger/lib/screens/widgets/profile_sections.dartworkout-logger/lib/screens/widgets/program_week_editor.dartworkout-logger/lib/screens/widgets/rf_cards.dartworkout-logger/lib/screens/widgets/rf_inputs.dartworkout-logger/lib/screens/widgets/rf_widgets.dartworkout-logger/lib/screens/workout_flow_screen.dartworkout-logger/lib/services/ai/coach_tool_service.dartworkout-logger/lib/services/api_service.dartworkout-logger/lib/theme/app_theme.dartworkout-logger/pubspec.yaml
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
… tokens and initial architecture setup
Summary by CodeRabbit