From edced8825da2cb5964db1ed26f66bdfcf2689c13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20B=C3=B6sche?= Date: Sun, 25 Jan 2026 01:31:33 +0100 Subject: [PATCH] Fix flutter analyze errors: correct Blob constructor usage and dispose method --- b0esche_cloud/lib/pages/public_file_viewer.dart | 5 ++++- b0esche_cloud/lib/widgets/web_audio_player.dart | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/b0esche_cloud/lib/pages/public_file_viewer.dart b/b0esche_cloud/lib/pages/public_file_viewer.dart index 612a68e..84f7b03 100644 --- a/b0esche_cloud/lib/pages/public_file_viewer.dart +++ b/b0esche_cloud/lib/pages/public_file_viewer.dart @@ -108,7 +108,10 @@ class _PublicFileViewerState extends State { final bytes = await apiClient.getBytes(path); final mimeType = _fileData?['capabilities']?['mimeType'] ?? 'video/mp4'; - final blob = web.Blob([bytes], mimeType); + final blob = web.Blob( + [Uint8List.fromList(bytes)], // ignore: argument_type_not_assignable + web.BlobPropertyBag(type: mimeType), + ); videoUrl = web.URL.createObjectURL(blob); } catch (e) { // Fallback to direct URL diff --git a/b0esche_cloud/lib/widgets/web_audio_player.dart b/b0esche_cloud/lib/widgets/web_audio_player.dart index 96e4fc1..90a7139 100644 --- a/b0esche_cloud/lib/widgets/web_audio_player.dart +++ b/b0esche_cloud/lib/widgets/web_audio_player.dart @@ -1,5 +1,6 @@ import 'package:web/web.dart' as web; import 'dart:async'; +import 'dart:typed_data'; import '../services/api_client.dart'; import '../injection.dart'; @@ -52,7 +53,10 @@ class AudioPlayer { final apiClient = getIt(); final path = url.replaceFirst(apiClient.baseUrl, ''); final bytes = await apiClient.getBytes(path); - final blob = web.Blob([bytes], mimeType ?? 'audio/mpeg'); + final blob = web.Blob( + [Uint8List.fromList(bytes)], // ignore: argument_type_not_assignable + web.BlobPropertyBag(type: mimeType ?? 'audio/mpeg'), + ); final blobUrl = web.URL.createObjectURL(blob); _audioElement = web.HTMLAudioElement(); @@ -128,7 +132,6 @@ class AudioPlayer { web.URL.revokeObjectURL(_blobUrl!); _blobUrl = null; } - } _audioElement = null; _positionController.close(); _durationController.close();