feat(flutter/settings): Storage section UI — usage, cap, prefetch, controls

New StorageSection widget mounted in SettingsScreen between Appearance
and Password sections. Surfaces:

  - Cache usage display (live, refreshed on cap change + on Clear)
  - Cache size limit dropdown (1 / 5 / 10 / 25 GB / Unlimited)
  - Pre-fetch ahead dropdown (1 / 3 / 5 / 7 / 10 tracks)
  - Cache liked tracks switch
  - Clear cache button (confirm dialog, then clearAll)
  - Sync now button (triggers SyncController.sync(), spinner while inflight)

Cap change triggers immediate eviction. Clear cache wipes EVERYTHING
(manual-pinned tracks too) per the operator-facing copy.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-09 23:21:34 -04:00
parent 153e931490
commit fd4ce402d7
3 changed files with 280 additions and 0 deletions
@@ -9,6 +9,7 @@ import '../library/library_providers.dart' show dioProvider;
import '../models/my_profile.dart';
import '../shared/widgets/main_app_bar_actions.dart';
import '../theme/theme_extension.dart';
import 'storage_section.dart';
import '../theme/theme_mode_provider.dart';
final _settingsApiProvider = FutureProvider<SettingsApi>((ref) async {
@@ -48,6 +49,8 @@ class SettingsScreen extends ConsumerWidget {
_Divider(),
_AppearanceSection(),
_Divider(),
StorageSection(),
_Divider(),
_PasswordSection(),
_Divider(),
_ListenBrainzSection(),