From a569e91520bb0bbcf12501e8b22c6f77c6d9edde Mon Sep 17 00:00:00 2001 From: commitimpush Date: Wed, 31 Aug 2022 16:54:45 +0200 Subject: [PATCH] more code improvements and added some documentation in the readme --- README.md | 30 ++++++++++++------- example/lib/main.dart | 10 +++---- example/test/main_test.dart | 0 lib/image_picker.dart | 4 +-- lib/src/{screens => ui}/image_picker_ui.dart | 17 +++++++---- test/image_picker_test.dart | 0 .../models/image_picker_settings_test.dart | 0 .../services/image_picker_service_test.dart | 0 test/src/ui/image_picker_ui_test.dart | 0 9 files changed, 37 insertions(+), 24 deletions(-) create mode 100644 example/test/main_test.dart rename lib/src/{screens => ui}/image_picker_ui.dart (81%) create mode 100644 test/image_picker_test.dart create mode 100644 test/src/models/image_picker_settings_test.dart create mode 100644 test/src/services/image_picker_service_test.dart create mode 100644 test/src/ui/image_picker_ui_test.dart diff --git a/README.md b/README.md index 122dae1..1031f43 100644 --- a/README.md +++ b/README.md @@ -16,21 +16,29 @@ Flutter Image Picker is a package you can use to implement an Image Picker in yo ## Features -TODO: List what your package can do. Maybe include images, gifs, or videos. - -## Getting started - -TODO: List prerequisites and provide or point to information on how to -start using the package. +With the Flutter Image Picker you can select an existing picture from the gallery or make a picture with the camera to use in your app. ## Usage -TODO: Include short and useful examples for package users. Add longer examples -to `/example` folder. +To use this package, add `flutter_image_picker` as a [dependency in your pubspec.yaml file](https://flutter.dev/docs/development/platform-integration/platform-channels). -```dart -const like = 'sample'; -``` +## Example + +See [Example Code](example/lib/main.dart) for an example on how to use this package. + +You can add optional parameters to the `showImagePickerDialog(context)` function call. These are: +| Parameter | Explaination | +|-------------------|---------------| +| title | left-aligned | +| titleTextSize | centered | +| iconSize | right-aligned | +| iconTextSize | right-aligned | +| spaceBetweenIcons | right-aligned | +| makePhotoText | right-aligned | +| makePhotoIcon | right-aligned | +| selectImageText | right-aligned | +| selectImageIcon | right-aligned | +| closeButtonText | right-aligned | ## Additional information diff --git a/example/lib/main.dart b/example/lib/main.dart index 7874455..0edf609 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -14,7 +14,7 @@ class ImagePickerExample extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( - title: 'Flutter Demo', + title: 'Flutter Image Picker Example', theme: ThemeData( primarySwatch: Colors.blue, ), @@ -38,9 +38,9 @@ class ImagePickerExampleHomePage extends StatefulWidget { class _ImagePickerExampleHomePageState extends State { Uint8List? image; - ImagePicker imagePicker = ImagePicker(); - double whiteSpace = 20; - double imageWidth = 300; + final ImagePicker imagePicker = ImagePicker(); + final double whiteSpace = 20; + final double imageWidth = 300; @override Widget build(BuildContext context) { @@ -84,7 +84,7 @@ class _ImagePickerExampleHomePageState } void pickImage() async { - Uint8List? imageInBytes = await imagePicker.showPickImageDialog(context); + Uint8List? imageInBytes = await imagePicker.showImagePickerDialog(context); if (imageInBytes != null) { if (!listEquals(image, imageInBytes)) { setState(() { diff --git a/example/test/main_test.dart b/example/test/main_test.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/image_picker.dart b/lib/image_picker.dart index d4aff79..93fa9bc 100644 --- a/lib/image_picker.dart +++ b/lib/image_picker.dart @@ -1,11 +1,11 @@ import 'dart:typed_data'; import 'package:flutter/cupertino.dart'; -import 'src/screens/image_picker_ui.dart'; import 'src/models/image_picker_settings.dart'; +import 'src/ui/image_picker_ui.dart'; class ImagePicker { - Future showPickImageDialog(BuildContext context, + Future showImagePickerDialog(BuildContext context, {String title = ImagePickerDefaultParameters.title, double titleTextSize = ImagePickerDefaultParameters.titleTextSize, double iconSize = ImagePickerDefaultParameters.iconSize, diff --git a/lib/src/screens/image_picker_ui.dart b/lib/src/ui/image_picker_ui.dart similarity index 81% rename from lib/src/screens/image_picker_ui.dart rename to lib/src/ui/image_picker_ui.dart index 5dc0bf5..1a24300 100644 --- a/lib/src/screens/image_picker_ui.dart +++ b/lib/src/ui/image_picker_ui.dart @@ -35,13 +35,13 @@ class ImagePickerUI { Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - generateColumn(context, selectImageIcon, iconSize, iconTextSize, - ImageSource.gallery, selectImageText), + generateIconButtonWithText(context, selectImageIcon, iconSize, + iconTextSize, ImageSource.gallery, selectImageText), SizedBox( width: spaceBetweenIcons, ), - generateColumn(context, makePhotoIcon, iconSize, iconTextSize, - ImageSource.camera, makePhotoText), + generateIconButtonWithText(context, makePhotoIcon, iconSize, + iconTextSize, ImageSource.camera, makePhotoText), ], ), Row( @@ -65,8 +65,13 @@ class ImagePickerUI { ); } - Column generateColumn(BuildContext context, IconData icon, double iconSize, - double iconTextSize, ImageSource imageSource, String bottomText) { + Column generateIconButtonWithText( + BuildContext context, + IconData icon, + double iconSize, + double iconTextSize, + ImageSource imageSource, + String bottomText) { return Column( mainAxisSize: MainAxisSize.min, children: [ diff --git a/test/image_picker_test.dart b/test/image_picker_test.dart new file mode 100644 index 0000000..e69de29 diff --git a/test/src/models/image_picker_settings_test.dart b/test/src/models/image_picker_settings_test.dart new file mode 100644 index 0000000..e69de29 diff --git a/test/src/services/image_picker_service_test.dart b/test/src/services/image_picker_service_test.dart new file mode 100644 index 0000000..e69de29 diff --git a/test/src/ui/image_picker_ui_test.dart b/test/src/ui/image_picker_ui_test.dart new file mode 100644 index 0000000..e69de29