From 4c49c8831ec0d4bc9a2808e72f5cc16cc0403239 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Sun, 4 Aug 2019 19:22:52 +0900 Subject: [PATCH] split files --- lib/widgets/fullscreen/image_page.dart | 49 +---------- .../{overlay.dart => overlay_bottom.dart} | 83 +------------------ lib/widgets/fullscreen/overlay_top.dart | 82 ++++++++++++++++++ lib/widgets/fullscreen/video.dart | 49 +++++++++++ 4 files changed, 135 insertions(+), 128 deletions(-) rename lib/widgets/fullscreen/{overlay.dart => overlay_bottom.dart} (70%) create mode 100644 lib/widgets/fullscreen/overlay_top.dart create mode 100644 lib/widgets/fullscreen/video.dart diff --git a/lib/widgets/fullscreen/image_page.dart b/lib/widgets/fullscreen/image_page.dart index edc63efae..012b4c304 100644 --- a/lib/widgets/fullscreen/image_page.dart +++ b/lib/widgets/fullscreen/image_page.dart @@ -3,15 +3,15 @@ import 'dart:math'; import 'package:aves/model/image_entry.dart'; import 'package:aves/widgets/fullscreen/info_page.dart'; -import 'package:aves/widgets/fullscreen/overlay.dart'; -import 'package:chewie/chewie.dart'; +import 'package:aves/widgets/fullscreen/overlay_bottom.dart'; +import 'package:aves/widgets/fullscreen/overlay_top.dart'; +import 'package:aves/widgets/fullscreen/video.dart'; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter/services.dart'; import 'package:photo_view/photo_view.dart'; import 'package:photo_view/photo_view_gallery.dart'; import 'package:screen/screen.dart'; -import 'package:video_player/video_player.dart'; class FullscreenPage extends StatefulWidget { final List entries; @@ -244,46 +244,3 @@ class ImagePageState extends State with AutomaticKeepAliveClientMixin @override bool get wantKeepAlive => true; } - -class AvesVideo extends StatefulWidget { - final ImageEntry entry; - - const AvesVideo({Key key, this.entry}) : super(key: key); - - @override - State createState() => AvesVideoState(); -} - -class AvesVideoState extends State { - VideoPlayerController videoPlayerController; - ChewieController chewieController; - - ImageEntry get entry => widget.entry; - - @override - void initState() { - super.initState(); - videoPlayerController = VideoPlayerController.file( - File(entry.path), - ); - chewieController = ChewieController( - videoPlayerController: videoPlayerController, - aspectRatio: entry.aspectRatio, - autoInitialize: true, - ); - } - - @override - void dispose() { - videoPlayerController.dispose(); - chewieController.dispose(); - super.dispose(); - } - - @override - Widget build(BuildContext context) { - return Chewie( - controller: chewieController, - ); - } -} diff --git a/lib/widgets/fullscreen/overlay.dart b/lib/widgets/fullscreen/overlay_bottom.dart similarity index 70% rename from lib/widgets/fullscreen/overlay.dart rename to lib/widgets/fullscreen/overlay_bottom.dart index 16679bbb2..06577e39a 100644 --- a/lib/widgets/fullscreen/overlay.dart +++ b/lib/widgets/fullscreen/overlay_bottom.dart @@ -1,66 +1,12 @@ import 'dart:math'; import 'dart:ui'; -import 'package:aves/model/android_app_service.dart'; import 'package:aves/model/image_entry.dart'; import 'package:aves/model/metadata_service.dart'; import 'package:aves/widgets/common/blurred.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; -const kOverlayBackground = Colors.black26; - -class FullscreenTopOverlay extends StatelessWidget { - final List entries; - final int index; - final Animation scale; - final EdgeInsets viewInsets, viewPadding; - - ImageEntry get entry => entries[index]; - - const FullscreenTopOverlay({ - Key key, - this.entries, - this.index, - this.scale, - this.viewInsets, - this.viewPadding, - }) : super(key: key); - - @override - Widget build(BuildContext context) { - return SafeArea( - minimum: (viewInsets ?? EdgeInsets.zero) + (viewPadding ?? EdgeInsets.zero), - child: Padding( - padding: EdgeInsets.all(8.0), - child: Row( - children: [ - OverlayButton( - scale: scale, - child: BackButton(), - ), - Spacer(), - OverlayButton( - scale: scale, - child: IconButton( - icon: Icon(Icons.share), - onPressed: share, - tooltip: 'Share', - ), - ), - ], - ), - ), - ); - } - - delete() {} - - share() { - AndroidAppService.share(entry.uri, entry.mimeType); - } -} - class FullscreenBottomOverlay extends StatefulWidget { final List entries; final int index; @@ -111,7 +57,7 @@ class _FullscreenBottomOverlayState extends State { return IgnorePointer( child: BlurredRect( child: Container( - color: kOverlayBackground, + color: Colors.black26, padding: viewInsets + viewPadding.copyWith(top: 0), child: Padding( padding: innerPadding, @@ -204,30 +150,3 @@ class _FullscreenBottomOverlayContent extends StatelessWidget { ); } } - -class OverlayButton extends StatelessWidget { - final Animation scale; - final Widget child; - - const OverlayButton({Key key, this.scale, this.child}) : super(key: key); - - @override - Widget build(BuildContext context) { - return ScaleTransition( - scale: scale, - child: BlurredOval( - child: Material( - type: MaterialType.circle, - color: kOverlayBackground, - child: Ink( - decoration: BoxDecoration( - border: Border.all(color: Colors.white30, width: 0.5), - shape: BoxShape.circle, - ), - child: child, - ), - ), - ), - ); - } -} diff --git a/lib/widgets/fullscreen/overlay_top.dart b/lib/widgets/fullscreen/overlay_top.dart new file mode 100644 index 000000000..05ccfd091 --- /dev/null +++ b/lib/widgets/fullscreen/overlay_top.dart @@ -0,0 +1,82 @@ +import 'package:aves/model/android_app_service.dart'; +import 'package:aves/model/image_entry.dart'; +import 'package:aves/widgets/common/blurred.dart'; +import 'package:flutter/material.dart'; + +class FullscreenTopOverlay extends StatelessWidget { + final List entries; + final int index; + final Animation scale; + final EdgeInsets viewInsets, viewPadding; + + ImageEntry get entry => entries[index]; + + const FullscreenTopOverlay({ + Key key, + this.entries, + this.index, + this.scale, + this.viewInsets, + this.viewPadding, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return SafeArea( + minimum: (viewInsets ?? EdgeInsets.zero) + (viewPadding ?? EdgeInsets.zero), + child: Padding( + padding: EdgeInsets.all(8.0), + child: Row( + children: [ + OverlayButton( + scale: scale, + child: BackButton(), + ), + Spacer(), + OverlayButton( + scale: scale, + child: IconButton( + icon: Icon(Icons.share), + onPressed: share, + tooltip: 'Share', + ), + ), + ], + ), + ), + ); + } + + delete() {} + + share() { + AndroidAppService.share(entry.uri, entry.mimeType); + } +} + +class OverlayButton extends StatelessWidget { + final Animation scale; + final Widget child; + + const OverlayButton({Key key, this.scale, this.child}) : super(key: key); + + @override + Widget build(BuildContext context) { + return ScaleTransition( + scale: scale, + child: BlurredOval( + child: Material( + type: MaterialType.circle, + color: Colors.black26, + child: Ink( + decoration: BoxDecoration( + border: Border.all(color: Colors.white30, width: 0.5), + shape: BoxShape.circle, + ), + child: child, + ), + ), + ), + ); + } +} diff --git a/lib/widgets/fullscreen/video.dart b/lib/widgets/fullscreen/video.dart new file mode 100644 index 000000000..a882bd254 --- /dev/null +++ b/lib/widgets/fullscreen/video.dart @@ -0,0 +1,49 @@ +import 'dart:io'; + +import 'package:aves/model/image_entry.dart'; +import 'package:chewie/chewie.dart'; +import 'package:flutter/material.dart'; +import 'package:video_player/video_player.dart'; + +class AvesVideo extends StatefulWidget { + final ImageEntry entry; + + const AvesVideo({Key key, this.entry}) : super(key: key); + + @override + State createState() => AvesVideoState(); +} + +class AvesVideoState extends State { + VideoPlayerController videoPlayerController; + ChewieController chewieController; + + ImageEntry get entry => widget.entry; + + @override + void initState() { + super.initState(); + videoPlayerController = VideoPlayerController.file( + File(entry.path), + ); + chewieController = ChewieController( + videoPlayerController: videoPlayerController, + aspectRatio: entry.aspectRatio, + autoInitialize: true, + ); + } + + @override + void dispose() { + videoPlayerController.dispose(); + chewieController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Chewie( + controller: chewieController, + ); + } +}