CW-315-Add-a-toast-message-to-enable-denied-permissions-in-device-settings (#1157)

* add permission handler

* localization

* minor fixes

---------

Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
This commit is contained in:
Serhii
2023-11-02 19:19:39 +02:00
committed by GitHub
co-authored by OmarHatem
parent e5d99313eb
commit d997ee81a1
33 changed files with 82 additions and 3 deletions
@@ -69,7 +69,7 @@ class NodeCreateOrEditPage extends BasePage {
@override
Widget trailing(BuildContext context) => IconButton(
onPressed: () async {
await nodeCreateOrEditViewModel.scanQRCodeForNewNode();
await nodeCreateOrEditViewModel.scanQRCodeForNewNode(context);
},
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
@@ -69,7 +69,7 @@ class PowNodeCreateOrEditPage extends BasePage {
@override
Widget trailing(BuildContext context) => IconButton(
onPressed: () async {
await nodeCreateOrEditViewModel.scanQRCodeForNewNode();
await nodeCreateOrEditViewModel.scanQRCodeForNewNode(context);
},
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
@@ -12,6 +12,8 @@ import 'package:cake_wallet/routes.dart';
import 'package:flutter/cupertino.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:cake_wallet/utils/permission_handler.dart';
class RestoreOptionsPage extends BasePage {
RestoreOptionsPage({required this.isNewInstall});
@@ -55,6 +57,9 @@ class RestoreOptionsPage extends BasePage {
padding: EdgeInsets.only(top: 24),
child: OptionTile(
onPressed: () async {
bool isCameraPermissionGranted =
await PermissionHandler.checkPermission(Permission.camera, context);
if (!isCameraPermissionGranted) return;
bool isPinSet = false;
if (isNewInstall) {
await Navigator.pushNamed(context, Routes.setupPin,
@@ -8,10 +8,12 @@ import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/utils/device_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:walletconnect_flutter_v2/walletconnect_flutter_v2.dart';
import 'package:cake_wallet/entities/qr_scanner.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cake_wallet/utils/permission_handler.dart';
import 'widgets/pairing_item_widget.dart';
import 'wc_pairing_detail_page.dart';
@@ -58,6 +60,9 @@ class WCPairingsWidget extends BasePage {
final String? uri;
if (DeviceInfo.instance.isMobile) {
bool isCameraPermissionGranted =
await PermissionHandler.checkPermission(Permission.camera, context);
if (!isCameraPermissionGranted) return;
uri = await presentQRScanner();
} else {
uri = await _showEnterWalletConnectURIPopUp(context);
+5
View File
@@ -9,6 +9,8 @@ import 'package:cake_wallet/entities/qr_scanner.dart';
import 'package:cake_wallet/entities/contact_base.dart';
import 'package:cw_core/crypto_currency.dart';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
import 'package:cake_wallet/utils/permission_handler.dart';
import 'package:permission_handler/permission_handler.dart';
enum AddressTextFieldOption { paste, qrCode, addressBook }
@@ -188,6 +190,9 @@ class AddressTextField extends StatelessWidget {
}
Future<void> _presentQRScanner(BuildContext context) async {
bool isCameraPermissionGranted =
await PermissionHandler.checkPermission(Permission.camera, context);
if (!isCameraPermissionGranted) return;
final code = await presentQRScanner();
if (code.isEmpty) {
return;