feat : some utils

This commit is contained in:
2025-09-08 10:17:37 +03:30
parent d6f4ed433b
commit 5e420440b5
2 changed files with 85 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
import 'package:rasadyar_core/core.dart';
Future<XFile?> pickCameraImage({
double? maxWidth,
double? maxHeight,
int? imageQuality,
CameraDevice preferredCameraDevice = CameraDevice.rear,
bool requestFullMetadata = true,
}) async {
ImagePicker picker = diCore<ImagePicker>();
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<XFile?> pickGalleryImage({
double? maxWidth,
double? maxHeight,
int? imageQuality,
CameraDevice preferredCameraDevice = CameraDevice.rear,
bool requestFullMetadata = true,
}) async {
ImagePicker picker = diCore<ImagePicker>();
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;
}

View File

@@ -0,0 +1,42 @@
import 'package:rasadyar_core/core.dart';
Future<bool> 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<Position> determineCurrentPosition() async {
final position = await Geolocator.getCurrentPosition(
locationSettings: AndroidSettings(accuracy: LocationAccuracy.best),
);
return position;
}
Future<LatLng> determineCurrentLatLng() async {
var position = await determineCurrentPosition();
final latLng = LatLng(position.latitude, position.longitude);
return latLng;
}