From 0cd231ce6f7d7a6049d392dc75e9c49a3c79ce72 Mon Sep 17 00:00:00 2001
From: vjrj <vjrj@comunes.org>
Date: Sat, 30 Sep 2023 12:49:34 +0200
Subject: [PATCH] Use pubkey abreviation similar to Cesium

---
 lib/ui/ui_helpers.dart                        | 23 +++++++++++++++----
 lib/ui/widgets/first_screen/credit_card.dart  |  3 ++-
 .../first_screen/credit_card_mini.dart        |  4 +++-
 3 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/lib/ui/ui_helpers.dart b/lib/ui/ui_helpers.dart
index 2dfd2593..ab6dca85 100644
--- a/lib/ui/ui_helpers.dart
+++ b/lib/ui/ui_helpers.dart
@@ -23,6 +23,7 @@ import '../data/models/node_list_cubit.dart';
 import '../g1/api.dart';
 import '../g1/currency.dart';
 import '../shared_prefs_helper.dart';
+import 'notification_controller.dart';
 import 'widgets/first_screen/circular_icon.dart';
 
 void showTooltip(BuildContext context, String title, String message) {
@@ -106,8 +107,9 @@ String humanizeContact(String publicAddress, Contact contact,
 
 String humanizePubKey(String address) => '\u{1F511} ${simplifyPubKey(address)}';
 
-String simplifyPubKey(String address) =>
-    address.length <= 8 ? 'WRONG ADDRESS' : address.substring(0, 8);
+String simplifyPubKey(String address) => address.length <= 8
+    ? 'WRONG ADDRESS'
+    : '${address.substring(0, 4)}…${address.substring(address.length - 4)}';
 
 Color tileColor(int index, BuildContext context, [bool inverse = false]) {
   final ColorScheme colorScheme = Theme.of(context).colorScheme;
@@ -264,8 +266,15 @@ Future<void> fetchTransactionsFromBackground([bool init = false]) async {
     }
     try {
       initGetItAll();
+      await NotificationController.initializeLocalNotifications();
     } catch (e) {
       // We should try to do this better
+      if (inDevelopment) {
+        NotificationController.notify(
+            title: 'Background process failed',
+            desc: e.toString(),
+            id: DateTime.now().toIso8601String());
+      }
     }
   }
   final GetIt getIt = GetIt.instance;
@@ -276,6 +285,12 @@ Future<void> fetchTransactionsFromBackground([bool init = false]) async {
   for (final CesiumCard card in SharedPreferencesHelper().cards) {
     transCubit.fetchTransactions(nodeListCubit, appCubit, pubKey: card.pubKey);
   }
+  if (inDevelopment) {
+    NotificationController.notify(
+        title: 'Background process ended correctly',
+        desc: '',
+        id: DateTime.now().toIso8601String());
+  }
 }
 
 Future<void> fetchTransactions(BuildContext context) async {
@@ -601,8 +616,8 @@ bool isDark(BuildContext context) =>
 
 bool get isIOS => !kIsWeb && Platform.isIOS;
 
-const String userNameSuffix = ' ❥';
-
+const String g1nkgoUserNameSuffix = ' ❥';
+const String protectedUserNameSuffix = ' 🔒';
 const double cardAspectRatio = 1.58;
 
 Future<void> hydratedInit() async {
diff --git a/lib/ui/widgets/first_screen/credit_card.dart b/lib/ui/widgets/first_screen/credit_card.dart
index d5d7efa3..d9f22612 100644
--- a/lib/ui/widgets/first_screen/credit_card.dart
+++ b/lib/ui/widgets/first_screen/credit_card.dart
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
 import 'package:flutter_dotenv/flutter_dotenv.dart';
 import 'package:flutter_svg/svg.dart';
 
+import '../../../g1/g1_helper.dart';
 import '../../../shared_prefs_helper.dart';
 import '../../tutorial_keys.dart';
 import '../../ui_helpers.dart';
@@ -112,7 +113,7 @@ class CreditCard extends StatelessWidget {
                                     key: creditCardPubKey,
                                     fit: BoxFit.scaleDown,
                                     child: Text(
-                                      '${pubKey.substring(0, 4)} ${pubKey.substring(4, 8)}',
+                                      simplifyPubKey(extractPublicKey(pubKey)),
                                       style: cardTextStyle(context),
                                     ))),
                             GestureDetector(
diff --git a/lib/ui/widgets/first_screen/credit_card_mini.dart b/lib/ui/widgets/first_screen/credit_card_mini.dart
index 976d988f..af3940e3 100644
--- a/lib/ui/widgets/first_screen/credit_card_mini.dart
+++ b/lib/ui/widgets/first_screen/credit_card_mini.dart
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
 import '../../../data/models/cesium_card.dart';
 import '../../../data/models/credit_card_theme_selector.dart';
 import '../../../data/models/credit_card_themes.dart';
+import '../../../g1/g1_helper.dart';
 import '../../../shared_prefs_helper.dart';
 import '../../logger.dart';
 import '../../ui_helpers.dart';
@@ -153,7 +154,8 @@ class CreditCardMini extends StatelessWidget {
                                 FittedBox(
                                     fit: BoxFit.scaleDown,
                                     child: Text(
-                                      '${card.pubKey.substring(0, 4)} ${card.pubKey.substring(4, 8)}',
+                                      simplifyPubKey(
+                                          extractPublicKey(card.pubKey)),
                                       style:
                                           cardTextStyle(context, fontSize: 16),
                                     )),
-- 
GitLab