From 5e420440b50589b4485809b10670184af07fffa5 Mon Sep 17 00:00:00 2001 From: "mr.mojtaba" Date: Mon, 8 Sep 2025 10:17:37 +0330 Subject: [PATCH] feat : some utils --- packages/core/lib/utils/camera_utils.dart | 43 +++++++++++++++++++++ packages/core/lib/utils/location_utils.dart | 42 ++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 packages/core/lib/utils/camera_utils.dart create mode 100644 packages/core/lib/utils/location_utils.dart diff --git a/packages/core/lib/utils/camera_utils.dart b/packages/core/lib/utils/camera_utils.dart new file mode 100644 index 0000000..90f471f --- /dev/null +++ b/packages/core/lib/utils/camera_utils.dart @@ -0,0 +1,43 @@ +import 'package:rasadyar_core/core.dart'; + +Future pickCameraImage({ + double? maxWidth, + double? maxHeight, + int? imageQuality, + CameraDevice preferredCameraDevice = CameraDevice.rear, + bool requestFullMetadata = true, +}) async { + ImagePicker picker = diCore(); + var tmpImage = await picker.pickImage( + source: ImageSource.camera, + imageQuality: imageQuality ?? 90, + preferredCameraDevice: CameraDevice.front, + maxHeight: maxHeight, + maxWidth: maxWidth, + ); + + getFileSizeInKB(tmpImage?.path ?? '', tag: 'Picked'); + + return tmpImage; +} + +Future pickGalleryImage({ + double? maxWidth, + double? maxHeight, + int? imageQuality, + CameraDevice preferredCameraDevice = CameraDevice.rear, + bool requestFullMetadata = true, +}) async { + ImagePicker picker = diCore(); + var tmpImage = await picker.pickImage( + source: ImageSource.gallery, + imageQuality: imageQuality ?? 90, + preferredCameraDevice: CameraDevice.front, + maxHeight: maxHeight, + maxWidth: maxWidth, + ); + + getFileSizeInKB(tmpImage?.path ?? '', tag: 'Picked'); + + return tmpImage; +} diff --git a/packages/core/lib/utils/location_utils.dart b/packages/core/lib/utils/location_utils.dart new file mode 100644 index 0000000..f021970 --- /dev/null +++ b/packages/core/lib/utils/location_utils.dart @@ -0,0 +1,42 @@ +import 'package:rasadyar_core/core.dart'; + +Future checkLocationPermission({bool request = false}) async { + try { + final LocationPermission permission = await Geolocator.checkPermission(); + + switch (permission) { + case LocationPermission.denied: + final LocationPermission requestResult = await Geolocator.requestPermission(); + return requestResult != LocationPermission.denied && + requestResult != LocationPermission.deniedForever; + + case LocationPermission.deniedForever: + return request ? await Geolocator.openAppSettings() : false; + + case LocationPermission.always: + case LocationPermission.whileInUse: + return true; + + default: + return false; + } + } catch (e) { + eLog(e); + return await Geolocator.openLocationSettings(); + } +} + +Future determineCurrentPosition() async { + final position = await Geolocator.getCurrentPosition( + locationSettings: AndroidSettings(accuracy: LocationAccuracy.best), + ); + + return position; +} + +Future determineCurrentLatLng() async { + var position = await determineCurrentPosition(); + final latLng = LatLng(position.latitude, position.longitude); + + return latLng; +}