Hide available balance in send card (#2662)
What changed, and why it matters
This commit is a small privacy/usability fix for the send screen. It makes the wallet's available balance respect the user's 'hide balance' setting, and lets them tap to temporarily reveal it. There is no security vulnerability being fixed here.
No security action required. Treat as a routine privacy/usability improvement.
Security signals we found
UI privacy improvement: balance no longer shown on send page when user has chosen to hide balances
No cryptographic, network, or permission changes
No input validation, authentication, or transaction logic modified
Evidence from the diff
The change wraps the balance text on the send page in a GestureDetector and Observer. When the user’s balance display mode is set to hidden, it shows a ‘Tap to reveal’ label instead of the actual balance; tapping toggles the display mode via balanceViewModel.switchBalanceValue(). The bulk of the diff is adding the new localized string across 30 language files.
Changed components
lib/src/screens/send/widgets/send_card.dartLocalization string resources (res/values/strings_*.arb)Inspect captured patch +62 / −9
diff --git a/lib/src/screens/send/widgets/send_card.dart b/lib/src/screens/send/widgets/send_card.dart
index 76eec7dc..8335bd4f 100644
--- a/lib/src/screens/send/widgets/send_card.dart
+++ b/lib/src/screens/send/widgets/send_card.dart
@@ -1,6 +1,7 @@
import 'dart:async';
import 'package:cake_wallet/core/open_crypto_pay/open_cryptopay_service.dart';
+import 'package:cake_wallet/entities/balance_display_mode.dart';
import 'package:cake_wallet/entities/priority_for_wallet_type.dart';
import 'package:cake_wallet/src/screens/receive/widgets/currency_input_field.dart';
import 'package:cake_wallet/src/widgets/bottom_sheet/payment_confirmation_bottom_sheet.dart';
@@ -536,13 +537,36 @@ class SendCardState extends State<SendCard> with AutomaticKeepAliveClientMixin<S
FutureBuilder<String>(
future: sendViewModel.sendingBalance,
builder: (context, snapshot) {
- return Text(
- snapshot.data ??
- sendViewModel.balance, // default to balance while loading
- style: Theme.of(context).textTheme.bodySmall!.copyWith(
- fontWeight: FontWeight.w600,
- color: Theme.of(context).colorScheme.onSurfaceVariant,
- ),
+ return GestureDetector(
+ onTap: () {
+ sendViewModel.balanceViewModel
+ .switchBalanceValue();
+ },
+ child: Observer(builder: (_) {
+ final hidden = sendViewModel
+ .balanceViewModel.displayMode ==
+ BalanceDisplayMode.hiddenBalance;
+ return Text(
+ hidden
+ ? S.of(context).show_balance_send_page
+ : (snapshot.data ??
+ sendViewModel.balance),
+ // default to balance while loading
+ style: Theme.of(context)
+ .textTheme
+ .bodySmall!
+ .copyWith(
+ fontWeight: FontWeight.w600,
+ color: hidden
+ ? Theme.of(context)
+ .colorScheme
+ .primary
+ : Theme.of(context)
+ .colorScheme
+ .onSurfaceVariant,
+ ),
+ );
+ }),
);
},
)
diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb
index 33709eb3..eb7fd50e 100644
--- a/res/values/strings_ar.arb
+++ b/res/values/strings_ar.arb
@@ -871,6 +871,7 @@
"show": "يعرض",
"show_address_book_popup": "عرض دفتر العناوين المنبثقة",
"show_balance": "اضغط لفترة طويلة لإظهار التوازن",
+ "show_balance_send_page": "انقر للكشف",
"show_balance_toast": "اضغط لفترة طويلة لإخفاء أو إظهار التوازن",
"show_details": "اظهر التفاصيل",
"show_keys": "اظهار السييد / المفاتيح",
diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb
index 0484cc66..e304243f 100644
--- a/res/values/strings_bg.arb
+++ b/res/values/strings_bg.arb
@@ -871,6 +871,7 @@
"show": "Показване",
"show_address_book_popup": "Показване на изскачащ прозорец на адресна книга",
"show_balance": "Дълго натиснете, за да покажете баланса",
+ "show_balance_send_page": "Докоснете, за да разкриете",
"show_balance_toast": "Дълго натискане, за да се скрие или покаже баланс",
"show_details": "Показване на подробностите",
"show_keys": "Покажи seed/keys",
diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb
index e73b1f4b..8f81691f 100644
--- a/res/values/strings_cs.arb
+++ b/res/values/strings_cs.arb
@@ -871,6 +871,7 @@
"show": "Show",
"show_address_book_popup": "Zobrazit vyskakovací okno",
"show_balance": "Dlouhý stisknutí zobrazí rovnováhu",
+ "show_balance_send_page": "Klepnutím zobrazíte",
"show_balance_toast": "Dlouhý stiskněte pro skrytí nebo zobrazení rovnováhy",
"show_details": "Zobrazit detaily",
"show_keys": "Zobrazit seed/klíče",
diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb
index fb5ff2f8..6407d92e 100644
--- a/res/values/strings_de.arb
+++ b/res/values/strings_de.arb
@@ -872,6 +872,7 @@
"show": "Zeigen",
"show_address_book_popup": "Popup \"zum Adressbuch hinzufügen\" nach dem Senden anzeigen",
"show_balance": "Lange drücken, um das Kontoguthaben zu zeigen",
+ "show_balance_send_page": "Zum Enthüllen tippen",
"show_balance_toast": "Langes drücken, um das Kontoguthaben zu verbergen oder zu zeigen",
"show_details": "Details anzeigen",
"show_keys": "Seed/Schlüssel anzeigen",
diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb
index 2cd95ea2..34074cb2 100644
--- a/res/values/strings_en.arb
+++ b/res/values/strings_en.arb
@@ -872,6 +872,7 @@
"show": "Show",
"show_address_book_popup": "Show Address Book popup",
"show_balance": "Long Press to Show Balance",
+ "show_balance_send_page": "Tap to reveal",
"show_balance_toast": "Long press to hide or show balance",
"show_details": "Show Details",
"show_keys": "Show seed/keys",
diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb
index 0c28290b..19529911 100644
--- a/res/values/strings_es.arb
+++ b/res/values/strings_es.arb
@@ -366,8 +366,8 @@
"estimated_new_fee": "Nueva tarifa estimada",
"estimated_receive_amount": "Cantidad estimada a recibir",
"eta": "ETA",
- "etherscan_history": "Historial de Etherscan",
"ethereum_ecosystem": "Ecosistema Etereum",
+ "etherscan_history": "Historial de Etherscan",
"event": "Evento",
"events": "Eventos",
"evm_ecosystem_description": "Si es necesario, modifica la red y el token que deseas utilizar para este pago.",
@@ -872,6 +872,7 @@
"show": "Mostrar",
"show_address_book_popup": "Mostrar la ventana emergente de la libreta de direcciones",
"show_balance": "Mantén pulsado para mostrar saldo",
+ "show_balance_send_page": "Toca para revelar",
"show_balance_toast": "Mantén pulsado para ocultar o mostrar el saldo",
"show_details": "Mostrar detalles",
"show_keys": "Mostrar semilla/claves",
diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb
index 94103b0e..58ba70f6 100644
--- a/res/values/strings_fr.arb
+++ b/res/values/strings_fr.arb
@@ -871,6 +871,7 @@
"show": "Montrer",
"show_address_book_popup": "Afficher la fenêtre contextuelle du carnet d'adresses",
"show_balance": "Appuyez longtemps pour afficher votre solde",
+ "show_balance_send_page": "Appuyez pour révéler",
"show_balance_toast": "Appuyez longtemps pour masquer ou afficher votre solde",
"show_details": "Afficher les détails",
"show_keys": "Visualiser la phrase secrète (seed) et les clefs",
diff --git a/res/values/strings_gn.arb b/res/values/strings_gn.arb
index 3b204e87..93d3ab19 100644
--- a/res/values/strings_gn.arb
+++ b/res/values/strings_gn.arb
@@ -667,6 +667,7 @@
"setup_your_debit_card": "Emohenda nde tarjeta débito",
"share": "Mbohasa",
"share_address": "Mbohasa dirección",
+ "show_balance_send_page": "Tap ojekuaa haguã .",
"show_details": "Hechauka umi mba’e",
"show_keys": "Hechauka ñe’ẽñemi",
"show_market_place": "Hechauka ñemuha renda",
diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb
index bb26fed0..c942ae9e 100644
--- a/res/values/strings_ha.arb
+++ b/res/values/strings_ha.arb
@@ -873,6 +873,7 @@
"show": "Nuna",
"show_address_book_popup": "Nuna littafin littafin adireshi",
"show_balance": "Dogon latsawa don nuna ma'auni",
+ "show_balance_send_page": "Matsa don bayyana",
"show_balance_toast": "Latsa latsawa don ɓoye ko nuna ma'auni",
"show_details": "Nuna Cikakkun bayanai",
"show_keys": "Nuna iri/maɓallai",
diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb
index 4c83c23a..a7ee269e 100644
--- a/res/values/strings_hi.arb
+++ b/res/values/strings_hi.arb
@@ -873,6 +873,7 @@
"show": "दिखाओ",
"show_address_book_popup": "पता बुक पॉपअप दिखाएं",
"show_balance": "बैलेंस दिखाने के लिए लॉन्ग प्रेस",
+ "show_balance_send_page": "प्रकट करने के लिए टैप करें",
"show_balance_toast": "संतुलन को छिपाने या दिखाने के लिए लॉन्ग प्रेस",
"show_details": "विवरण दिखाएं",
"show_keys": "बीज / कुंजियाँ दिखाएँ",
diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb
index db714439..69032016 100644
--- a/res/values/strings_hr.arb
+++ b/res/values/strings_hr.arb
@@ -871,6 +871,7 @@
"show": "Pokazati",
"show_address_book_popup": "Prikaži Popup adresara",
"show_balance": "Dugački pritisak za pokazivanje ravnoteže",
+ "show_balance_send_page": "Dodirnite za otkrivanje",
"show_balance_toast": "Dugo pritisnite da biste sakrili ili pokazali ravnotežu",
"show_details": "Prikaži pojedinosti",
"show_keys": "Prikaži pristupni izraz/ključ",
diff --git a/res/values/strings_hy.arb b/res/values/strings_hy.arb
index 694a01dd..f46b6a79 100644
--- a/res/values/strings_hy.arb
+++ b/res/values/strings_hy.arb
@@ -869,6 +869,7 @@
"show": "Ցուցահանդես",
"show_address_book_popup": "Show ուցադրել հասցեի գրքի թռուցիկ",
"show_balance": "Երկար մամուլ, հավասարակշռությունը ցույց տալու համար",
+ "show_balance_send_page": "Հպեք՝ բացահայտելու համար",
"show_balance_toast": "Երկար սեղմեք `հավասարակշռությունը թաքցնելու կամ ցույց տալու համար",
"show_details": "Ցուցադրել մանրամասներ",
"show_keys": "Ցուցադրել բանալիներ",
diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb
index c6e19726..959dfbf1 100644
--- a/res/values/strings_id.arb
+++ b/res/values/strings_id.arb
@@ -874,6 +874,7 @@
"show": "Menunjukkan",
"show_address_book_popup": "Tampilkan Alamat Buku Popup",
"show_balance": "PRESS PANJANG UNTUK MENUNJUKKAN Balance",
+ "show_balance_send_page": "Ketuk untuk mengungkapkan",
"show_balance_toast": "Tekan panjang untuk menyembunyikan atau menunjukkan keseimbangan",
"show_details": "Tampilkan Rincian",
"show_keys": "Tampilkan seed/kunci",
diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb
index 603c862a..cae8f9e4 100644
--- a/res/values/strings_it.arb
+++ b/res/values/strings_it.arb
@@ -872,6 +872,7 @@
"show": "Mostra",
"show_address_book_popup": "Mostra popup della rubrica",
"show_balance": "Tieni premuto per mostrare l'importo",
+ "show_balance_send_page": "Tocca per rivelare",
"show_balance_toast": "Tieni premuto per nascondere o mostrare l'importo",
"show_details": "Mostra dettagli",
"show_keys": "Mostra seme/chiavi",
diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb
index 9b47ef5f..97ef756e 100644
--- a/res/values/strings_ja.arb
+++ b/res/values/strings_ja.arb
@@ -872,6 +872,7 @@
"show": "見せる",
"show_address_book_popup": "アドレス帳のポップアップを表示します",
"show_balance": "バランスを示すためにロングプレス",
+ "show_balance_send_page": "タップして表示します",
"show_balance_toast": "バランスを隠したり表示したりするためにロングプレス",
"show_details": "詳細を表示",
"show_keys": "シード/キーを表示する",
diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb
index be7f2106..00d4ea97 100644
--- a/res/values/strings_ko.arb
+++ b/res/values/strings_ko.arb
@@ -872,6 +872,7 @@
"show": "표시",
"show_address_book_popup": "주소록 팝업 표시",
"show_balance": "길게 눌러 잔액 표시",
+ "show_balance_send_page": "공개하려면 탭하세요.",
"show_balance_toast": "길게 눌러 잔액 숨기기 또는 표시",
"show_details": "세부 정보 표시",
"show_keys": "시드/키 표시",
diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb
index 2507dda1..43203af8 100644
--- a/res/values/strings_my.arb
+++ b/res/values/strings_my.arb
@@ -871,6 +871,7 @@
"show": "ပြသ",
"show_address_book_popup": "လိပ်စာစာအုပ် popup ပြပါ",
"show_balance": "ချိန်ခွင်လျှာကိုပြသရန်ရှည်လျားသောစာနယ်ဇင်း",
+ "show_balance_send_page": "ထုတ်ဖေါ်ဖို့ကိုအသာပုတ်ပါ",
"show_balance_toast": "ချိန်ခွင်လျှာကိုဖျောက်ရန်သို့မဟုတ်ပြသရန်ရှည်လျားသောစာနယ်ဇင်း",
"show_details": "အသေးစိတ်ပြ",
"show_keys": "မျိုးစေ့ /သော့များကို ပြပါ။",
diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb
index 056908f1..26ddf31d 100644
--- a/res/values/strings_nl.arb
+++ b/res/values/strings_nl.arb
@@ -871,6 +871,7 @@
"show": "Show",
"show_address_book_popup": "Toon adresboek pop -up",
"show_balance": "Lange pers om evenwicht te tonen",
+ "show_balance_send_page": "Tik om te onthullen",
"show_balance_toast": "Lange pers om evenwicht te verbergen of te tonen",
"show_details": "Toon details",
"show_keys": "Toon zaad/sleutels",
diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb
index c2509f82..fcf9d5c6 100644
--- a/res/values/strings_pl.arb
+++ b/res/values/strings_pl.arb
@@ -366,8 +366,8 @@
"estimated_new_fee": "Szacowana nowa opłata",
"estimated_receive_amount": "Szacowana kwota otrzymania",
"eta": "ETA",
- "etherscan_history": "Historia Etherscan",
"ethereum_ecosystem": "Ekosystem Ethereum",
+ "etherscan_history": "Historia Etherscan",
"event": "Zdarzenie",
"events": "Zdarzenia",
"exchange": "Wymiana",
@@ -870,6 +870,7 @@
"show": "Pokaż",
"show_address_book_popup": "Pokaż wyskakujące okno książki adresowej",
"show_balance": "Przytrzymaj, aby wyświetlić saldo",
+ "show_balance_send_page": "Kliknij, aby odsłonić",
"show_balance_toast": "Przytrzymaj, aby ukryć lub pokazać saldo",
"show_details": "Pokaż Szczegóły",
"show_keys": "Pokaż seed/klucze",
diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb
index e1b7d4c5..08afd17c 100644
--- a/res/values/strings_pt.arb
+++ b/res/values/strings_pt.arb
@@ -873,6 +873,7 @@
"show": "Mostrar",
"show_address_book_popup": "Mostrar pop -up de livro de endereços",
"show_balance": "Pressione há muito tempo para mostrar o equilíbrio",
+ "show_balance_send_page": "Toque para revelar",
"show_balance_toast": "Pressione há muito tempo para se esconder ou mostrar equilíbrio",
"show_details": "Mostrar detalhes",
"show_keys": "Mostrar semente/chaves",
diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb
index 5993fd53..25799848 100644
--- a/res/values/strings_ru.arb
+++ b/res/values/strings_ru.arb
@@ -872,6 +872,7 @@
"show": "Показывать",
"show_address_book_popup": "Показать адресную книгу всплывающее окно",
"show_balance": "Длинная пресса, чтобы показать баланс",
+ "show_balance_send_page": "Нажмите, чтобы открыть",
"show_balance_toast": "Длинная нажавка, чтобы скрыть или показать баланс",
"show_details": "Показать детали",
"show_keys": "Показать мнемоническую фразу/ключи",
diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb
index d5887fd7..c45a1255 100644
--- a/res/values/strings_th.arb
+++ b/res/values/strings_th.arb
@@ -871,6 +871,7 @@
"show": "แสดง",
"show_address_book_popup": "แสดงสมุดที่อยู่ป๊อปอัพ",
"show_balance": "กดยาวเพื่อแสดงความสมดุล",
+ "show_balance_send_page": "แตะเพื่อเปิดเผย",
"show_balance_toast": "กดนานเพื่อซ่อนหรือแสดงความสมดุล",
"show_details": "แสดงรายละเอียด",
"show_keys": "แสดงซีด/คีย์",
diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb
index 97712fdb..05cb2aac 100644
--- a/res/values/strings_tl.arb
+++ b/res/values/strings_tl.arb
@@ -871,6 +871,7 @@
"show": "Ipakita",
"show_address_book_popup": "Ipakita ang Address Book Popup",
"show_balance": "Mahabang pindutin upang ipakita ang balanse",
+ "show_balance_send_page": "Tapikin upang ibunyag",
"show_balance_toast": "Mahabang pindutin upang itago o ipakita ang balanse",
"show_details": "Ipakita ang mga detalye",
"show_keys": "Ipakita ang mga seed/key",
diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb
index be2dd8fd..eb05ccb5 100644
--- a/res/values/strings_tr.arb
+++ b/res/values/strings_tr.arb
@@ -871,6 +871,7 @@
"show": "Göstermek",
"show_address_book_popup": "Adres Kitabı Popup'ı Göster",
"show_balance": "Dengeyi Göstermek İçin Uzun Basın",
+ "show_balance_send_page": "Ortaya çıkarmak için dokunun",
"show_balance_toast": "Dengeyi gizlemek veya göstermek için uzun basın",
"show_details": "Detayları Göster",
"show_keys": "Tohumları/anahtarları göster",
diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb
index e64086e2..475d2764 100644
--- a/res/values/strings_uk.arb
+++ b/res/values/strings_uk.arb
@@ -872,6 +872,7 @@
"show": "Показувати",
"show_address_book_popup": "Показати спливаюче вікно адреси книги",
"show_balance": "Довга преса, щоб показати рівновагу",
+ "show_balance_send_page": "Торкніться, щоб відкрити",
"show_balance_toast": "Довга преса, щоб приховати або показати рівновагу",
"show_details": "Показати деталі",
"show_keys": "Показати мнемонічну фразу/ключі",
diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb
index 5190195d..5fd0c22f 100644
--- a/res/values/strings_ur.arb
+++ b/res/values/strings_ur.arb
@@ -873,6 +873,7 @@
"show": "دکھائیں",
"show_address_book_popup": "ایڈریس بک پاپ اپ دکھائیں",
"show_balance": "توازن ظاہر کرنے کے لئے طویل پریس",
+ "show_balance_send_page": "ظاہر کرنے کے لئے ٹیپ کریں",
"show_balance_toast": "توازن چھپانے یا ظاہر کرنے کے لئے طویل پریس",
"show_details": "تفصیلات دکھائیں",
"show_keys": "بیج / چابیاں دکھائیں۔",
diff --git a/res/values/strings_vi.arb b/res/values/strings_vi.arb
index 4f3abc8d..f593c26f 100644
--- a/res/values/strings_vi.arb
+++ b/res/values/strings_vi.arb
@@ -868,6 +868,7 @@
"show": "Trình diễn",
"show_address_book_popup": "Hiển thị cửa sổ bật lên sổ sách địa chỉ",
"show_balance": "Báo chí dài để hiển thị sự cân bằng",
+ "show_balance_send_page": "Nhấn để tiết lộ",
"show_balance_toast": "Nhấn dài để ẩn hoặc hiển thị sự cân bằng",
"show_details": "Hiển thị chi tiết",
"show_keys": "Hiển thị hạt giống/khóa",
diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb
index ef80e77a..0292f1c2 100644
--- a/res/values/strings_yo.arb
+++ b/res/values/strings_yo.arb
@@ -872,6 +872,7 @@
"show": "Fihan",
"show_address_book_popup": "Fihan Agbejade Iwe Adirẹsi",
"show_balance": "Tẹ Tẹ lati ṣafihan iwọntunwọnsi",
+ "show_balance_send_page": "Fọwọ ba lati ṣafihan",
"show_balance_toast": "Tẹ Tẹ lati tọju tabi ṣafihan iwọntunwọnsi",
"show_details": "Fi ìsọfúnni kékeré hàn",
"show_keys": "Wo hóró / àwọn kọ́kọ́rọ́",
diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb
index ba602b02..0456e4df 100644
--- a/res/values/strings_zh.arb
+++ b/res/values/strings_zh.arb
@@ -871,6 +871,7 @@
"show": "展示",
"show_address_book_popup": "显示地址簿弹出",
"show_balance": "长印刷以显示平衡",
+ "show_balance_send_page": "点击即可显示",
"show_balance_toast": "长按以隐藏或显示平衡",
"show_details": "显示详细信息",
"show_keys": "显示种子/密钥",
Why this scored 20/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.