1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import 'package:flutter/material.dart';
- import 'package:flutter/widgets.dart';
- import 'package:logging/logging.dart';
- import 'package:photos/models/file.dart';
- import 'package:photos/models/file_type.dart';
- import 'package:photos/ui/viewer/file/video_widget.dart';
- import 'package:photos/ui/viewer/file/zoomable_image.dart';
- import 'package:photos/ui/viewer/file/zoomable_live_image.dart';
- class FileWidget extends StatelessWidget {
- final File 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) {
- if (file.fileType == FileType.image) {
- return ZoomableImage(
- file,
- shouldDisableScroll: shouldDisableScroll,
- tagPrefix: tagPrefix,
- backgroundDecoration: backgroundDecoration,
- );
- } else if (file.fileType == FileType.livePhoto) {
- return ZoomableLiveImage(
- file,
- shouldDisableScroll: shouldDisableScroll,
- tagPrefix: tagPrefix,
- backgroundDecoration: backgroundDecoration,
- );
- } else if (file.fileType == FileType.video) {
- return VideoWidget(
- file,
- autoPlay: autoPlay, // Autoplay if it was opened directly
- tagPrefix: tagPrefix,
- playbackCallback: playbackCallback,
- );
- } else {
- Logger('FileWidget').severe('unsupported file type ${file.fileType}');
- return Icon(Icons.error);
- }
- }
- }
|