import 'package:flutter/services.dart'; import 'app_exception.dart'; /// The user denied a system permission the action needs (camera, photos). /// Retrying won't help until the permission is granted in the system settings. class PermissionException extends AppException { const PermissionException({ required super.userMessage, super.technicalDetails, }) : super(allowRetry: false); factory PermissionException.camera({String? technicalDetails}) => PermissionException( userMessage: 'Kein Zugriff auf die Kamera. Bitte erlaube der App den ' 'Kamerazugriff in den Einstellungen deines Geräts.', technicalDetails: technicalDetails, ); factory PermissionException.photos({String? technicalDetails}) => PermissionException( userMessage: 'Kein Zugriff auf deine Fotos. Bitte erlaube der App den ' 'Fotozugriff in den Einstellungen deines Geräts.', technicalDetails: technicalDetails, ); /// Maps the `*_access_denied` codes thrown by `image_picker`; `null` for any /// other platform error. static PermissionException? fromPlatform(PlatformException error) => switch (error.code) { 'camera_access_denied' => PermissionException.camera( technicalDetails: error.message, ), 'photo_access_denied' => PermissionException.photos( technicalDetails: error.message, ), _ => null, }; }