diff --git a/lib/src/view/more/import_pgn_screen.dart b/lib/src/view/more/import_pgn_screen.dart index 3a89e2b7e..05a56927a 100644 --- a/lib/src/view/more/import_pgn_screen.dart +++ b/lib/src/view/more/import_pgn_screen.dart @@ -131,8 +131,9 @@ class _BodyState extends ConsumerState<_Body> { final result = await ref.read(pickPgnFileProvider)(); if (result != null) { - final bytes = await result.files.single.readAsBytes(); - final content = utf8.decode(bytes, allowMalformed: true); + final content = await const Utf8Decoder( + allowMalformed: true, + ).bind(result.files.single.readAsByteStream()).join(); if (mounted) { ImportPgnScreen.handlePgnText(context, content); } diff --git a/test/view/more/import_pgn_screen_test.dart b/test/view/more/import_pgn_screen_test.dart index 95a279673..083776b6a 100644 --- a/test/view/more/import_pgn_screen_test.dart +++ b/test/view/more/import_pgn_screen_test.dart @@ -21,7 +21,7 @@ class _FakePlatformFile extends PlatformFile { final Uint8List _fileBytes; @override - Future readAsBytes() async => _fileBytes; + Stream readAsByteStream() => Stream.value(_fileBytes); } void _mockClipboard(String text) {