diff --git a/flutter_client/lib/app.dart b/flutter_client/lib/app.dart index f0c01e29..f6884573 100644 --- a/flutter_client/lib/app.dart +++ b/flutter_client/lib/app.dart @@ -9,7 +9,7 @@ class MinstrelApp extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final router = buildRouter(ref); + final router = ref.watch(routerProvider); return MaterialApp.router( title: 'Minstrel', theme: buildThemeData(), diff --git a/flutter_client/lib/player/audio_handler.dart b/flutter_client/lib/player/audio_handler.dart index 4dd35e27..81048a2d 100644 --- a/flutter_client/lib/player/audio_handler.dart +++ b/flutter_client/lib/player/audio_handler.dart @@ -55,7 +55,7 @@ class MinstrelAudioHandler extends BaseAudioHandler with QueueHandler, SeekHandl Future pause() => _player.pause(); @override - Future seek(Duration p) => _player.seek(p); + Future seek(Duration position) => _player.seek(position); @override Future skipToNext() => _player.seekToNext(); diff --git a/flutter_client/lib/shared/routing.dart b/flutter_client/lib/shared/routing.dart index df417199..a23a980d 100644 --- a/flutter_client/lib/shared/routing.dart +++ b/flutter_client/lib/shared/routing.dart @@ -12,6 +12,12 @@ import '../player/now_playing_screen.dart'; import '../player/player_bar.dart'; import 'widgets/version_gate.dart'; +/// Exposed as a Provider so its single argument is a real `Ref` (the +/// constructor's redirect closures use `ref.read`). Widgets consume the +/// router via `ref.watch(routerProvider)` instead of constructing it +/// themselves with a `WidgetRef`, which can't satisfy the `Ref` type. +final routerProvider = Provider((ref) => buildRouter(ref)); + GoRouter buildRouter(Ref ref) { return GoRouter( initialLocation: '/', diff --git a/flutter_client/lib/theme/theme_extension.dart b/flutter_client/lib/theme/theme_extension.dart index f325b664..5efa1bb1 100644 --- a/flutter_client/lib/theme/theme_extension.dart +++ b/flutter_client/lib/theme/theme_extension.dart @@ -30,7 +30,7 @@ class FabledSwordTheme extends ThemeExtension { final Color warning, error, info; final TextStyle display, body, mono; - static FabledSwordTheme fromTokens() => FabledSwordTheme( + static FabledSwordTheme fromTokens() => const FabledSwordTheme( accent: FabledSwordTokens.accent, obsidian: FabledSwordTokens.obsidian, iron: FabledSwordTokens.iron, diff --git a/flutter_client/test/library/home_screen_test.dart b/flutter_client/test/library/home_screen_test.dart index 65b22ffd..f4608f18 100644 --- a/flutter_client/test/library/home_screen_test.dart +++ b/flutter_client/test/library/home_screen_test.dart @@ -11,7 +11,7 @@ import 'package:minstrel/theme/theme_data.dart'; void main() { testWidgets('home renders sections with rows', (tester) async { - final fixture = HomeData( + const fixture = HomeData( recentlyAddedAlbums: const [ AlbumRef(id: 'a', title: 'Geogaddi', artistId: 'x', artistName: 'BoC'), ], diff --git a/flutter_client/test/smoke_test.dart b/flutter_client/test/smoke_test.dart index 51c1407c..001cb05e 100644 --- a/flutter_client/test/smoke_test.dart +++ b/flutter_client/test/smoke_test.dart @@ -1,4 +1,3 @@ -import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_test/flutter_test.dart';