Skip to content
Snippets Groups Projects
Commit 0b1416ab authored by vjrj's avatar vjrj
Browse files

Fix for qr image in contacts

parent 2a288212
No related branches found
No related tags found
No related merge requests found
...@@ -129,6 +129,14 @@ bool validateKey(String pubKey) { ...@@ -129,6 +129,14 @@ bool validateKey(String pubKey) {
return true; return true;
} }
String getFullPubKey(String pubKey) {
if (pubKey.contains(':')) {
return pubKey;
} else {
return '$pubKey:${pkChecksum(pubKey)}';
}
}
String pkChecksum(String pubkey) { String pkChecksum(String pubkey) {
List<int> signpkInt8; List<int> signpkInt8;
......
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:qr_flutter/qr_flutter.dart';
import '../../../data/models/contact.dart'; import '../../../data/models/contact.dart';
import '../../../g1/g1_helper.dart';
import '../../ui_helpers.dart'; import '../../ui_helpers.dart';
class ContactEditDialog extends StatefulWidget { class ContactEditDialog extends StatefulWidget {
...@@ -35,17 +35,27 @@ class _ContactEditDialogState extends State<ContactEditDialog> { ...@@ -35,17 +35,27 @@ class _ContactEditDialogState extends State<ContactEditDialog> {
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: <Widget>[ children: <Widget>[
TextFormField( Row(mainAxisSize: MainAxisSize.min, children: <Widget>[
initialValue: humanizePubKey(_updatedContact.pubKey), Flexible(
decoration: InputDecoration( child: TextFormField(
labelText: tr('form_contact_pub_key'), // maxLines: 2,
initialValue: humanizePubKey(_updatedContact.pubKey),
decoration: InputDecoration(
labelText: tr('form_contact_pub_key'),
),
enabled: false,
)),
GestureDetector(
onTap: () {
showQrDialog(
context: context,
publicKey: getFullPubKey(_updatedContact.pubKey),
noTitle: true,
feedbackText: 'some_key_copied_to_clipboard');
},
child: const Icon(Icons.qr_code, size: 50),
), ),
enabled: false, ]),
),
Expanded(child: QrImage(
data: _updatedContact.pubKey,
)),
TextFormField( TextFormField(
initialValue: _updatedContact.name, initialValue: _updatedContact.name,
decoration: const InputDecoration(labelText: 'Name'), decoration: const InputDecoration(labelText: 'Name'),
......
...@@ -8,6 +8,7 @@ import '../../../data/models/bottom_nav_cubit.dart'; ...@@ -8,6 +8,7 @@ import '../../../data/models/bottom_nav_cubit.dart';
import '../../../data/models/contact.dart'; import '../../../data/models/contact.dart';
import '../../../data/models/contact_cubit.dart'; import '../../../data/models/contact_cubit.dart';
import '../../../data/models/payment_cubit.dart'; import '../../../data/models/payment_cubit.dart';
import '../../../g1/g1_helper.dart';
import '../../contacts_cache.dart'; import '../../contacts_cache.dart';
import '../../ui_helpers.dart'; import '../../ui_helpers.dart';
import '../bottom_widget.dart'; import '../bottom_widget.dart';
...@@ -108,7 +109,7 @@ class _ContactsPageState extends State<ContactsPage> { ...@@ -108,7 +109,7 @@ class _ContactsPageState extends State<ContactsPage> {
onPressed: (BuildContext c) { onPressed: (BuildContext c) {
showQrDialog( showQrDialog(
context: context, context: context,
publicKey: contact.pubKey, publicKey: getFullPubKey(contact.pubKey),
noTitle: true, noTitle: true,
feedbackText: 'some_key_copied_to_clipboard'); feedbackText: 'some_key_copied_to_clipboard');
}, },
......
...@@ -185,6 +185,9 @@ void main() { ...@@ -185,6 +185,9 @@ void main() {
for (final List<String?> data in testData) { for (final List<String?> data in testData) {
test('Checksum of ${data[0]}', () { test('Checksum of ${data[0]}', () {
expect(pkChecksum(data[0]!), equals(data[1])); expect(pkChecksum(data[0]!), equals(data[1]));
expect(getFullPubKey('${data[0]!}:${data[1]!}'),
equals('${data[0]!}:${data[1]!}'));
expect(getFullPubKey(data[0]!), equals('${data[0]!}:${data[1]!}'));
}); });
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment