Enhance video file handling in file explorer; implement viewer session for authenticated URL and improve error handling for missing file ID.

This commit is contained in:
Leon Bösche
2026-01-14 18:10:40 +01:00
parent 92a33adae5
commit 0f2aa9c49f

View File

@@ -901,15 +901,26 @@ class _FileExplorerState extends State<FileExplorer> {
if (file.type == FileType.folder) { if (file.type == FileType.folder) {
context.read<FileBrowserBloc>().add(NavigateToFolder(file.path)); context.read<FileBrowserBloc>().add(NavigateToFolder(file.path));
} else if (isVideo) { } else if (isVideo) {
// Open video files in video viewer // Open video files in video viewer - use viewer session for authenticated URL
final videoUrl = await getIt<FileService>().getDownloadUrl( if (file.id == null || file.id!.isEmpty) {
widget.orgId, ScaffoldMessenger.of(context).showSnackBar(
file.path, const SnackBar(content: Text('Error: File ID is missing')),
); );
_showVideoViewer( return;
file.name, }
'${getIt<FileService>().baseUrl}$videoUrl', try {
); final session = await getIt<FileService>().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 { } else {
if (file.id == null || file.id!.isEmpty) { if (file.id == null || file.id!.isEmpty) {
ScaffoldMessenger.of(context).showSnackBar( ScaffoldMessenger.of(context).showSnackBar(