From a865e651b1f4c445ef7e509752c50813eb625531 Mon Sep 17 00:00:00 2001 From: Kiril Tijsma Date: Wed, 4 Dec 2024 08:36:17 +0100 Subject: [PATCH] feat(media-picker-service): add pickFileOfType method --- CHANGELOG.md | 4 ++++ lib/src/abstracts/media_picker_service.dart | 4 +++- lib/src/inputs/input_file.dart | 1 - lib/src/service/media_picker_service.dart | 26 ++++++++++----------- pubspec.yaml | 2 +- 5 files changed, 21 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 01ffde3..40a3543 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.0 + +- Added 'pickFileOfType' to the MediaPickerService + ## 0.6.6 - Upgraded 'logger' package to ^2.4.0 diff --git a/lib/src/abstracts/media_picker_service.dart b/lib/src/abstracts/media_picker_service.dart index dd0d17e..8e4b0e1 100644 --- a/lib/src/abstracts/media_picker_service.dart +++ b/lib/src/abstracts/media_picker_service.dart @@ -4,7 +4,6 @@ import 'dart:typed_data'; -import 'package:file_picker/file_picker.dart'; import 'package:flutter_media_picker/flutter_media_picker.dart'; abstract class MediaPickerService { @@ -16,4 +15,7 @@ abstract class MediaPickerService { /// Returns [FilePickerResult] based on given [File]. Future pickFile(List fileExtensions); + + /// Returns [FilePickerResult] with type [FileType] based on given [File]. + Future pickFileOfType(FileType type); } diff --git a/lib/src/inputs/input_file.dart b/lib/src/inputs/input_file.dart index 6b99905..4a42c24 100644 --- a/lib/src/inputs/input_file.dart +++ b/lib/src/inputs/input_file.dart @@ -2,7 +2,6 @@ // // SPDX-License-Identifier: BSD-3-Clause -import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:mime/mime.dart'; diff --git a/lib/src/service/media_picker_service.dart b/lib/src/service/media_picker_service.dart index 9298902..ea2ce9e 100644 --- a/lib/src/service/media_picker_service.dart +++ b/lib/src/service/media_picker_service.dart @@ -4,7 +4,6 @@ import 'dart:typed_data'; -import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:flutter_media_picker/flutter_media_picker.dart'; import 'package:image_picker/image_picker.dart'; @@ -12,6 +11,7 @@ import 'package:flutter_media_picker/video_player/video_player_native.dart' if (dart.library.html) 'package:flutter_media_picker/video_player/video_player_web.dart' as vp; import 'package:video_player/video_player.dart'; +export 'package:file_picker/file_picker.dart'; class MediaPickerFileService implements MediaPickerService { late VideoPlayerController controller; @@ -58,17 +58,17 @@ class MediaPickerFileService implements MediaPickerService { } @override - Future pickFile(List extensions) async { - var file = await FilePicker.platform.pickFiles( - withData: true, - type: FileType.custom, - allowedExtensions: extensions, - ); + Future pickFile(List extensions) async => + FilePicker.platform.pickFiles( + withData: true, + type: FileType.custom, + allowedExtensions: extensions, + ); - if (file != null) { - return file; - } - - return Future.value(null); - } + @override + Future pickFileOfType(FileType type) async => + FilePicker.platform.pickFiles( + withData: true, + type: type, + ); } diff --git a/pubspec.yaml b/pubspec.yaml index 4ab9463..fb8c68b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_media_picker description: A new Flutter package project. -version: 0.6.6 +version: 0.7.0 homepage: https://github.com/Iconica-Development/flutter_media_picker publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub