From b7b2d404d035f4d83a5f3a2dc66055551dd022d3 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 20 May 2026 14:05:21 +0300 Subject: Fix PlayerApiClient const constructor and Media.tags deserialization (d9+e9) - Remove const from PlayerApiClient constructor (Uri is not const-constructable) - Replace .cast() with .whereType().toList() in Media.fromJson to silently drop non-string and null tag elements instead of throwing TypeError - Add regression test: tags [1, 'valid', null] deserialized as ['valid'] Co-Authored-By: Claude Opus 4.7 --- player-android/lib/api/player_api_client.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'player-android/lib/api/player_api_client.dart') diff --git a/player-android/lib/api/player_api_client.dart b/player-android/lib/api/player_api_client.dart index 3031c73..eb438f4 100644 --- a/player-android/lib/api/player_api_client.dart +++ b/player-android/lib/api/player_api_client.dart @@ -6,7 +6,9 @@ class PlayerApiClient { final Uri baseUrl; final String bearerToken; - const PlayerApiClient({required this.baseUrl, required this.bearerToken}); + // Normal (non-const) constructor: Uri is not const-constructable, so the + // constructor must not be declared const. + PlayerApiClient({required this.baseUrl, required this.bearerToken}); Future bootstrap({required String username, required String password}) => throw UnimplementedError(); Future login({required String username, required String password}) => throw UnimplementedError(); -- cgit v1.2.3