mirror of
https://github.com/Iconica-Development/flutter_image_picker.git
synced 2025-05-18 03:33:44 +02:00
feat: add support for handling errors
This commit is contained in:
parent
004f0067a4
commit
a6f50c54d8
4 changed files with 27 additions and 7 deletions
|
@ -45,3 +45,6 @@
|
|||
* Added title options to theme.
|
||||
* updated iconica_analysis dependency.
|
||||
* Updated default theme.
|
||||
|
||||
# 4.1.0
|
||||
* Added support for handling errors when calling `pickImage`.
|
||||
|
|
|
@ -116,7 +116,13 @@ class ImagePickerExampleHomePageState
|
|||
Uint8List? imageInBytes = await showModalBottomSheet<Uint8List?>(
|
||||
context: context,
|
||||
backgroundColor: Colors.white,
|
||||
builder: (BuildContext context) => const ImagePicker());
|
||||
builder: (BuildContext context) => ImagePicker(
|
||||
onError: (error) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(content: Text(error.message ?? "An error occurred")),
|
||||
);
|
||||
},
|
||||
));
|
||||
if (imageInBytes != null) {
|
||||
if (!listEquals(uploadedImage, imageInBytes)) {
|
||||
setState(() {
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
import "package:flutter/material.dart";
|
||||
import "package:flutter/services.dart";
|
||||
import "package:flutter_image_picker/flutter_image_picker.dart";
|
||||
import "package:image_picker/image_picker.dart";
|
||||
|
||||
|
@ -21,6 +22,7 @@ class ImagePicker extends StatelessWidget {
|
|||
this.theme = const ImagePickerTheme(),
|
||||
this.config = const ImagePickerConfig(),
|
||||
this.service,
|
||||
this.onError,
|
||||
super.key,
|
||||
});
|
||||
|
||||
|
@ -36,6 +38,8 @@ class ImagePicker extends StatelessWidget {
|
|||
/// add more features. If null the current implementation will be used.
|
||||
final ImagePickerService? service;
|
||||
|
||||
final Function(PlatformException error)? onError;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) => SingleChildScrollView(
|
||||
child: Column(
|
||||
|
@ -58,6 +62,7 @@ class ImagePicker extends StatelessWidget {
|
|||
Icons.image,
|
||||
ImageSource.gallery,
|
||||
theme.selectImageText,
|
||||
onError,
|
||||
),
|
||||
if (config.cameraOption ?? true) ...[
|
||||
SizedBox(
|
||||
|
@ -70,6 +75,7 @@ class ImagePicker extends StatelessWidget {
|
|||
Icons.camera_alt_rounded,
|
||||
ImageSource.camera,
|
||||
theme.makePhotoText,
|
||||
onError,
|
||||
),
|
||||
],
|
||||
],
|
||||
|
@ -125,6 +131,7 @@ class ImagePicker extends StatelessWidget {
|
|||
IconData icon,
|
||||
ImageSource imageSource,
|
||||
String bottomText,
|
||||
Function(PlatformException error)? onError,
|
||||
) =>
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
|
@ -133,8 +140,14 @@ class ImagePicker extends StatelessWidget {
|
|||
key: Key(bottomText),
|
||||
onTap: () async {
|
||||
var navigator = Navigator.of(context);
|
||||
var image = await (service ?? ImagePickerServiceDefault())
|
||||
Uint8List? image;
|
||||
try {
|
||||
image = await (service ?? ImagePickerServiceDefault())
|
||||
.pickImage(imageSource, config: config);
|
||||
} on PlatformException catch (e) {
|
||||
debugPrint("image_picker_error: $e");
|
||||
onError?.call(e);
|
||||
}
|
||||
navigator.pop(image);
|
||||
},
|
||||
child: customIcon ??
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
name: flutter_image_picker
|
||||
description: A Flutter Image Picking package.
|
||||
version: 4.0.0
|
||||
version: 4.1.0
|
||||
repository: https://github.com/Iconica-Development/flutter_image_picker
|
||||
|
||||
publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub
|
||||
|
@ -12,7 +12,7 @@ environment:
|
|||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
image_picker: ^1.0.7
|
||||
image_picker: ^1.1.2
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
@ -22,5 +22,3 @@ dev_dependencies:
|
|||
git:
|
||||
url: https://github.com/Iconica-Development/flutter_iconica_analysis
|
||||
ref: 7.0.0
|
||||
|
||||
flutter:
|
||||
|
|
Loading…
Reference in a new issue