| - GoogleUtilities/Logger | - GoogleUtilities/Logger | ||||
| - GoogleUtilities/UserDefaults (7.11.5): | - GoogleUtilities/UserDefaults (7.11.5): | ||||
| - GoogleUtilities/Logger | - GoogleUtilities/Logger | ||||
| - image_picker_ios (0.0.1): | |||||
| - Flutter | |||||
| - libwebp (1.3.2): | - libwebp (1.3.2): | ||||
| - libwebp/demux (= 1.3.2) | - libwebp/demux (= 1.3.2) | ||||
| - libwebp/mux (= 1.3.2) | - libwebp/mux (= 1.3.2) | ||||
| - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) | - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) | ||||
| - Flutter (from `Flutter`) | - Flutter (from `Flutter`) | ||||
| - flutter_image_compress_common (from `.symlinks/plugins/flutter_image_compress_common/ios`) | - 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`) | - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) | ||||
| - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`) | - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`) | ||||
| - qr_code_scanner (from `.symlinks/plugins/qr_code_scanner/ios`) | - qr_code_scanner (from `.symlinks/plugins/qr_code_scanner/ios`) | ||||
| :path: Flutter | :path: Flutter | ||||
| flutter_image_compress_common: | flutter_image_compress_common: | ||||
| :path: ".symlinks/plugins/flutter_image_compress_common/ios" | :path: ".symlinks/plugins/flutter_image_compress_common/ios" | ||||
| image_picker_ios: | |||||
| :path: ".symlinks/plugins/image_picker_ios/ios" | |||||
| package_info_plus: | package_info_plus: | ||||
| :path: ".symlinks/plugins/package_info_plus/ios" | :path: ".symlinks/plugins/package_info_plus/ios" | ||||
| path_provider_foundation: | path_provider_foundation: | ||||
| FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a | FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a | ||||
| GoogleDataTransport: 54dee9d48d14580407f8f5fbf2f496e92437a2f2 | GoogleDataTransport: 54dee9d48d14580407f8f5fbf2f496e92437a2f2 | ||||
| GoogleUtilities: 13e2c67ede716b8741c7989e26893d151b2b2084 | GoogleUtilities: 13e2c67ede716b8741c7989e26893d151b2b2084 | ||||
| image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5 | |||||
| libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009 | libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009 | ||||
| Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d | Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d | ||||
| MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb | MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb |
| import 'package:flutter/cupertino.dart'; | import 'package:flutter/cupertino.dart'; | ||||
| import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
| import 'package:flutter_bloc/flutter_bloc.dart'; | import 'package:flutter_bloc/flutter_bloc.dart'; | ||||
| import 'package:image_picker/image_picker.dart'; | |||||
| import 'bloc/media_helper_bloc.dart'; | import 'bloc/media_helper_bloc.dart'; | ||||
| import 'hoz_list_view.dart'; | import 'hoz_list_view.dart'; | ||||
| List<Media> currentItems = []; | List<Media> currentItems = []; | ||||
| List<String> addNewFilePaths = <String>[]; | List<String> addNewFilePaths = <String>[]; | ||||
| List<String> deleteFilePaths = <String>[]; | List<String> deleteFilePaths = <String>[]; | ||||
| final ImagePicker _picker = ImagePicker(); | |||||
| @override | @override | ||||
| void initState() { | void initState() { | ||||
| actions: <Widget>[ | actions: <Widget>[ | ||||
| CupertinoDialogAction( | CupertinoDialogAction( | ||||
| child: const Text('Chụp ảnh'), | child: const Text('Chụp ảnh'), | ||||
| onPressed: () { | |||||
| onPressed: () async { | |||||
| Navigator.pop(context, 'Discard'); | 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( | CupertinoDialogAction( | ||||
| child: const Text('Chọn ảnh'), | child: const Text('Chọn ảnh'), |
| url: "https://pub.dev" | url: "https://pub.dev" | ||||
| source: hosted | source: hosted | ||||
| version: "5.3.1" | 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: | firebase_core: | ||||
| dependency: transitive | dependency: transitive | ||||
| description: | description: | ||||
| url: "https://pub.dev" | url: "https://pub.dev" | ||||
| source: hosted | source: hosted | ||||
| version: "4.0.2" | 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: | intl: | ||||
| dependency: "direct main" | dependency: "direct main" | ||||
| description: | description: | ||||
| url: "https://pub.dev" | url: "https://pub.dev" | ||||
| source: hosted | source: hosted | ||||
| version: "1.0.4" | 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: | nested: | ||||
| dependency: transitive | dependency: transitive | ||||
| description: | description: |
| flutter_screenutil: ^5.5.3+2 | flutter_screenutil: ^5.5.3+2 | ||||
| toggle_switch: ^2.0.1 | toggle_switch: ^2.0.1 | ||||
| flutter_switch: ^0.3.2 | flutter_switch: ^0.3.2 | ||||
| image_picker: ^0.8.3+2 | |||||
| modal_bottom_sheet: ^3.0.0-pre | |||||
| dev_dependencies: | dev_dependencies: | ||||
| flutter_test: | flutter_test: |