Improve permission denied error handling by providing direct access to app settings
This commit is contained in:
parent
a569c4ddc0
commit
5ebcfac0f0
3 changed files with 40 additions and 0 deletions
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:app_settings/app_settings.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mobile_scanner/mobile_scanner.dart';
|
||||
|
||||
|
|
@ -66,6 +67,36 @@ class _QrCodeScreenState extends State<QrCodeScreen> {
|
|||
controller: _controller,
|
||||
fit: BoxFit.cover,
|
||||
onDetect: _onDetect,
|
||||
errorBuilder: (context, error) {
|
||||
return Center(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(24.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
const Icon(Icons.videocam_off_outlined, size: 64),
|
||||
const SizedBox(height: 16),
|
||||
Text(
|
||||
error.errorCode == MobileScannerErrorCode.permissionDenied
|
||||
? "Camera Permission Has Been Denied"
|
||||
: error.errorDetails?.message ?? "Camera Error",
|
||||
textAlign: TextAlign.center,
|
||||
style: Theme.of(context).textTheme.bodyLarge,
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
FilledButton.icon(
|
||||
onPressed:
|
||||
() => AppSettings.openAppSettings(
|
||||
type: AppSettingsType.settings,
|
||||
),
|
||||
icon: const Icon(Icons.settings),
|
||||
label: Text("Open Settings"),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,6 +41,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.4"
|
||||
app_settings:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: app_settings
|
||||
sha256: "64d50e666fd96ae90301bf71205f05019286f940ad6f5fed3d1be19c6af7546a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.0.0"
|
||||
archive:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ dependencies:
|
|||
mobile_scanner: ^7.1.4
|
||||
flutter_secure_storage: ^10.0.0
|
||||
app_links: ^7.0.0
|
||||
app_settings: ^7.0.0
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue