From 0f2aa9c49ff9c9e837b4c04639f229b24567ac9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20B=C3=B6sche?= Date: Wed, 14 Jan 2026 18:10:40 +0100 Subject: [PATCH] Enhance video file handling in file explorer; implement viewer session for authenticated URL and improve error handling for missing file ID. --- b0esche_cloud/lib/pages/file_explorer.dart | 29 +++++++++++++++------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/b0esche_cloud/lib/pages/file_explorer.dart b/b0esche_cloud/lib/pages/file_explorer.dart index 590bc16..458ab13 100644 --- a/b0esche_cloud/lib/pages/file_explorer.dart +++ b/b0esche_cloud/lib/pages/file_explorer.dart @@ -901,15 +901,26 @@ class _FileExplorerState extends State { if (file.type == FileType.folder) { context.read().add(NavigateToFolder(file.path)); } else if (isVideo) { - // Open video files in video viewer - final videoUrl = await getIt().getDownloadUrl( - widget.orgId, - file.path, - ); - _showVideoViewer( - file.name, - '${getIt().baseUrl}$videoUrl', - ); + // Open video files in video viewer - use viewer session for authenticated URL + if (file.id == null || file.id!.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Error: File ID is missing')), + ); + return; + } + try { + final session = await getIt().requestViewerSession( + widget.orgId, + file.id!, + ); + _showVideoViewer(file.name, session.viewUrl.toString()); + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error loading video: $e')), + ); + } + } } else { if (file.id == null || file.id!.isEmpty) { ScaffoldMessenger.of(context).showSnackBar(