diff --git a/lib/pages/widgets/display_image_source.dart b/lib/pages/widgets/display_image_source.dart index 009cde5..b60ad53 100644 --- a/lib/pages/widgets/display_image_source.dart +++ b/lib/pages/widgets/display_image_source.dart @@ -8,17 +8,26 @@ class DisplayImageSource { File? file; DisplayImageSource({this.url, this.file}); - ImageProvider? get imageProvider => - file == null ? CachedNetworkImageProvider(url!) : FileImage(file!); + ImageProvider get imageProvider { + if (file == null) { + return CachedNetworkImageProvider(url!); + } else { + return FileImage(file!); + } + } @override bool operator ==(other) { - if (identical(this, other)) { + if (identical(this, other) && other is DisplayImageSource) { return true; } - return (other.file == this.file && + + return (other is DisplayImageSource && + other.file == this.file && (other.file != null || this.file != null)) || - (other.url == this.url && (other.url != null || this.url != null)); + (other is DisplayImageSource && + other.url == this.url && + (other.url != null || this.url != null)); } @override diff --git a/lib/pages/widgets/image_file_picker.dart b/lib/pages/widgets/image_file_picker.dart index 50dcc98..a495e97 100644 --- a/lib/pages/widgets/image_file_picker.dart +++ b/lib/pages/widgets/image_file_picker.dart @@ -7,7 +7,7 @@ import 'local_text.dart'; typedef OnFile = void Function(File); -modelBottomSheet(BuildContext context, {final OnFile onFile}) { +modelBottomSheet(BuildContext context, {final OnFile? onFile}) { showModalBottomSheet( elevation: 10, backgroundColor: Colors.white, @@ -84,7 +84,7 @@ class _ImageFileState extends State { } pickImage(ImageSource source) async { - var tempImage = await ImagePicker.pickImage(source: source); + var tempImage = await ImagePicker().pickImage(source: source); return tempImage; } } diff --git a/lib/pages/widgets/img_picker.dart b/lib/pages/widgets/img_picker.dart index 71fc9c2..43e2fb1 100644 --- a/lib/pages/widgets/img_picker.dart +++ b/lib/pages/widgets/img_picker.dart @@ -1,5 +1,6 @@ import 'dart:io'; +import 'package:fcs/helpers/theme.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; @@ -7,19 +8,19 @@ import 'package:image_picker/image_picker.dart'; import 'show_img.dart'; -typedef OnFile = void Function(File); +typedef OnFile = void Function(File?); class LocalImagePicker extends StatefulWidget { - final Color color; + final Color? color; final String title; - final OnFile onFile; + final OnFile? onFile; final bool enabled; - final String initialImgUrl; + final String? initialImgUrl; final ImageSource imageSource; const LocalImagePicker( - {Key key, - this.title, + {Key? key, + required this.title, this.onFile, this.enabled = true, this.initialImgUrl, @@ -31,8 +32,8 @@ class LocalImagePicker extends StatefulWidget { } class _LocalImagePickerState extends State { - String url; - File file; + String? url; + File? file; @override void initState() { @@ -56,16 +57,16 @@ class _LocalImagePickerState extends State { await _dialog( context, () => camera = true, () => gallery = true); if (camera || gallery) { - var selectedFile = await ImagePicker.pickImage( + var selectedFile = await ImagePicker().pickImage( source: camera ? ImageSource.camera : ImageSource.gallery, imageQuality: 80, maxWidth: 1000); if (selectedFile != null) { setState(() { - this.file = selectedFile; + this.file = File(selectedFile.path); }); if (widget.onFile != null) { - widget.onFile(selectedFile); + widget.onFile!(File(selectedFile.path)); } } } @@ -93,7 +94,7 @@ class _LocalImagePickerState extends State { this.file = null; this.url = null; if (widget.onFile != null) { - widget.onFile(null); + widget.onFile!(null); } }); }, diff --git a/lib/pages/widgets/length_picker.dart b/lib/pages/widgets/length_picker.dart index f39ba00..79bbd81 100644 --- a/lib/pages/widgets/length_picker.dart +++ b/lib/pages/widgets/length_picker.dart @@ -144,7 +144,8 @@ class _LengthPickerDialogState extends State { borderSide: BorderSide(color: primaryColor, width: 1.0), ), enabledBorder: OutlineInputBorder( - borderSide: BorderSide(color: Colors.grey.shade400, width: 1.0), + borderSide: + BorderSide(color: Colors.grey.shade400, width: 1.0), ), ), ), @@ -196,7 +197,8 @@ class _LengthPickerDialogState extends State { borderSide: BorderSide(color: primaryColor, width: 1.0), ), enabledBorder: OutlineInputBorder( - borderSide: BorderSide(color: Colors.grey.shade400, width: 1.0), + borderSide: + BorderSide(color: Colors.grey.shade400, width: 1.0), ), ), ), @@ -273,7 +275,7 @@ class _LengthPickerDialogState extends State { min: 0, max: MAX_FEET, divisions: 100, - label: (_valueFeet ?? 0).round().toString(), + label: _valueFeet.round().toString(), onChanged: (double v) { _updateFeet(v); }, @@ -301,7 +303,7 @@ class _LengthPickerDialogState extends State { min: 0, max: widget.displayFeet! ? 11 : MAX_INC, divisions: 100, - label: (_valueInc ?? 0).round().toString(), + label: _valueInc.round().toString(), onChanged: (double v) { _updateInc(v); }, diff --git a/lib/pages/widgets/multi_img_controller.dart b/lib/pages/widgets/multi_img_controller.dart index 794796a..ad0be39 100644 --- a/lib/pages/widgets/multi_img_controller.dart +++ b/lib/pages/widgets/multi_img_controller.dart @@ -5,12 +5,12 @@ import 'display_image_source.dart'; class MultiImgController { List imageUrls = []; - List imageFiles = []; + List imageFiles = []; List addedFiles = []; List removedFiles = []; List fileContainers = []; - CallBack callback; + CallBack? callback; MultiImgController() { fileContainers = []; } @@ -26,7 +26,7 @@ class MultiImgController { fileContainers.add(DisplayImageSource(url: e)); }); if (callback != null) { - callback(); + callback!(); } } @@ -42,7 +42,7 @@ class MultiImgController { fileContainers.add(DisplayImageSource(file: e)); }); if (callback != null) { - callback(); + callback!(); } } @@ -54,7 +54,7 @@ class MultiImgController { // if (fileContainers.contains(fileContainer)) return; addedFiles.add(fileContainer); if (callback != null) { - callback(); + callback!(); } } @@ -74,11 +74,11 @@ class MultiImgController { } if (callback != null) { - callback(); + callback!(); } } - List get getUpdatedFile { + List get getUpdatedFile { List _addfiles = getAddedFile; this.imageFiles.addAll(_addfiles); return this.imageFiles;