Browse Source

fix take photo

bugfix/20250501
Đại Võ 1 year ago
parent
commit
4087659c51
4 changed files with 135 additions and 24 deletions
  1. +6
    -0
      ios/Podfile.lock
  2. +23
    -23
      lib/presentation/custom_widgets/widget_media_picker.dart
  3. +104
    -0
      pubspec.lock
  4. +2
    -1
      pubspec.yaml

+ 6
- 0
ios/Podfile.lock View File

- 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

+ 23
- 23
lib/presentation/custom_widgets/widget_media_picker.dart View File

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'),

+ 104
- 0
pubspec.lock View File

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:

+ 2
- 1
pubspec.yaml View File

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:

Loading…
Cancel
Save