added clear message for denied camera or gallery access

This commit is contained in:
2026-09-02 20:31:44 +02:00
parent f19f212fb4
commit 43dfc52bc7
8 changed files with 146 additions and 21 deletions
+41
View File
@@ -0,0 +1,41 @@
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,
};
}