fix(flutter): clear analyze --fatal-infos issues

Three classes:

1. album_cover_cache.dart docstring used <applicationCacheDirectory>
   and <albumId> which the analyzer reads as unintended HTML. Wrapped
   the path in backticks and used {} placeholders.

2. settings AppearanceSection used RadioListTile.groupValue + onChanged,
   deprecated in Flutter 3.32+. Wrapped the radios in a RadioGroup
   ancestor (the new API) so individual tiles only declare value +
   activeColor. Test updated to read groupValue off the RadioGroup
   ancestor.

3. theme_extension.dart factories built FabledSwordTheme(...) without
   const, even though all args are static const tokens. Added const to
   the outer constructor calls in both .dark() and .light() — this
   propagates const to the inner TextStyle(...) calls automatically.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-09 16:16:35 -04:00
parent dd848e76e8
commit 84a638a41f
4 changed files with 35 additions and 25 deletions
@@ -30,7 +30,7 @@ class FabledSwordTheme extends ThemeExtension<FabledSwordTheme> {
final Color warning, error, info;
final TextStyle display, body, mono;
factory FabledSwordTheme.dark() => FabledSwordTheme(
factory FabledSwordTheme.dark() => const FabledSwordTheme(
accent: FabledSwordFlatTokens.accent,
obsidian: FabledSwordDarkTokens.obsidian,
iron: FabledSwordDarkTokens.iron,
@@ -50,7 +50,7 @@ class FabledSwordTheme extends ThemeExtension<FabledSwordTheme> {
mono: TextStyle(fontFamily: FabledSwordFlatTokens.fontMono),
);
factory FabledSwordTheme.light() => FabledSwordTheme(
factory FabledSwordTheme.light() => const FabledSwordTheme(
accent: FabledSwordFlatTokens.accent,
obsidian: FabledSwordLightTokens.obsidian,
iron: FabledSwordLightTokens.iron,