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