Cw 658 make the addressbook popup can be turned off from the settings (#1856)

* make ‘Add to Addressbook’ popup optional in settings * localisation * fix contacts page background color

Serhii committed Dec 9, 2024 at 22:37 UTC 03ff2287dbb42ef4092ceaa43f5dc087f05b2d7f
35 files changed +67 -4
lib/entities/preferences_key.dart
+1
@@ -91,6 +91,7 @@ class PreferencesKey {
91 static const donationLinkWalletName = 'donation_link_wallet_name';
92 static const lastSeenAppVersion = 'last_seen_app_version';
93 static const shouldShowMarketPlaceInDashboard = 'should_show_marketplace_in_dashboard';
94 + static const showAddressBookPopupEnabled = 'show_address_book_popup_enabled';
95 static const isNewInstall = 'is_new_install';
96 static const serviceStatusShaKey = 'service_status_sha_key';
97 static const walletConnectPairingTopicsList = 'wallet_connect_pairing_topics_list';
lib/src/screens/contact/contact_list_page.dart
+1
@@ -322,6 +322,7 @@ class _ContactListBodyState extends State<ContactListBody> {
322 ? widget.contactListViewModel.contacts
323 : widget.contactListViewModel.contactsToShow;
324 return Scaffold(
325 + backgroundColor: Theme.of(context).colorScheme.background,
326 body: Container(
327 child: FilteredList(
328 list: contacts,
lib/src/screens/send/send_page.dart
+2 -2
@@ -525,14 +525,14 @@ class SendPage extends BasePage {
525 ? '. ${S.of(_dialogContext).waitFewSecondForTxUpdate}'
526 : '';
527
528 - final newContactMessage = newContactAddress != null
528 + final newContactMessage = newContactAddress != null && sendViewModel.showAddressBookPopup
529 ? '\n${S.of(_dialogContext).add_contact_to_address_book}'
530 : '';
531
532 String alertContent =
533 "$successMessage$waitMessage$newContactMessage";
534
535 - if (newContactAddress != null) {
535 + if (newContactMessage.isNotEmpty) {
536 return AlertWithTwoActions(
537 alertDialogKey: ValueKey('send_page_sent_dialog_key'),
538 alertTitle: '',
lib/src/screens/settings/other_settings_page.dart
+8
@@ -6,6 +6,7 @@ import 'package:cake_wallet/src/screens/base_page.dart';
6 import 'package:cake_wallet/src/screens/settings/widgets/setting_priority_picker_cell.dart';
7 import 'package:cake_wallet/src/screens/settings/widgets/settings_cell_with_arrow.dart';
8 import 'package:cake_wallet/src/screens/settings/widgets/settings_picker_cell.dart';
9 +import 'package:cake_wallet/src/screens/settings/widgets/settings_switcher_cell.dart';
10 import 'package:cake_wallet/src/screens/settings/widgets/settings_version_cell.dart';
11 import 'package:cake_wallet/view_model/settings/other_settings_view_model.dart';
12 import 'package:cw_core/wallet_type.dart';
@@ -62,6 +63,13 @@ class OtherSettingsPage extends BasePage {
63 handler: (BuildContext context) =>
64 Navigator.of(context).pushNamed(Routes.readDisclaimer),
65 ),
66 + SettingsSwitcherCell(
67 + title: S.of(context).show_address_book_popup,
68 + value: _otherSettingsViewModel.showAddressBookPopup,
69 + onValueChange: (_, bool value) {
70 + _otherSettingsViewModel.setShowAddressBookPopup(value);
71 + },
72 + ),
73 Spacer(),
74 SettingsVersionCell(
75 title: S.of(context).version(_otherSettingsViewModel.currentVersion)),
lib/store/settings_store.dart
+16
@@ -54,6 +54,7 @@ abstract class SettingsStoreBase with Store {
54 required BackgroundTasks backgroundTasks,
55 required SharedPreferences sharedPreferences,
56 required bool initialShouldShowMarketPlaceInDashboard,
57 + required bool initialShowAddressBookPopupEnabled,
58 required FiatCurrency initialFiatCurrency,
59 required BalanceDisplayMode initialBalanceDisplayMode,
60 required bool initialSaveRecipientAddress,
@@ -157,6 +158,7 @@ abstract class SettingsStoreBase with Store {
158 walletListAscending = initialWalletListAscending,
159 contactListAscending = initialContactListAscending,
160 shouldShowMarketPlaceInDashboard = initialShouldShowMarketPlaceInDashboard,
161 + showAddressBookPopupEnabled = initialShowAddressBookPopupEnabled,
162 exchangeStatus = initialExchangeStatus,
163 currentTheme = initialTheme,
164 pinCodeLength = initialPinLength,
@@ -354,6 +356,11 @@ abstract class SettingsStoreBase with Store {
356 (bool value) =>
357 sharedPreferences.setBool(PreferencesKey.shouldShowMarketPlaceInDashboard, value));
358
359 + reaction(
360 + (_) => showAddressBookPopupEnabled,
361 + (bool value) =>
362 + sharedPreferences.setBool(PreferencesKey.showAddressBookPopupEnabled, value));
363 +
364 reaction((_) => pinCodeLength,
365 (int pinLength) => sharedPreferences.setInt(PreferencesKey.currentPinLength, pinLength));
366
@@ -606,6 +613,9 @@ abstract class SettingsStoreBase with Store {
613 @observable
614 bool shouldShowMarketPlaceInDashboard;
615
616 + @observable
617 + bool showAddressBookPopupEnabled;
618 +
619 @observable
620 ObservableList<ActionListDisplayMode> actionlistDisplayMode;
621
@@ -917,6 +927,8 @@ abstract class SettingsStoreBase with Store {
927 final tokenTrialNumber = sharedPreferences.getInt(PreferencesKey.failedTotpTokenTrials) ?? 0;
928 final shouldShowMarketPlaceInDashboard =
929 sharedPreferences.getBool(PreferencesKey.shouldShowMarketPlaceInDashboard) ?? true;
930 + final showAddressBookPopupEnabled =
931 + sharedPreferences.getBool(PreferencesKey.showAddressBookPopupEnabled) ?? true;
932 final exchangeStatus = ExchangeApiMode.deserialize(
933 raw: sharedPreferences.getInt(PreferencesKey.exchangeStatusKey) ??
934 ExchangeApiMode.enabled.raw);
@@ -1185,6 +1197,7 @@ abstract class SettingsStoreBase with Store {
1197 secureStorage: secureStorage,
1198 sharedPreferences: sharedPreferences,
1199 initialShouldShowMarketPlaceInDashboard: shouldShowMarketPlaceInDashboard,
1200 + initialShowAddressBookPopupEnabled: showAddressBookPopupEnabled,
1201 nodes: nodes,
1202 powNodes: powNodes,
1203 appVersion: packageInfo.version,
@@ -1361,6 +1374,9 @@ abstract class SettingsStoreBase with Store {
1374 shouldShowMarketPlaceInDashboard =
1375 sharedPreferences.getBool(PreferencesKey.shouldShowMarketPlaceInDashboard) ??
1376 shouldShowMarketPlaceInDashboard;
1377 + showAddressBookPopupEnabled =
1378 + sharedPreferences.getBool(PreferencesKey.showAddressBookPopupEnabled) ??
1379 + showAddressBookPopupEnabled;
1380 exchangeStatus = ExchangeApiMode.deserialize(
1381 raw: sharedPreferences.getInt(PreferencesKey.exchangeStatusKey) ??
1382 ExchangeApiMode.enabled.raw);
lib/view_model/send/send_view_model.dart
+2
@@ -109,6 +109,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
109
110 final UnspentCoinType coinTypeToSpendFrom;
111
112 + bool get showAddressBookPopup => _settingsStore.showAddressBookPopupEnabled;
113 +
114 @action
115 void addOutput() {
116 outputs
lib/view_model/settings/other_settings_view_model.dart
+7
@@ -60,6 +60,10 @@ abstract class OtherSettingsViewModelBase with Store {
60 bool get changeRepresentativeEnabled =>
61 _wallet.type == WalletType.nano || _wallet.type == WalletType.banano;
62
63 + @computed
64 + bool get showAddressBookPopup => _settingsStore.showAddressBookPopupEnabled;
65 +
66 +
67 @computed
68 bool get displayTransactionPriority => !(changeRepresentativeEnabled ||
69 _wallet.type == WalletType.solana ||
@@ -114,6 +118,9 @@ abstract class OtherSettingsViewModelBase with Store {
118 return customItem != null ? priorities.indexOf(customItem) : null;
119 }
120
121 + @action
122 + void setShowAddressBookPopup(bool value) => _settingsStore.showAddressBookPopupEnabled = value;
123 +
124 int? get maxCustomFeeRate {
125 if (_wallet.type == WalletType.bitcoin) {
126 return bitcoin!.getMaxCustomFeeRate(_wallet);
res/values/strings_ar.arb
+1
@@ -710,6 +710,7 @@
710 "share_address": "شارك العنوان",
711 "shared_seed_wallet_groups": "مجموعات محفظة البذور المشتركة",
712 "show": "يعرض",
713 + "show_address_book_popup": "عرض \"إضافة إلى كتاب العناوين\" المنبثقة بعد الإرسال",
714 "show_details": "اظهر التفاصيل",
715 "show_keys": "اظهار السييد / المفاتيح",
716 "show_market_place": "إظهار السوق",
res/values/strings_bg.arb
+1
@@ -710,6 +710,7 @@
710 "share_address": "Сподели адрес",
711 "shared_seed_wallet_groups": "Споделени групи за портфейли за семена",
712 "show": "Показване",
713 + "show_address_book_popup": "Показване на изскачането на „Добавяне към адресната книга“ след изпращане",
714 "show_details": "Показване на подробностите",
715 "show_keys": "Покажи seed/keys",
716 "show_market_place": "Покажи пазар",
res/values/strings_cs.arb
+1
@@ -710,6 +710,7 @@
710 "share_address": "Sdílet adresu",
711 "shared_seed_wallet_groups": "Skupiny sdílených semen",
712 "show": "Show",
713 + "show_address_book_popup": "Po odeslání zobrazíte vyskakovací okno „Přidat do adresáře“",
714 "show_details": "Zobrazit detaily",
715 "show_keys": "Zobrazit seed/klíče",
716 "show_market_place": "Zobrazit trh",
res/values/strings_de.arb
+2 -1
@@ -498,8 +498,8 @@
498 "placeholder_transactions": "Ihre Transaktionen werden hier angezeigt",
499 "please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist",
500 "please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.",
501 - "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.",
501 "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.",
502 + "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.",
503 "please_select": "Bitte auswählen:",
504 "please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.",
505 "please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden",
@@ -711,6 +711,7 @@
711 "share_address": "Adresse teilen ",
712 "shared_seed_wallet_groups": "Gemeinsame Walletsseed Gruppen",
713 "show": "Zeigen",
714 + "show_address_book_popup": "Popup \"zum Adressbuch hinzufügen\" nach dem Senden anzeigen",
715 "show_details": "Details anzeigen",
716 "show_keys": "Seed/Schlüssel anzeigen",
717 "show_market_place": "Marktplatz anzeigen",
res/values/strings_en.arb
+1
@@ -710,6 +710,7 @@
710 "share_address": "Share address",
711 "shared_seed_wallet_groups": "Shared Seed Wallet Groups",
712 "show": "Show",
713 + "show_address_book_popup": "Show 'Add to Address Book' popup after sending",
714 "show_details": "Show Details",
715 "show_keys": "Show seed/keys",
716 "show_market_place": "Show Marketplace",
res/values/strings_es.arb
+1
@@ -711,6 +711,7 @@
711 "share_address": "Compartir dirección",
712 "shared_seed_wallet_groups": "Grupos de billetera de semillas compartidas",
713 "show": "Espectáculo",
714 + "show_address_book_popup": "Mostrar ventana emergente 'Agregar a la libreta de direcciones' después de enviar",
715 "show_details": "Mostrar detalles",
716 "show_keys": "Mostrar semilla/claves",
717 "show_market_place": "Mostrar mercado",
res/values/strings_fr.arb
+1
@@ -710,6 +710,7 @@
710 "share_address": "Partager l'adresse",
711 "shared_seed_wallet_groups": "Groupes de portefeuilles partagés",
712 "show": "Montrer",
713 + "show_address_book_popup": "Afficher la popup `` Ajouter au carnet d'adresses '' après avoir envoyé",
714 "show_details": "Afficher les détails",
715 "show_keys": "Visualiser la phrase secrète (seed) et les clefs",
716 "show_market_place": "Afficher la place de marché",
res/values/strings_ha.arb
+1
@@ -712,6 +712,7 @@
712 "share_address": "Raba adireshin",
713 "shared_seed_wallet_groups": "Raba ƙungiya walat",
714 "show": "Nuna",
715 + "show_address_book_popup": "Nuna 'ƙara don magance littafin' Popup bayan aikawa",
716 "show_details": "Nuna Cikakkun bayanai",
717 "show_keys": "Nuna iri/maɓallai",
718 "show_market_place": "Nuna dan kasuwa",
res/values/strings_hi.arb
+1
@@ -712,6 +712,7 @@
712 "share_address": "पता साझा करें",
713 "shared_seed_wallet_groups": "साझा बीज बटुए समूह",
714 "show": "दिखाओ",
715 + "show_address_book_popup": "भेजने के बाद 'एड एड्रेस बुक' पॉपअप दिखाएं",
716 "show_details": "विवरण दिखाएं",
717 "show_keys": "बीज / कुंजियाँ दिखाएँ",
718 "show_market_place": "बाज़ार दिखाएँ",
res/values/strings_hr.arb
+1
@@ -710,6 +710,7 @@
710 "share_address": "Podijeli adresu",
711 "shared_seed_wallet_groups": "Zajedničke grupe za sjeme novčanika",
712 "show": "Pokazati",
713 + "show_address_book_popup": "Pokažite \"dodaj u adresar\" skočni prozor nakon slanja",
714 "show_details": "Prikaži pojedinosti",
715 "show_keys": "Prikaži pristupni izraz/ključ",
716 "show_market_place": "Prikaži tržište",
res/values/strings_hy.arb
+1
@@ -710,6 +710,7 @@
710 "share_address": "Կիսվել հասցեով",
711 "shared_seed_wallet_groups": "Համօգտագործված սերմերի դրամապանակների խմբեր",
712 "show": "Ցուցահանդես",
713 + "show_address_book_popup": "Show ույց տալ «Ուղարկելուց հետո« Հասցեների գրքի »թռուցիկ",
714 "show_details": "Ցուցադրել մանրամասներ",
715 "show_keys": "Ցուցադրել բանալիներ",
716 "show_market_place": "Ցուցադրել շուկան",
res/values/strings_id.arb
+1
@@ -713,6 +713,7 @@
713 "share_address": "Bagikan alamat",
714 "shared_seed_wallet_groups": "Kelompok dompet benih bersama",
715 "show": "Menunjukkan",
716 + "show_address_book_popup": "Tampilkan popup 'Tambahkan ke Alamat' setelah mengirim",
717 "show_details": "Tampilkan Rincian",
718 "show_keys": "Tampilkan seed/kunci",
719 "show_market_place": "Tampilkan Pasar",
res/values/strings_it.arb
+1
@@ -712,6 +712,7 @@
712 "share_address": "Condividi indirizzo",
713 "shared_seed_wallet_groups": "Gruppi di portafoglio di semi condivisi",
714 "show": "Spettacolo",
715 + "show_address_book_popup": "Mostra il popup \"Aggiungi alla rubrica\" ​​dopo l'invio",
716 "show_details": "Mostra dettagli",
717 "show_keys": "Mostra seme/chiavi",
718 "show_market_place": "Mostra mercato",
res/values/strings_ja.arb
+1
@@ -711,6 +711,7 @@
711 "share_address": "住所を共有する",
712 "shared_seed_wallet_groups": "共有シードウォレットグループ",
713 "show": "見せる",
714 + "show_address_book_popup": "送信後に「アドレスブックに追加」ポップアップを表示します",
715 "show_details": "詳細を表示",
716 "show_keys": "シード/キーを表示する",
717 "show_market_place": "マーケットプレイスを表示",
res/values/strings_ko.arb
+1
@@ -711,6 +711,7 @@
711 "share_address": "주소 공유",
712 "shared_seed_wallet_groups": "공유 종자 지갑 그룹",
713 "show": "보여주다",
714 + "show_address_book_popup": "전송 후 '주소 책에 추가'팝업을 표시하십시오",
715 "show_details": "세부정보 표시",
716 "show_keys": "시드 / 키 표시",
717 "show_market_place": "마켓플레이스 표시",
res/values/strings_my.arb
+1
@@ -710,6 +710,7 @@
710 "share_address": "လိပ်စာမျှဝေပါ။",
711 "shared_seed_wallet_groups": "shared မျိုးစေ့ပိုက်ဆံအိတ်အုပ်စုများ",
712 "show": "ပြသ",
713 + "show_address_book_popup": "ပေးပို့ပြီးနောက် 'address book' popup ကိုပြပါ",
714 "show_details": "အသေးစိတ်ပြ",
715 "show_keys": "မျိုးစေ့ /သော့များကို ပြပါ။",
716 "show_market_place": "စျေးကွက်ကိုပြသပါ။",
res/values/strings_nl.arb
+1
@@ -710,6 +710,7 @@
710 "share_address": "Deel adres",
711 "shared_seed_wallet_groups": "Gedeelde zaadportelgroepen",
712 "show": "Show",
713 + "show_address_book_popup": "Toon 'Toevoegen aan adresboek' pop -up na verzenden",
714 "show_details": "Toon details",
715 "show_keys": "Toon zaad/sleutels",
716 "show_market_place": "Toon Marktplaats",
res/values/strings_pl.arb
+1
@@ -710,6 +710,7 @@
710 "share_address": "Udostępnij adres",
711 "shared_seed_wallet_groups": "Wspólne grupy portfeli nasion",
712 "show": "Pokazywać",
713 + "show_address_book_popup": "Pokaż wysypkę „Dodaj do książki” po wysłaniu",
714 "show_details": "Pokaż szczegóły",
715 "show_keys": "Pokaż seed/klucze",
716 "show_market_place": "Pokaż rynek",
res/values/strings_pt.arb
+2 -1
@@ -712,6 +712,7 @@
712 "share_address": "Compartilhar endereço",
713 "shared_seed_wallet_groups": "Grupos de carteira de sementes compartilhados",
714 "show": "Mostrar",
715 + "show_address_book_popup": "Mostre pop -up 'Adicionar ao livro de endereços' depois de enviar",
716 "show_details": "Mostrar detalhes",
717 "show_keys": "Mostrar semente/chaves",
718 "show_market_place": "Mostrar mercado",
@@ -963,4 +964,4 @@
964 "you_will_get": "Converter para",
965 "you_will_send": "Converter de",
966 "yy": "aa"
966 -}
967 +}
\ No newline at end of file
res/values/strings_ru.arb
+1
@@ -711,6 +711,7 @@
711 "share_address": "Поделиться адресом",
712 "shared_seed_wallet_groups": "Общие группы кошелька семян",
713 "show": "Показывать",
714 + "show_address_book_popup": "Покажите всплывающее окно «Добавить в адрес адреса» после отправки",
715 "show_details": "Показать детали",
716 "show_keys": "Показать мнемоническую фразу/ключи",
717 "show_market_place": "Показать торговую площадку",
res/values/strings_th.arb
+1
@@ -710,6 +710,7 @@
710 "share_address": "แชร์ที่อยู่",
711 "shared_seed_wallet_groups": "กลุ่มกระเป๋าเงินที่ใช้ร่วมกัน",
712 "show": "แสดง",
713 + "show_address_book_popup": "แสดง 'เพิ่มในสมุดรายชื่อ' ป๊อปอัพหลังจากส่ง",
714 "show_details": "แสดงรายละเอียด",
715 "show_keys": "แสดงซีด/คีย์",
716 "show_market_place": "แสดงตลาดกลาง",
res/values/strings_tl.arb
+1
@@ -710,6 +710,7 @@
710 "share_address": "Ibahagi ang address",
711 "shared_seed_wallet_groups": "Ibinahaging mga pangkat ng pitaka ng binhi",
712 "show": "Ipakita",
713 + "show_address_book_popup": "Ipakita ang popup na 'Idagdag sa Address Book' pagkatapos magpadala",
714 "show_details": "Ipakita ang mga detalye",
715 "show_keys": "Ipakita ang mga seed/key",
716 "show_market_place": "Ipakita ang Marketplace",
res/values/strings_tr.arb
+1
@@ -710,6 +710,7 @@
710 "share_address": "Adresi paylaş",
711 "shared_seed_wallet_groups": "Paylaşılan tohum cüzdan grupları",
712 "show": "Göstermek",
713 + "show_address_book_popup": "Gönderdikten sonra 'adres defterine ekle' açılır",
714 "show_details": "Detayları Göster",
715 "show_keys": "Tohumları/anahtarları göster",
716 "show_market_place": "Pazar Yerini Göster",
res/values/strings_uk.arb
+1
@@ -711,6 +711,7 @@
711 "share_address": "Поділитися адресою",
712 "shared_seed_wallet_groups": "Спільні групи насіннєвих гаманців",
713 "show": "Показувати",
714 + "show_address_book_popup": "Показати спливаюче вікно \"Додати до адресної книги\" після надсилання",
715 "show_details": "Показати деталі",
716 "show_keys": "Показати мнемонічну фразу/ключі",
717 "show_market_place": "Відображати маркетплейс",
res/values/strings_ur.arb
+1
@@ -712,6 +712,7 @@
712 "share_address": "پتہ شیئر کریں۔",
713 "shared_seed_wallet_groups": "مشترکہ بیج پرس گروپ",
714 "show": "دکھائیں",
715 + "show_address_book_popup": "بھیجنے کے بعد 'ایڈریس میں شامل کریں کتاب' پاپ اپ دکھائیں",
716 "show_details": "تفصیلات دکھائیں",
717 "show_keys": "بیج / چابیاں دکھائیں۔",
718 "show_market_place": "بازار دکھائیں۔",
res/values/strings_vi.arb
+1
@@ -709,6 +709,7 @@
709 "share_address": "Chia sẻ địa chỉ",
710 "shared_seed_wallet_groups": "Nhóm ví hạt được chia sẻ",
711 "show": "Trình diễn",
712 + "show_address_book_popup": "Hiển thị cửa sổ bật lên 'Thêm vào sổ địa chỉ' sau khi gửi",
713 "show_details": "Hiển thị chi tiết",
714 "show_keys": "Hiển thị hạt giống/khóa",
715 "show_market_place": "Hiển thị Thị trường",
res/values/strings_yo.arb
+1
@@ -711,6 +711,7 @@
711 "share_address": "Pín àdírẹ́sì",
712 "shared_seed_wallet_groups": "Awọn ẹgbẹ ti a pin irugbin",
713 "show": "Fihan",
714 + "show_address_book_popup": "Fihan 'ṣafikun si Agbejade Iwe' Lẹhin fifiranṣẹ",
715 "show_details": "Fi ìsọfúnni kékeré hàn",
716 "show_keys": "Wo hóró / àwọn kọ́kọ́rọ́",
717 "show_market_place": "Wa Sopọ Pataki",
res/values/strings_zh.arb
+1
@@ -710,6 +710,7 @@
710 "share_address": "分享地址",
711 "shared_seed_wallet_groups": "共享种子钱包组",
712 "show": "展示",
713 + "show_address_book_popup": "发送后显示“添加到通讯簿”弹出窗口",
714 "show_details": "显示详细信息",
715 "show_keys": "显示种子/密钥",
716 "show_market_place": "显示市场",