1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import 'package:flutter/material.dart';
- import 'package:logging/logging.dart';
- import 'package:photos/models/file/file.dart';
- import 'package:photos/models/file/file_type.dart';
- import "package:photos/ui/viewer/file/video_widget.dart";
- import "package:photos/ui/viewer/file/zoomable_live_image_new.dart";
- class FileWidget extends StatelessWidget {
- final EnteFile file;
- final String? tagPrefix;
- final Function(bool)? shouldDisableScroll;
- final Function(bool)? playbackCallback;
- final BoxDecoration? backgroundDecoration;
- final bool? autoPlay;
- const FileWidget(
- this.file, {
- this.autoPlay,
- this.shouldDisableScroll,
- this.playbackCallback,
- this.tagPrefix,
- this.backgroundDecoration,
- Key? key,
- }) : super(key: key);
- @override
- Widget build(BuildContext context) {
- // Specify key to ensure that the widget is rebuilt when the file changes
- // Before changing this, ensure that file deletes are handled properly
- final String fileKey = "file_${file.generatedID}";
- if (file.fileType == FileType.livePhoto ||
- file.fileType == FileType.image) {
- return ZoomableLiveImageNew(
- file,
- shouldDisableScroll: shouldDisableScroll,
- tagPrefix: tagPrefix,
- backgroundDecoration: backgroundDecoration,
- key: key ?? ValueKey(fileKey),
- );
- } else if (file.fileType == FileType.video) {
- return VideoWidget(
- file,
- autoPlay: autoPlay ?? false, // Autoplay if it was opened directly
- tagPrefix: tagPrefix,
- playbackCallback: playbackCallback,
- );
- // return VideoWidgetNew(
- // file,
- // tagPrefix: tagPrefix,
- // );
- } else {
- Logger('FileWidget').severe('unsupported file type ${file.fileType}');
- return const Icon(Icons.error);
- }
- }
- }
|