Yimaru-Mobile/lib/services/image_picker_service.dart

57 lines
1.5 KiB
Dart

import 'package:image_picker/image_picker.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:yimaru_app/services/permission_handler_service.dart';
import '../app/app.locator.dart';
import '../ui/common/ui_helpers.dart';
class ImagePickerService {
final _permissionHandler = locator<PermissionHandlerService>();
final ImagePicker _picker = ImagePicker();
Future<String?> gallery() async {
try {
PermissionStatus status =
await _permissionHandler.requestPermission(Permission.mediaLibrary);
if (status == PermissionStatus.granted) {
final XFile? pickedFile = await _picker.pickImage(
source: ImageSource.gallery, maxWidth: 600, maxHeight: 600);
if (pickedFile == null) {
showErrorToast('Please select a picture');
return null;
} else {
return pickedFile.path;
}
}
return null;
} catch (e) {
return null;
}
}
Future<String?> camera() async {
try {
PermissionStatus status =
await _permissionHandler.requestPermission(Permission.camera);
if (status == PermissionStatus.granted) {
final XFile? pickedFile = await _picker.pickImage(
source: ImageSource.camera, maxWidth: 600, maxHeight: 600);
if (pickedFile == null) {
showErrorToast('Please take a picture');
return null;
} else {
return pickedFile.path;
}
}
return null;
} catch (e) {
return null;
}
}
}