From 65d188c4f27044fca857c423f4f21711799ead1f Mon Sep 17 00:00:00 2001 From: otsmr Date: Tue, 19 May 2026 14:46:15 +0200 Subject: [PATCH] show the number of verified contacts --- .../verified_badge_1.svg | 3 +++ .../verified_badge_2.svg | 3 +++ .../verified_badge_3.svg | 3 +++ lib/src/services/api.service.dart | 3 --- .../components/verification_badge.comp.dart | 18 ++++++++++-------- lib/src/visual/elements/svg_icon.element.dart | 7 +++++++ pubspec.yaml | 1 + 7 files changed, 27 insertions(+), 11 deletions(-) create mode 100644 assets/icons/verification_badge_numeric/verified_badge_1.svg create mode 100644 assets/icons/verification_badge_numeric/verified_badge_2.svg create mode 100644 assets/icons/verification_badge_numeric/verified_badge_3.svg diff --git a/assets/icons/verification_badge_numeric/verified_badge_1.svg b/assets/icons/verification_badge_numeric/verified_badge_1.svg new file mode 100644 index 00000000..4b81bc05 --- /dev/null +++ b/assets/icons/verification_badge_numeric/verified_badge_1.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/verification_badge_numeric/verified_badge_2.svg b/assets/icons/verification_badge_numeric/verified_badge_2.svg new file mode 100644 index 00000000..deb29ebd --- /dev/null +++ b/assets/icons/verification_badge_numeric/verified_badge_2.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/verification_badge_numeric/verified_badge_3.svg b/assets/icons/verification_badge_numeric/verified_badge_3.svg new file mode 100644 index 00000000..a95ccf14 --- /dev/null +++ b/assets/icons/verification_badge_numeric/verified_badge_3.svg @@ -0,0 +1,3 @@ + + + diff --git a/lib/src/services/api.service.dart b/lib/src/services/api.service.dart index ea840d4c..767fe3e6 100644 --- a/lib/src/services/api.service.dart +++ b/lib/src/services/api.service.dart @@ -274,9 +274,6 @@ class ApiService { } Future _onData(dynamic msgBuffer) async { - if (kDebugMode) { - print('API _onData received: $msgBuffer'); - } try { if (msgBuffer is! Uint8List) { msgBuffer = Uint8List.fromList(msgBuffer as List); diff --git a/lib/src/visual/components/verification_badge.comp.dart b/lib/src/visual/components/verification_badge.comp.dart index ec655b44..3aa0096c 100644 --- a/lib/src/visual/components/verification_badge.comp.dart +++ b/lib/src/visual/components/verification_badge.comp.dart @@ -33,7 +33,7 @@ class VerificationBadgeComp extends StatefulWidget { class _VerificationBadgeCompState extends State { bool _isVerified = false; - bool _isVerifiedByTransferredTrust = false; + int _verifiedByTransferredTrustCount = 0; StreamSubscription? _streamAllVerified; StreamSubscription>? _streamContactVerification; @@ -49,12 +49,12 @@ class _VerificationBadgeCompState extends State { if (!mounted) return; setState(() { _isVerified = false; - _isVerifiedByTransferredTrust = false; + _verifiedByTransferredTrustCount = 0; if (update == VerificationStatus.trusted) { _isVerified = true; } if (update == VerificationStatus.partialTrusted) { - _isVerifiedByTransferredTrust = true; + _verifiedByTransferredTrustCount = 10; } }); }); @@ -73,12 +73,12 @@ class _VerificationBadgeCompState extends State { .listen((update) { if (!mounted) return; setState(() { - _isVerifiedByTransferredTrust = update.isNotEmpty; + _verifiedByTransferredTrustCount = update.length; }); }); } else if (widget.isVerifiedByTransferredTrust != null) { setState(() { - _isVerifiedByTransferredTrust = widget.isVerifiedByTransferredTrust!; + _verifiedByTransferredTrustCount = 10; }); } } @@ -94,7 +94,7 @@ class _VerificationBadgeCompState extends State { @override Widget build(BuildContext context) { if (!_isVerified && - !_isVerifiedByTransferredTrust && + _verifiedByTransferredTrustCount == 0 && widget.showOnlyIfVerified) { return Container(); } @@ -112,10 +112,12 @@ class _VerificationBadgeCompState extends State { bottom: 3, ), child: SvgIcon( - assetPath: (_isVerified || _isVerifiedByTransferredTrust) + assetPath: _isVerified ? SvgIcons.verifiedGreen + : _verifiedByTransferredTrustCount > 0 + ? SvgIcons.verifiedNumeric(_verifiedByTransferredTrustCount) : SvgIcons.verifiedRed, - color: (_isVerifiedByTransferredTrust && !_isVerified) + color: (_verifiedByTransferredTrustCount > 0 && !_isVerified) ? colorVerificationBadgeYellow : null, size: widget.size, diff --git a/lib/src/visual/elements/svg_icon.element.dart b/lib/src/visual/elements/svg_icon.element.dart index fd124141..3932a453 100644 --- a/lib/src/visual/elements/svg_icon.element.dart +++ b/lib/src/visual/elements/svg_icon.element.dart @@ -4,6 +4,13 @@ import 'package:flutter_svg/flutter_svg.dart'; class SvgIcons { static const String verifiedGreen = 'assets/icons/verified_badge_green.svg'; static const String verifiedRed = 'assets/icons/verified_badge_red.svg'; + + static String verifiedNumeric(int value) { + if (value >= 4) { + return verifiedGreen; + } + return 'assets/icons/verification_badge_numeric/verified_badge_$value.svg'; + } } class SvgIcon extends StatelessWidget { diff --git a/pubspec.yaml b/pubspec.yaml index 0412827e..2c843a3d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -207,6 +207,7 @@ flutter: # Add assets from the images directory to the application. - assets/images/ - assets/icons/ + - assets/icons/verification_badge_numeric/ - assets/animated_icons/ - assets/animations/ - assets/filters/