| @@ -97,6 +97,8 @@ PODS: | |||
| - GoogleUtilities/Logger | |||
| - GoogleUtilities/UserDefaults (7.11.5): | |||
| - GoogleUtilities/Logger | |||
| - image_picker_ios (0.0.1): | |||
| - Flutter | |||
| - libwebp (1.3.2): | |||
| - libwebp/demux (= 1.3.2) | |||
| - libwebp/mux (= 1.3.2) | |||
| @@ -148,6 +150,7 @@ DEPENDENCIES: | |||
| - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) | |||
| - Flutter (from `Flutter`) | |||
| - flutter_image_compress_common (from `.symlinks/plugins/flutter_image_compress_common/ios`) | |||
| - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) | |||
| - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) | |||
| - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`) | |||
| - qr_code_scanner (from `.symlinks/plugins/qr_code_scanner/ios`) | |||
| @@ -188,6 +191,8 @@ EXTERNAL SOURCES: | |||
| :path: Flutter | |||
| flutter_image_compress_common: | |||
| :path: ".symlinks/plugins/flutter_image_compress_common/ios" | |||
| image_picker_ios: | |||
| :path: ".symlinks/plugins/image_picker_ios/ios" | |||
| package_info_plus: | |||
| :path: ".symlinks/plugins/package_info_plus/ios" | |||
| path_provider_foundation: | |||
| @@ -216,6 +221,7 @@ SPEC CHECKSUMS: | |||
| FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a | |||
| GoogleDataTransport: 54dee9d48d14580407f8f5fbf2f496e92437a2f2 | |||
| GoogleUtilities: 13e2c67ede716b8741c7989e26893d151b2b2084 | |||
| image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5 | |||
| libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009 | |||
| Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d | |||
| MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb | |||
| @@ -13,6 +13,7 @@ import 'package:file_picker/file_picker.dart'; | |||
| import 'package:flutter/cupertino.dart'; | |||
| import 'package:flutter/material.dart'; | |||
| import 'package:flutter_bloc/flutter_bloc.dart'; | |||
| import 'package:image_picker/image_picker.dart'; | |||
| import 'bloc/media_helper_bloc.dart'; | |||
| import 'hoz_list_view.dart'; | |||
| @@ -29,6 +30,7 @@ class _WidgetMediaPickerState extends State<WidgetMediaPicker> { | |||
| List<Media> currentItems = []; | |||
| List<String> addNewFilePaths = <String>[]; | |||
| List<String> deleteFilePaths = <String>[]; | |||
| final ImagePicker _picker = ImagePicker(); | |||
| @override | |||
| void initState() { | |||
| @@ -93,31 +95,29 @@ class _WidgetMediaPickerState extends State<WidgetMediaPicker> { | |||
| actions: <Widget>[ | |||
| CupertinoDialogAction( | |||
| child: const Text('Chụp ảnh'), | |||
| onPressed: () { | |||
| onPressed: () async { | |||
| Navigator.pop(context, 'Discard'); | |||
| Navigator.of(context).push(MaterialPageRoute(builder: (context) => CameraHelper())).then((value) { | |||
| if (value != null) { | |||
| print("ok"); | |||
| print(value); | |||
| String filePath = value[0]; | |||
| File f = File(filePath); | |||
| f.length().then((lengthFileInBytes) { | |||
| if (lengthFileInBytes > ConstCommon.kFileSize) { | |||
| Utils.showSnackBarWarning(message: label_file_to_large); | |||
| } else { | |||
| bool isVideo = value[1]; | |||
| Media newMedia = Media() | |||
| ..isVideo = isVideo | |||
| ..isServerFile = false | |||
| ..pathFile = filePath; | |||
| currentItems.add(newMedia); | |||
| addNewFilePaths.add(filePath); | |||
| BlocProvider.of<MediaHelperBloc>(context)..add(ChangeListMedia(items: currentItems)); | |||
| widget.onChangeFiles(addNewFilePaths, deleteFilePaths); | |||
| } | |||
| }); | |||
| try { | |||
| final image = await _picker.pickImage(source: ImageSource.camera, imageQuality: 90); | |||
| if (image?.path != null) { | |||
| var imageFile = await UtilAction.compressImage(File(image?.path ?? '')); | |||
| print(imageFile.lengthSync()); | |||
| if (imageFile.lengthSync() > ConstCommon.kFileSize) { | |||
| Utils.showSnackBarWarning(message: label_file_to_large); | |||
| } else { | |||
| Media newMedia = Media() | |||
| ..isVideo = false | |||
| ..isServerFile = false | |||
| ..pathFile = imageFile.path; | |||
| currentItems.add(newMedia); | |||
| addNewFilePaths.add(imageFile.path); | |||
| BlocProvider.of<MediaHelperBloc>(context)..add(ChangeListMedia(items: currentItems)); | |||
| widget.onChangeFiles(addNewFilePaths, deleteFilePaths); | |||
| } | |||
| } | |||
| }); | |||
| } catch (e) { | |||
| print(e); | |||
| } | |||
| }), | |||
| CupertinoDialogAction( | |||
| child: const Text('Chọn ảnh'), | |||
| @@ -321,6 +321,38 @@ packages: | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "5.3.1" | |||
| file_selector_linux: | |||
| dependency: transitive | |||
| description: | |||
| name: file_selector_linux | |||
| sha256: "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492" | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "0.9.2+1" | |||
| file_selector_macos: | |||
| dependency: transitive | |||
| description: | |||
| name: file_selector_macos | |||
| sha256: b15c3da8bd4908b9918111fa486903f5808e388b8d1c559949f584725a6594d6 | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "0.9.3+3" | |||
| file_selector_platform_interface: | |||
| dependency: transitive | |||
| description: | |||
| name: file_selector_platform_interface | |||
| sha256: "0aa47a725c346825a2bd396343ce63ac00bda6eff2fbc43eabe99737dede8262" | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "2.6.1" | |||
| file_selector_windows: | |||
| dependency: transitive | |||
| description: | |||
| name: file_selector_windows | |||
| sha256: d3547240c20cabf205c7c7f01a50ecdbc413755814d6677f3cb366f04abcead0 | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "0.9.3+1" | |||
| firebase_core: | |||
| dependency: transitive | |||
| description: | |||
| @@ -552,6 +584,70 @@ packages: | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "4.0.2" | |||
| image_picker: | |||
| dependency: "direct main" | |||
| description: | |||
| name: image_picker | |||
| sha256: b6951e25b795d053a6ba03af5f710069c99349de9341af95155d52665cb4607c | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "0.8.9" | |||
| image_picker_android: | |||
| dependency: transitive | |||
| description: | |||
| name: image_picker_android | |||
| sha256: d6a6e78821086b0b737009b09363018309bbc6de3fd88cc5c26bc2bb44a4957f | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "0.8.8+2" | |||
| image_picker_for_web: | |||
| dependency: transitive | |||
| description: | |||
| name: image_picker_for_web | |||
| sha256: "869fe8a64771b7afbc99fc433a5f7be2fea4d1cb3d7c11a48b6b579eb9c797f0" | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "2.2.0" | |||
| image_picker_ios: | |||
| dependency: transitive | |||
| description: | |||
| name: image_picker_ios | |||
| sha256: "76ec722aeea419d03aa915c2c96bf5b47214b053899088c9abb4086ceecf97a7" | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "0.8.8+4" | |||
| image_picker_linux: | |||
| dependency: transitive | |||
| description: | |||
| name: image_picker_linux | |||
| sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa" | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "0.2.1+1" | |||
| image_picker_macos: | |||
| dependency: transitive | |||
| description: | |||
| name: image_picker_macos | |||
| sha256: "3f5ad1e8112a9a6111c46d0b57a7be2286a9a07fc6e1976fdf5be2bd31d4ff62" | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "0.2.1+1" | |||
| image_picker_platform_interface: | |||
| dependency: transitive | |||
| description: | |||
| name: image_picker_platform_interface | |||
| sha256: ed9b00e63977c93b0d2d2b343685bed9c324534ba5abafbb3dfbd6a780b1b514 | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "2.9.1" | |||
| image_picker_windows: | |||
| dependency: transitive | |||
| description: | |||
| name: image_picker_windows | |||
| sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb" | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "0.2.1+1" | |||
| intl: | |||
| dependency: "direct main" | |||
| description: | |||
| @@ -640,6 +736,14 @@ packages: | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "1.0.4" | |||
| modal_bottom_sheet: | |||
| dependency: "direct main" | |||
| description: | |||
| name: modal_bottom_sheet | |||
| sha256: "3bba63c62d35c931bce7f8ae23a47f9a05836d8cb3c11122ada64e0b2f3d718f" | |||
| url: "https://pub.dev" | |||
| source: hosted | |||
| version: "3.0.0-pre" | |||
| nested: | |||
| dependency: transitive | |||
| description: | |||
| @@ -63,7 +63,8 @@ dependencies: | |||
| flutter_screenutil: ^5.5.3+2 | |||
| toggle_switch: ^2.0.1 | |||
| flutter_switch: ^0.3.2 | |||
| image_picker: ^0.8.3+2 | |||
| modal_bottom_sheet: ^3.0.0-pre | |||
| dev_dependencies: | |||
| flutter_test: | |||