From c9b06e0e426bd0d97b221991617cdd52a85eadc5 Mon Sep 17 00:00:00 2001
From: vjrj <vjrj@comunes.org>
Date: Tue, 15 Aug 2023 19:23:54 +0200
Subject: [PATCH] Don't change card name when offline or changing tabs

---
 lib/shared_prefs.dart                         |  7 +---
 .../first_screen/card_name_editable.dart      | 42 +++++++++++--------
 2 files changed, 26 insertions(+), 23 deletions(-)

diff --git a/lib/shared_prefs.dart b/lib/shared_prefs.dart
index b988686f..56ae0659 100644
--- a/lib/shared_prefs.dart
+++ b/lib/shared_prefs.dart
@@ -2,8 +2,6 @@ import 'dart:convert';
 import 'dart:typed_data';
 
 import 'package:durt/durt.dart';
-import 'package:easy_localization/easy_localization.dart';
-import 'package:flutter_dotenv/flutter_dotenv.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 
 import 'data/models/cesium_card.dart';
@@ -64,10 +62,7 @@ class SharedPreferencesHelper {
 
   CesiumCard buildCesiumCard({required String seed, required String pubKey}) {
     return CesiumCard(
-        seed: seed,
-        pubKey: pubKey,
-        theme: CreditCardThemes.theme1,
-        name: dotenv.env['CARD_TEXT'] ?? tr('g1_wallet'));
+        seed: seed, pubKey: pubKey, theme: CreditCardThemes.theme1, name: '');
   }
 
   void addCesiumCard(CesiumCard cesiumCard) {
diff --git a/lib/ui/widgets/first_screen/card_name_editable.dart b/lib/ui/widgets/first_screen/card_name_editable.dart
index 201d3376..a1a8e41d 100644
--- a/lib/ui/widgets/first_screen/card_name_editable.dart
+++ b/lib/ui/widgets/first_screen/card_name_editable.dart
@@ -5,6 +5,7 @@ import '../../../g1/api.dart';
 import '../../../shared_prefs.dart';
 import '../../logger.dart';
 import '../../ui_helpers.dart';
+import '../connectivity_widget_wrapper_wrapper.dart';
 import 'card_text_style.dart';
 
 class CardNameEditable extends StatefulWidget {
@@ -26,29 +27,36 @@ class _CardNameEditableState extends State<CardNameEditable> {
 
   @override
   void initState() {
-    currentText = defValue;
+    final String localUsername = SharedPreferencesHelper().getName();
+    currentText = localUsername.isEmpty ? defValue : localUsername;
     super.initState();
   }
 
   Future<String> _initValue() async {
     final String localUsername = SharedPreferencesHelper().getName();
-
-    try {
-      String? name = await getCesiumPlusUser(pubKey);
-      logger(
-          'currentText: $currentText, localUsername: $localUsername, _previousValue: $_previousValue, retrieved_name: $name');
-      if (name != null) {
-        name = name.replaceAll(userNameSuffix, '');
-        _controller.text = name;
-        currentText = name;
-        SharedPreferencesHelper().setName(name: name);
-      } else {
-        _controller.text = '';
-        currentText = defValue;
-        SharedPreferencesHelper().setName(name: '');
+    final bool isConnected = await ConnectivityWidgetWrapperWrapper.isConnected;
+    if (isConnected) {
+      try {
+        String? name = await getCesiumPlusUser(pubKey);
+        logger(
+            'currentText: $currentText, localUsername: $localUsername, _previousValue: $_previousValue, retrieved_name: $name');
+        if (name != null) {
+          name = name.replaceAll(userNameSuffix, '');
+          _controller.text = name;
+          currentText = name;
+          SharedPreferencesHelper().setName(name: name);
+        } else {
+          _controller.text = '';
+          currentText = defValue;
+          SharedPreferencesHelper().setName(name: '');
+        }
+      } catch (e) {
+        logger(e);
+        _controller.text = localUsername;
+        currentText = localUsername;
       }
-    } catch (e) {
-      logger(e);
+    } else {
+      // not connected, same an on exception
       _controller.text = localUsername;
       currentText = localUsername;
     }
-- 
GitLab