dev
dart 39 lines 978 Bytes
Raw
1 import 'dart:io';
2
3 import 'package:cake_wallet/generated/i18n.dart';
4 import 'package:cake_wallet/utils/show_bar.dart';
5 import 'package:flutter/cupertino.dart';
6 import 'package:permission_handler/permission_handler.dart';
7
8 class PermissionHandler {
9 static Future<bool> checkPermission(Permission permission, BuildContext context) async {
10 if (Platform.isIOS) {
11 return true;
12 }
13 final Map<Permission, String> _permissionMessages = {
14 Permission.camera: S.of(context).camera_permission_is_required,
15 };
16
17 var status = await permission.status;
18
19 if (status.isDenied) {
20 try {
21 status = await permission.request();
22 } catch (_) {}
23 }
24
25 if (status.isPermanentlyDenied || status.isDenied) {
26 String? message = _permissionMessages[permission];
27 if (message != null) {
28 showBar<void>(context, message);
29 }
30 return false;
31 }
32
33 if (status.isGranted) {
34 return true;
35 }
36
37 return false;
38 }
39 }