files formatted

This commit is contained in:
Furkan 2022-12-30 05:18:18 +03:00
parent e3a77d7c6a
commit fff9219bea
35 changed files with 178 additions and 157 deletions

View File

@ -1 +1 @@
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"permission_handler_apple","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler_apple-9.0.7\\\\","native_build":true,"dependencies":[]},{"name":"photo_gallery","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\photo_gallery-1.1.1\\\\","native_build":true,"dependencies":[]},{"name":"video_player_avfoundation","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player_avfoundation-2.3.8\\\\","native_build":true,"dependencies":[]},{"name":"video_thumbnail","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_thumbnail-0.5.3\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"permission_handler_android","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler_android-10.2.0\\\\","native_build":true,"dependencies":[]},{"name":"photo_gallery","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\photo_gallery-1.1.1\\\\","native_build":true,"dependencies":[]},{"name":"video_player_android","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player_android-2.3.10\\\\","native_build":true,"dependencies":[]},{"name":"video_thumbnail","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_thumbnail-0.5.3\\\\","native_build":true,"dependencies":[]}],"macos":[],"linux":[],"windows":[{"name":"permission_handler_windows","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler_windows-0.1.2\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"video_player_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player_web-2.0.13\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]},{"name":"photo_gallery","dependencies":[]},{"name":"video_player","dependencies":["video_player_android","video_player_avfoundation","video_player_web"]},{"name":"video_player_android","dependencies":[]},{"name":"video_player_avfoundation","dependencies":[]},{"name":"video_player_web","dependencies":[]},{"name":"video_thumbnail","dependencies":[]}],"date_created":"2022-12-29 12:11:29.448664","version":"3.3.9"}
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"permission_handler_apple","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler_apple-9.0.7\\\\","native_build":true,"dependencies":[]},{"name":"photo_gallery","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\photo_gallery-1.1.1\\\\","native_build":true,"dependencies":[]},{"name":"video_player_avfoundation","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player_avfoundation-2.3.8\\\\","native_build":true,"dependencies":[]},{"name":"video_thumbnail","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_thumbnail-0.5.3\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"permission_handler_android","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler_android-10.2.0\\\\","native_build":true,"dependencies":[]},{"name":"photo_gallery","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\photo_gallery-1.1.1\\\\","native_build":true,"dependencies":[]},{"name":"video_player_android","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player_android-2.3.10\\\\","native_build":true,"dependencies":[]},{"name":"video_thumbnail","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_thumbnail-0.5.3\\\\","native_build":true,"dependencies":[]}],"macos":[],"linux":[],"windows":[{"name":"permission_handler_windows","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler_windows-0.1.2\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"video_player_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player_web-2.0.13\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]},{"name":"photo_gallery","dependencies":[]},{"name":"video_player","dependencies":["video_player_android","video_player_avfoundation","video_player_web"]},{"name":"video_player_android","dependencies":[]},{"name":"video_player_avfoundation","dependencies":[]},{"name":"video_player_web","dependencies":[]},{"name":"video_thumbnail","dependencies":[]}],"date_created":"2022-12-30 05:16:13.636734","version":"3.3.9"}

View File

@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/container.dart';
import 'package:flutter/src/widgets/framework.dart';
// ignore: depend_on_referenced_packages
import 'package:gallery_picker/gallery_picker.dart';
class BottomSheetExample extends StatefulWidget {
@ -23,7 +22,7 @@ class _BottomSheetExampleState extends State<BottomSheetExample> {
this.selectedMedias = selectedMedias;
pageIndex = 0;
if (this.selectedMedias.isNotEmpty) {
Future.delayed(Duration(milliseconds: 500)).then((value) {
Future.delayed(const Duration(milliseconds: 500)).then((value) {
controller.animateToPage(0,
duration: const Duration(milliseconds: 500),
curve: Curves.easeIn);
@ -129,7 +128,7 @@ class _BottomSheetExampleState extends State<BottomSheetExample> {
],
),
),
Spacer(
const Spacer(
flex: 1,
),
TextButton(
@ -141,7 +140,7 @@ class _BottomSheetExampleState extends State<BottomSheetExample> {
size: 40,
),
),
Spacer(
const Spacer(
flex: 1,
),
],

View File

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
// ignore: depend_on_referenced_packages
import 'package:gallery_picker/gallery_picker.dart';
class GalleryPickerExample extends StatefulWidget {
@ -16,7 +17,7 @@ class _GalleryPickerExampleState extends State<GalleryPickerExample> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Pick medias"),
title: const Text("Pick medias"),
),
body: Center(
child: Column(

View File

@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/container.dart';
import 'package:flutter/src/widgets/framework.dart';
// ignore: depend_on_referenced_packages
import 'package:gallery_picker/gallery_picker.dart';
import '../main.dart';
@ -20,12 +19,12 @@ class _MultipleMediasViewState extends State<MultipleMediasView> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Destination Page"),
title: const Text("Destination Page"),
),
body: Column(children: [
const Spacer(),
Text("These are your selected medias"),
Divider(),
const Text("These are your selected medias"),
const Divider(),
Expanded(
flex: 5,
child: Stack(children: [
@ -100,7 +99,7 @@ class _MultipleMediasViewState extends State<MultipleMediasView> {
color: i == pageIndex ? Colors.red : Colors.grey),
child: Text(
(i + 1).toString(),
style: TextStyle(fontSize: 16, color: Colors.black),
style: const TextStyle(fontSize: 16, color: Colors.black),
),
))
]),

View File

@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/container.dart';
import 'package:flutter/src/widgets/framework.dart';
// ignore: depend_on_referenced_packages
import 'package:gallery_picker/gallery_picker.dart';
import '../main.dart';
@ -18,7 +17,7 @@ class _PickMediasWithBuilderState extends State<PickMediasWithBuilder> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Pick Medias With Builder"),
title: const Text("Pick Medias With Builder"),
),
body: Stack(
children: [
@ -36,7 +35,7 @@ class _PickMediasWithBuilderState extends State<PickMediasWithBuilder> {
color: Colors.blue,
borderRadius: BorderRadius.circular(20)),
alignment: Alignment.center,
child: Text(
child: const Text(
'Pick Medias With Builder',
style: TextStyle(color: Colors.white),
),

View File

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/container.dart';
import 'package:flutter/src/widgets/framework.dart';
// ignore: depend_on_referenced_packages
import 'package:gallery_picker/gallery_picker.dart';
// ignore: depend_on_referenced_packages
import 'package:camera/camera.dart';
import 'package:gallery_picker_example/examples/multiple_medias.dart';
@ -216,7 +216,7 @@ class _WhatsappPickPhotoState extends State<WhatsappPickPhoto> {
setState(() {
anyProcess = true;
});
Future.delayed(Duration(milliseconds: 100))
Future.delayed(const Duration(milliseconds: 100))
.then((value) => setState(() {
anyProcess = false;
}));

View File

@ -1,10 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
// ignore: depend_on_referenced_packages
import 'package:gallery_picker/gallery_picker.dart';
import 'package:gallery_picker_example/examples/pick_medias_with_builder.dart';
import 'examples/gallery_picker_example.dart';
import 'examples/multiple_medias.dart';
import 'examples/whatsapp_pick_photo.dart';
void main() {
runApp(const MyApp());
@ -26,7 +23,9 @@ class MyApp extends StatelessWidget {
/* dark theme settings */
),
themeMode: ThemeMode.dark,
home: const GalleryPickerExample(),
home: const MyHomePage(
title: "Gallery Picker",
),
);
}
}
@ -57,9 +56,8 @@ class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Pick medias"),
title: Text(widget.title),
),
body: Center(
child: Column(
@ -179,7 +177,7 @@ class _MyHomePageState extends State<MyHomePage> {
startWithRecent: true);
if (medias != null) {
setState(() {
this.selectedMedias += medias;
selectedMedias += medias;
});
}
}
@ -227,6 +225,7 @@ class _MyHomePageState extends State<MyHomePage> {
}
Future<void> getGalleryMedia() async {
// ignore: unused_local_variable
GalleryMedia? allmedia = await GalleryPicker.collectGallery;
}
}

View File

@ -5,8 +5,8 @@
// gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
//import 'package:flutter/material.dart';
//import 'package:flutter_test/flutter_test.dart';
void main() {
//testWidgets('Counter increments smoke test', (WidgetTester tester) async {

View File

@ -1,5 +1,6 @@
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:permission_handler/permission_handler.dart';
@ -104,7 +105,7 @@ class PhoneGalleryController extends GetxController {
Future<void> initializeAlbums() async {
GalleryMedia? media = await PhoneGalleryController.collectGallery;
if (media != null) {
this._galleryAlbums = media.albums;
_galleryAlbums = media.albums;
}
_isInitialized = true;
update();
@ -136,8 +137,10 @@ class PhoneGalleryController extends GetxController {
entireGalleryAlbum.thumbnail =
await videoAlbum.getThumbnail(highQuality: true);
} catch (e) {
if (kDebugMode) {
print(e);
}
}
} else if (lastVideoDate == null) {
} else {
if (lastVideoDate.isAfter(lastPhotoDate)) {
@ -146,10 +149,12 @@ class PhoneGalleryController extends GetxController {
await videoAlbum.getThumbnail(highQuality: true);
} catch (e) {
entireGalleryAlbum.thumbnail = null;
if (kDebugMode) {
print(e);
}
}
}
}
for (var file in videoGalleryAlbum.files) {
entireGalleryAlbum.addFile(file);
}

View File

@ -1,3 +1,4 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:photo_gallery/photo_gallery.dart';
@ -57,9 +58,11 @@ class GalleryAlbum {
try {
thumbnail = await album.getThumbnail(highQuality: true);
} catch (e) {
if (kDebugMode) {
print(e);
}
}
}
DateTime? get lastDate {
if (dateCategories.isNotEmpty) {

View File

@ -1,3 +1,5 @@
import 'package:flutter/foundation.dart';
import 'gallery_album.dart';
class GalleryMedia {
@ -10,7 +12,9 @@ class GalleryMedia {
try {
return albums.singleWhere((element) => element.album.name == name);
} catch (e) {
if (kDebugMode) {
print(e);
}
return null;
}
}

View File

@ -1,5 +1,5 @@
import 'package:photo_gallery/photo_gallery.dart';
extension MediumExtension on Medium {
DateTime? get lastDate => this.modifiedDate ?? this.modifiedDate;
DateTime? get lastDate => modifiedDate ?? modifiedDate;
}

View File

@ -1,2 +1 @@
enum Mode { dark, light }

View File

@ -4,14 +4,14 @@ import 'thumbnail_album.dart';
import '../models/mode.dart';
class AlbumCategoriesView extends StatelessWidget {
List<GalleryAlbum> albums;
Function(GalleryAlbum album)? onPressed;
Function(GalleryAlbum album, bool)? onHover;
Function(GalleryAlbum album)? onLongPress;
Function(GalleryAlbum album, bool)? onFocusChange;
final List<GalleryAlbum> albums;
final Function(GalleryAlbum album)? onPressed;
final Function(GalleryAlbum album, bool)? onHover;
final Function(GalleryAlbum album)? onLongPress;
final Function(GalleryAlbum album, bool)? onFocusChange;
final Color categoryFailIconColor, categoryBackgroundColor;
final Mode mode;
AlbumCategoriesView(
const AlbumCategoriesView(
{super.key,
required this.albums,
required this.categoryBackgroundColor,

View File

@ -4,11 +4,10 @@ import 'date_category_view.dart';
// ignore: must_be_immutable
class AlbumMediasView extends StatelessWidget {
TextStyle? textStyle;
Widget Function(BuildContext)? onFileErrorBuilder;
AlbumMediasView(
final TextStyle? textStyle;
const AlbumMediasView(
{super.key, required this.galleryAlbum, this.textStyle});
GalleryAlbum galleryAlbum;
final GalleryAlbum galleryAlbum;
@override
Widget build(BuildContext context) {
return Stack(

View File

@ -5,15 +5,15 @@ import '/models/gallery_album.dart';
import 'thumbnail_media.dart';
class DateCategoryWiew extends StatelessWidget {
TextStyle? textStyle;
final TextStyle? textStyle;
final Widget Function(MediaFile media, BuildContext context)?
onMediaErrorBuilder;
DateCategoryWiew(
final DateCategory category;
const DateCategoryWiew(
{super.key,
required this.category,
this.textStyle,
this.onMediaErrorBuilder});
DateCategory category;
int getRowCount() {
if (category.files.length % 4 != 0) {

View File

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
import '../models/media_file.dart';
class PhotoProvider extends StatefulWidget {
@ -16,15 +15,14 @@ class PhotoProvider extends StatefulWidget {
});
@override
_PhotoProviderState createState() => _PhotoProviderState();
State<PhotoProvider> createState() => _PhotoProviderState();
}
class _PhotoProviderState extends State<PhotoProvider> {
VideoPlayerController? _controller;
late MediaFile media;
late MediaFile _media;
@override
void initState() {
media = widget.media;
_media = widget.media;
WidgetsBinding.instance.addPostFrameCallback((_) {
initMedia();
});
@ -32,28 +30,27 @@ class _PhotoProviderState extends State<PhotoProvider> {
}
Future<void> initMedia() async {
await media.getData();
await _media.getData();
if (mounted) {
setState(() {});
}
}
bool anyProcess = false;
@override
Widget build(BuildContext context) {
if (media != widget.media) {
media = widget.media;
if (media.data == null) {
if (_media != widget.media) {
_media = widget.media;
if (_media.data == null) {
initMedia();
}
}
return media.data == null
? Container(
return _media.data == null
? SizedBox(
width: widget.width,
height: widget.height,
)
: Image.memory(
media.data!,
_media.data!,
width: widget.width,
height: widget.height,
fit: widget.fit,

View File

@ -8,7 +8,12 @@ class ThumbnailAlbum extends StatelessWidget {
final GalleryAlbum album;
final Color failIconColor, backgroundColor;
final Mode mode;
ThumbnailAlbum({super.key, required this.album, required this.failIconColor,required this.mode,required this.backgroundColor});
const ThumbnailAlbum(
{super.key,
required this.album,
required this.failIconColor,
required this.mode,
required this.backgroundColor});
Color adjustFailedBgColor() {
if (mode == Mode.dark) {

View File

@ -7,7 +7,11 @@ class ThumbnailMedia extends StatelessWidget {
final MediaFile media;
final bool noIcon;
final Widget Function(MediaFile media, BuildContext context)? onErrorBuilder;
const ThumbnailMedia({super.key, required this.media, this.onErrorBuilder,this.noIcon=false});
const ThumbnailMedia(
{super.key,
required this.media,
this.onErrorBuilder,
this.noIcon = false});
@override
Widget build(BuildContext context) {

View File

@ -1,4 +1,5 @@
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
import '../models/media_file.dart';
@ -8,19 +9,20 @@ class VideoProvider extends StatefulWidget {
final double? width, height;
const VideoProvider({
super.key,
required this.media,
this.width,
this.height,
});
@override
_VideoProviderState createState() => _VideoProviderState();
State<VideoProvider> createState() => _VideoProviderState();
}
class _VideoProviderState extends State<VideoProvider> {
VideoPlayerController? _controller;
File? _file;
late MediaFile media;
@override
void initState() {
media = widget.media;
@ -42,9 +44,11 @@ class _VideoProviderState extends State<VideoProvider> {
setState(() {});
});
} catch (e) {
if (kDebugMode) {
print("Failed : $e");
}
}
}
@override
void dispose() {
@ -68,7 +72,7 @@ class _VideoProviderState extends State<VideoProvider> {
initMedia();
}
return _controller == null || !_controller!.value.isInitialized
? Container(
? SizedBox(
width: widget.width,
height: widget.height,
)

View File

@ -4,11 +4,10 @@ import '../../models/config.dart';
import '../../../controller/gallery_controller.dart';
class AlbumCategoriesView extends StatelessWidget {
PhoneGalleryController controller;
late Config config;
AlbumCategoriesView(this.controller, {super.key}) {
config = controller.config;
}
final PhoneGalleryController controller;
final Config config;
AlbumCategoriesView(this.controller, {super.key})
: config = controller.config;
@override
Widget build(BuildContext context) {
return LayoutBuilder(

View File

@ -5,10 +5,10 @@ import '../../controller/gallery_controller.dart';
import '../gallery_picker_view/tappable_appbar.dart';
class AlbumAppBar extends StatelessWidget with PreferredSizeWidget {
PhoneGalleryController controller;
BottomSheetController? bottomSheetController;
GalleryAlbum album;
AlbumAppBar(
final PhoneGalleryController controller;
final BottomSheetController? bottomSheetController;
final GalleryAlbum album;
const AlbumAppBar(
{super.key,
required this.bottomSheetController,
required this.album,
@ -69,5 +69,5 @@ class AlbumAppBar extends StatelessWidget with PreferredSizeWidget {
}
@override
Size get preferredSize => Size.fromHeight(48);
Size get preferredSize => const Size.fromHeight(48);
}

View File

@ -4,16 +4,15 @@ import '../../../controller/gallery_controller.dart';
import 'date_category_view.dart';
import 'selected_medias_view.dart';
// ignore: must_be_immutable
class AlbumMediasView extends StatelessWidget {
PhoneGalleryController controller;
bool singleMedia;
AlbumMediasView(
final PhoneGalleryController controller;
final bool singleMedia;
const AlbumMediasView(
{super.key,
required this.galleryAlbum,
required this.controller,
required this.singleMedia});
GalleryAlbum galleryAlbum;
final GalleryAlbum galleryAlbum;
@override
Widget build(BuildContext context) {
return Stack(

View File

@ -7,16 +7,16 @@ import '../../models/config.dart';
import 'album_medias_view.dart';
class AlbumPage extends StatelessWidget {
bool singleMedia;
AlbumPage(
final bool singleMedia;
final PhoneGalleryController controller;
final BottomSheetController? bottomSheetController;
final GalleryAlbum album;
const AlbumPage(
{super.key,
required this.album,
required this.controller,
required this.singleMedia,
required this.bottomSheetController});
PhoneGalleryController controller;
BottomSheetController? bottomSheetController;
GalleryAlbum album;
@override
Widget build(BuildContext context) {
Config config = controller.config;

View File

@ -5,14 +5,15 @@ import '/models/gallery_album.dart';
import 'media_view.dart';
class DateCategoryWiew extends StatelessWidget {
PhoneGalleryController controller;
bool singleMedia;
DateCategoryWiew(
final PhoneGalleryController controller;
final bool singleMedia;
final DateCategory category;
const DateCategoryWiew(
{super.key,
required this.category,
required this.controller,
required this.singleMedia});
DateCategory category;
int getRowCount() {
if (category.files.length % 4 != 0) {

View File

@ -7,9 +7,9 @@ import '../thumbnail_media_file.dart';
class MediaView extends StatelessWidget {
final MediaFile file;
PhoneGalleryController controller;
bool singleMedia;
MediaView(this.file,
final PhoneGalleryController controller;
final bool singleMedia;
const MediaView(this.file,
{super.key, required this.controller, required this.singleMedia});
@override
Widget build(BuildContext context) {

View File

@ -6,16 +6,14 @@ import '../../controller/gallery_controller.dart';
import '../../models/config.dart';
class SelectedMediasView extends StatelessWidget {
PhoneGalleryController controller;
late Config config;
SelectedMediasView({super.key, required this.controller}) {
config = controller.config;
}
final PhoneGalleryController controller;
final Config config;
SelectedMediasView({super.key, required this.controller})
: config = controller.config;
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height - 167;
return Container(
color: config.bottomSheetColor,
width: width,
@ -41,11 +39,10 @@ class SelectedMediasView extends StatelessWidget {
fit: BoxFit.fill,
image: ThumbnailProvider(
mediumId: selectedMedia.medium.id,
mediumType:
selectedMedia.medium.mediumType,
mediumType: selectedMedia.medium.mediumType,
highQuality: true,
))),
child: SizedBox(
child: const SizedBox(
width: 47,
height: 47,
),

View File

@ -24,8 +24,10 @@ class BottomSheetLayout extends StatefulWidget {
this.initSelectedMedias,
this.multipleMediasBuilder,
this.startWithRecent = true}) {
if(initSelectedMedias!=null&&GetInstance().isRegistered<PhoneGalleryController>()){
Get.find<PhoneGalleryController>().updateSelectedFiles(initSelectedMedias!);
if (initSelectedMedias != null &&
GetInstance().isRegistered<PhoneGalleryController>()) {
Get.find<PhoneGalleryController>()
.updateSelectedFiles(initSelectedMedias!);
}
}
@ -54,7 +56,7 @@ class _BottomSheetLayoutState extends State<BottomSheetLayout> {
if (renderBox.size.height > 200 &&
!sheetController.isExpanded &&
!viewCollapsedPicker) {
await Future.delayed(Duration(milliseconds: 100));
await Future.delayed(const Duration(milliseconds: 100));
controller.appBarTapping = false;
setState(() {
viewCollapsedPicker = true;
@ -63,7 +65,7 @@ class _BottomSheetLayoutState extends State<BottomSheetLayout> {
if (viewCollapsedPicker) {
viewCollapsedPicker = false;
controller.appBarTapping = false;
await Future.delayed(Duration(milliseconds: 10));
await Future.delayed(const Duration(milliseconds: 10));
setState(() {});
}
}
@ -131,7 +133,7 @@ class ViewCollapsed extends StatelessWidget {
final GalleryPickerView picker;
final bool viewPicker;
final Function(BuildContext context) onBuild;
ViewCollapsed({
const ViewCollapsed({
super.key,
required this.picker,
required this.onBuild,

View File

@ -12,17 +12,17 @@ import 'picker_appbar.dart';
import 'reload_gallery.dart';
class GalleryPickerView extends StatefulWidget {
Config? config;
Function(List<MediaFile> selectedMedias) onSelect;
Widget Function(String tag, MediaFile media, BuildContext context)?
final Config? config;
final Function(List<MediaFile> selectedMedias) onSelect;
final Widget Function(String tag, MediaFile media, BuildContext context)?
heroBuilder;
Widget Function(List<MediaFile> medias, BuildContext context)?
final Widget Function(List<MediaFile> medias, BuildContext context)?
multipleMediasBuilder;
bool startWithRecent;
BottomSheetBarController? sheetController;
List<MediaFile>? initSelectedMedias;
bool singleMedia;
GalleryPickerView(
final bool startWithRecent;
final BottomSheetBarController? sheetController;
final List<MediaFile>? initSelectedMedias;
final bool singleMedia;
const GalleryPickerView(
{super.key,
this.config,
required this.onSelect,
@ -181,8 +181,7 @@ class _GalleryPickerState extends State<GalleryPickerView> {
? AlbumMediasView(
galleryAlbum: controller.recent!,
controller: controller,
singleMedia:widget.singleMedia
)
singleMedia: widget.singleMedia)
: const Center(
child: CircularProgressIndicator(
color: Colors.grey,

View File

@ -5,9 +5,9 @@ import '../../controller/gallery_controller.dart';
import 'tappable_appbar.dart';
class PickerAppBar extends StatelessWidget with PreferredSizeWidget {
PhoneGalleryController controller;
BottomSheetController? bottomSheetController;
PickerAppBar(
final PhoneGalleryController controller;
final BottomSheetController? bottomSheetController;
const PickerAppBar(
{super.key,
required this.bottomSheetController,
required this.controller});
@ -25,7 +25,7 @@ class PickerAppBar extends StatelessWidget with PreferredSizeWidget {
bottomSheetController!.close();
} else {
Navigator.pop(context);
await Future.delayed(Duration(milliseconds: 500));
await Future.delayed(const Duration(milliseconds: 500));
controller.disposeController();
}
},
@ -67,5 +67,5 @@ class PickerAppBar extends StatelessWidget with PreferredSizeWidget {
}
@override
Size get preferredSize => Size.fromHeight(48);
Size get preferredSize => const Size.fromHeight(48);
}

View File

@ -2,11 +2,10 @@ import 'package:flutter/material.dart';
import '/gallery_picker.dart';
class ReloadGallery extends StatelessWidget {
late Config config;
Function() onpressed;
ReloadGallery(Config? config, {super.key, required this.onpressed}) {
this.config = config ?? Config();
}
final Config config;
final Function() onpressed;
ReloadGallery(Config? config, {super.key, required this.onpressed})
: config = config ?? Config();
@override
Widget build(BuildContext context) {
@ -19,7 +18,7 @@ class ReloadGallery extends StatelessWidget {
),
child: Container(
height: 50,
padding: EdgeInsets.symmetric(horizontal: 30, vertical: 10),
padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 10),
decoration: BoxDecoration(
color: Colors.blue, borderRadius: BorderRadius.circular(10)),
child: const Center(

View File

@ -3,9 +3,10 @@ import 'package:get/get.dart';
import '../../controller/bottom_sheet_controller.dart';
class TappableAppbar extends StatelessWidget {
BottomSheetController? controller;
Widget child;
TappableAppbar({super.key, required this.controller,required this.child});
final BottomSheetController? controller;
final Widget child;
const TappableAppbar(
{super.key, required this.controller, required this.child});
@override
Widget build(BuildContext context) {

View File

@ -25,6 +25,7 @@ class GridViewStatic extends StatelessWidget {
Widget build(BuildContext context) {
return verticalView();
}
Widget horizontalView() {
return SizedBox(
height: size,
@ -38,7 +39,9 @@ class GridViewStatic extends StatelessWidget {
height: size / crossAxisCount,
child: Row(
children: [
for (int j = i; j < i + (children.length~/crossAxisCount)+1; j++)
for (int j = i;
j < i + (children.length ~/ crossAxisCount) + 1;
j++)
j < children.length
? Expanded(
child: Padding(
@ -48,7 +51,7 @@ class GridViewStatic extends StatelessWidget {
: 0),
child: children[j],
))
: Spacer()
: const Spacer()
],
),
),
@ -82,7 +85,7 @@ class GridViewStatic extends StatelessWidget {
: 0),
child: children[j],
))
: Spacer()
: const Spacer()
],
),
),

View File

@ -9,7 +9,11 @@ class ThumbnailMediaFile extends StatelessWidget {
final MediaFile file;
final Color failIconColor;
final Config config;
const ThumbnailMediaFile({super.key, required this.file, required this.failIconColor,required this.config});
const ThumbnailMediaFile(
{super.key,
required this.file,
required this.failIconColor,
required this.config});
Color adjustFailedBgColor() {
if (config.mode == Mode.dark) {

View File

@ -1,4 +1,4 @@
import 'package:flutter_test/flutter_test.dart';
//import 'package:flutter_test/flutter_test.dart';
void main() {
//test('adds one to input values', () {