Compare commits

..

No commits in common. "master" and "0.6.6" have entirely different histories.

9 changed files with 23 additions and 49 deletions

3
.fvmrc
View file

@ -1,3 +0,0 @@
{
"flutter": "3.24.3"
}

View file

@ -12,4 +12,3 @@ jobs:
permissions: write-all permissions: write-all
with: with:
subfolder: "." subfolder: "."
flutter_version: "3.24.3"

3
.gitignore vendored
View file

@ -19,7 +19,7 @@ migrate_working_dir/
# The .vscode folder contains launch configuration and tasks you configure in # The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line # VS Code which you may wish to be included in version control, so this line
# is commented out by default. # is commented out by default.
.vscode/ #.vscode/
# Flutter/Dart/Pub related # Flutter/Dart/Pub related
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. # Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
@ -33,6 +33,7 @@ build/
# FVM Version Cache # FVM Version Cache
.fvm/ .fvm/
.fvmrc
.metadata .metadata
example/ios example/ios

View file

@ -1,15 +1,3 @@
## 1.0.1
- Add imagesource and quality attributes when picking file
## 1.0.0
- Use modern flutter version as minimal version support
## 0.7.0
- Added 'pickFileOfType' to the MediaPickerService
## 0.6.6 ## 0.6.6
- Upgraded 'logger' package to ^2.4.0 - Upgraded 'logger' package to ^2.4.0

View file

@ -4,21 +4,16 @@
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:file_picker/file_picker.dart';
import 'package:flutter_media_picker/flutter_media_picker.dart'; import 'package:flutter_media_picker/flutter_media_picker.dart';
abstract class MediaPickerService { abstract class MediaPickerService {
/// Returns [MediaResult] based on given [ImageSource]. /// Returns [MediaResult] based on given [ImageSource].
Future<MediaResult?> pickImageFile({ Future<MediaResult?> pickImageFile();
ImageSource source = ImageSource.camera,
int quality = 20,
});
/// Returns [Uint8List] based on given [VideoSource]. /// Returns [Uint8List] based on given [VideoSource].
Future<MediaResult?> pickVideoFile(); Future<MediaResult?> pickVideoFile();
/// Returns [FilePickerResult] based on given [File]. /// Returns [FilePickerResult] based on given [File].
Future<FilePickerResult?> pickFile(List<String> fileExtensions); Future<FilePickerResult?> pickFile(List<String> fileExtensions);
/// Returns [FilePickerResult] with type [FileType] based on given [File].
Future<FilePickerResult?> pickFileOfType(FileType type);
} }

View file

@ -2,6 +2,7 @@
// //
// SPDX-License-Identifier: BSD-3-Clause // SPDX-License-Identifier: BSD-3-Clause
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mime/mime.dart'; import 'package:mime/mime.dart';

View file

@ -4,6 +4,7 @@
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_media_picker/flutter_media_picker.dart'; import 'package:flutter_media_picker/flutter_media_picker.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
@ -11,20 +12,13 @@ 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' if (dart.library.html) 'package:flutter_media_picker/video_player/video_player_web.dart'
as vp; as vp;
import 'package:video_player/video_player.dart'; import 'package:video_player/video_player.dart';
export 'package:file_picker/file_picker.dart';
class MediaPickerFileService implements MediaPickerService { class MediaPickerFileService implements MediaPickerService {
late VideoPlayerController controller; late VideoPlayerController controller;
@override @override
Future<MediaResult?> pickImageFile({ Future<MediaResult?> pickImageFile() async {
ImageSource source = ImageSource.camera, var image = await ImagePicker().pickImage(source: ImageSource.camera);
int quality = 20,
}) async {
var image = await ImagePicker().pickImage(
source: source,
imageQuality: quality,
);
if (image != null) { if (image != null) {
return MediaResult( return MediaResult(
@ -64,17 +58,17 @@ class MediaPickerFileService implements MediaPickerService {
} }
@override @override
Future<FilePickerResult?> pickFile(List<String> extensions) async => Future<FilePickerResult?> pickFile(List<String> extensions) async {
FilePicker.platform.pickFiles( var file = await FilePicker.platform.pickFiles(
withData: true, withData: true,
type: FileType.custom, type: FileType.custom,
allowedExtensions: extensions, allowedExtensions: extensions,
); );
@override if (file != null) {
Future<FilePickerResult?> pickFileOfType(FileType type) async => return file;
FilePicker.platform.pickFiles( }
withData: true,
type: type, return Future.value(null);
); }
} }

View file

@ -4,4 +4,3 @@
export './audio_service.dart'; export './audio_service.dart';
export './media_picker_service.dart'; export './media_picker_service.dart';
export 'package:image_picker/image_picker.dart' show ImageSource;

View file

@ -1,13 +1,13 @@
name: flutter_media_picker name: flutter_media_picker
description: A new Flutter package project. description: A new Flutter package project.
version: 1.0.1 version: 0.6.6
homepage: https://github.com/Iconica-Development/flutter_media_picker homepage: https://github.com/Iconica-Development/flutter_media_picker
publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub
environment: environment:
sdk: ">=3.5.3 <4.0.0" sdk: ">=3.0.0 <4.0.0"
flutter: ">=3.24.3" flutter: ">=1.17.0"
dependencies: dependencies:
flutter: flutter: