improved scan screen [cw-1507] (#3281)

* (wip) new scan screen

* improved scan screen

* fixes for ui

* switch to modal sheet

* add urqr (cupcake) progress indicator

* fixes

* Update lib/new-ui/pages/scan_page.dart

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
This commit is contained in:
malik1004x
2026-06-03 18:13:22 +02:00
committed by GitHub
co-authored by Omar Hatem
parent 52c380a455
commit 86ea17d5bf
17 changed files with 789 additions and 27 deletions
@@ -19,6 +19,7 @@ class ListItemRegularRow extends ListItem {
this.copyableText,
this.leadingIconErrorWidget,
this.leadingIconSize,
this.iconColor,
});
final String? subtitle;
@@ -35,4 +36,5 @@ class ListItemRegularRow extends ListItem {
final double? trailingIconSize;
final Widget? leadingIconErrorWidget;
final double? leadingIconSize;
final Color? iconColor;
}
+21 -8
View File
@@ -1,26 +1,39 @@
import 'dart:math';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/new-ui/pages/scan_page.dart';
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cw_core/utils/print_verbose.dart';
import 'package:fast_scanner/fast_scanner.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:modal_bottom_sheet/modal_bottom_sheet.dart';
import 'package:ur/ur_decoder.dart';
var isQrScannerShown = false;
Future<String?> presentQRScanner(BuildContext context) async {
Future<String?> presentQRScanner(BuildContext context, {bool showHelp = false, bool showManualInput = true, bool useModal = false}) async {
isQrScannerShown = true;
try {
final result = await Navigator.of(context).push<String>(
MaterialPageRoute(
builder: (context) {
return BarcodeScannerSimple();
},
),
);
final result = useModal
? await CupertinoScaffold.showCupertinoModalBottomSheet<String?>(
context: context,
builder: (context) => ScanPage(
showHelp: showHelp,
showManualInput: showManualInput,
))
: await Navigator.of(context).push<String>(
CupertinoPageRoute(
builder: (context) {
return ScanPage(
showHelp: showHelp,
showManualInput: showManualInput,
);
},
),
);
isQrScannerShown = false;
return result;
} catch (e) {