Difficulty: Intermediate
Type: bug
Background
app/access-scanner.tsx implements the QR code scanner screen using expo-camera, which requires runtime camera permission on both iOS and Android.
Problem
It's not clear the scanner screen handles the case where the user denies camera permission (or has previously denied it at the OS level) — a bare expo-camera integration without explicit handling typically shows a blank/broken preview instead of clear guidance.
Expected outcome
When camera permission is denied, access-scanner.tsx shows a clear explanation of why the permission is needed, a button to re-prompt (if the OS allows re-prompting) or deep-link to the device's app settings (if permanently denied), and a way to navigate back without being stuck on a broken screen.
Suggested implementation
- Use
expo-camera's permission hook to check current status (granted, denied, undetermined) on screen focus.
- For
undetermined, prompt for permission with a short rationale beforehand.
- For
denied (especially permanently denied on iOS), show a message with a button linking to system settings (Linking.openSettings()).
- Add a clear "Back" affordance so the user isn't stuck.
- Manually verify on both iOS and Android simulators (permission flows differ slightly between platforms).
Acceptance criteria
Likely affected files/directories
Difficulty: Intermediate
Type: bug
Background
app/access-scanner.tsximplements the QR code scanner screen usingexpo-camera, which requires runtime camera permission on both iOS and Android.Problem
It's not clear the scanner screen handles the case where the user denies camera permission (or has previously denied it at the OS level) — a bare
expo-cameraintegration without explicit handling typically shows a blank/broken preview instead of clear guidance.Expected outcome
When camera permission is denied,
access-scanner.tsxshows a clear explanation of why the permission is needed, a button to re-prompt (if the OS allows re-prompting) or deep-link to the device's app settings (if permanently denied), and a way to navigate back without being stuck on a broken screen.Suggested implementation
expo-camera's permission hook to check current status (granted,denied,undetermined) on screen focus.undetermined, prompt for permission with a short rationale beforehand.denied(especially permanently denied on iOS), show a message with a button linking to system settings (Linking.openSettings()).Acceptance criteria
Likely affected files/directories
app/access-scanner.tsx