diff --git a/android/app/src/main/AndroidManifestBase.xml b/android/app/src/main/AndroidManifestBase.xml
index 5d0c41846..f43b0369b 100644
--- a/android/app/src/main/AndroidManifestBase.xml
+++ b/android/app/src/main/AndroidManifestBase.xml
@@ -5,6 +5,7 @@
+
YatService());
getIt.registerFactory(() => AddressResolver(yatService: getIt.get()));
-
+
+ getIt.registerFactoryParam(
+ (String qrData, bool isLight) => FullscreenQRPage(qrData: qrData, isLight: isLight,));
+
_isSetupFinished = true;
}
diff --git a/lib/router.dart b/lib/router.dart
index acfb18684..01443a138 100644
--- a/lib/router.dart
+++ b/lib/router.dart
@@ -1,6 +1,5 @@
import 'package:cake_wallet/entities/contact_record.dart';
import 'package:cake_wallet/buy/order.dart';
-import 'package:cake_wallet/entities/transaction_description.dart';
import 'package:cake_wallet/src/screens/backup/backup_page.dart';
import 'package:cake_wallet/src/screens/backup/edit_backup_password_page.dart';
import 'package:cake_wallet/src/screens/buy/buy_webview_page.dart';
@@ -13,10 +12,7 @@ import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart';
import 'package:cake_wallet/src/screens/support/support_page.dart';
import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_details_page.dart';
import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_list_page.dart';
-import 'package:cake_wallet/store/settings_store.dart';
-import 'package:cake_wallet/view_model/buy/buy_view_model.dart';
import 'package:cake_wallet/view_model/monero_account_list/account_list_item.dart';
-import 'package:cake_wallet/view_model/unspent_coins/unspent_coins_item.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/routes.dart';
@@ -26,7 +22,6 @@ import 'package:cake_wallet/utils/language_list.dart';
import 'package:cake_wallet/view_model/wallet_new_vm.dart';
import 'package:cake_wallet/view_model/wallet_restoration_from_seed_vm.dart';
import 'package:cake_wallet/view_model/wallet_restoration_from_keys_vm.dart';
-import 'package:cake_wallet/entities/contact.dart';
import 'package:cake_wallet/exchange/trade.dart';
import 'package:cw_core/transaction_info.dart';
import 'package:cw_core/wallet_type.dart';
@@ -66,16 +61,15 @@ import 'package:cake_wallet/src/screens/exchange/exchange_template_page.dart';
import 'package:cake_wallet/src/screens/exchange_trade/exchange_confirm_page.dart';
import 'package:cake_wallet/src/screens/exchange_trade/exchange_trade_page.dart';
import 'package:flutter/services.dart';
-import 'package:hive/hive.dart';
-import 'package:cake_wallet/wallet_type_utils.dart';
import 'package:cake_wallet/wallet_types.g.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/address_page.dart';
+import 'package:cake_wallet/src/screens/receive/fullscreen_qr_page.dart';
RouteSettings currentRouteSettings;
Route createRoute(RouteSettings settings) {
currentRouteSettings = settings;
-
+
switch (settings.name) {
case Routes.welcome:
return MaterialPageRoute(builder: (_) => createWelcomePage());
@@ -84,7 +78,7 @@ Route createRoute(RouteSettings settings) {
return CupertinoPageRoute(
builder: (_) => getIt.get(
param1: (PinCodeState context, dynamic _) {
- if (availableWalletTypes.length == 1) {
+ if (availableWalletTypes.length == 1) {
Navigator.of(context.context).pushNamed(Routes.newWallet, arguments: availableWalletTypes.first);
} else {
Navigator.of(context.context).pushNamed(Routes.newWalletType);
@@ -402,6 +396,16 @@ Route createRoute(RouteSettings settings) {
getIt.get(
param1: args));
+ case Routes.fullscreenQR:
+ final args = settings.arguments as Map;
+
+ return MaterialPageRoute(
+ builder: (_) =>
+ getIt.get(
+ param1: args['qrData'] as String,
+ param2: args['isLight'] as bool,
+ ));
+
default:
return MaterialPageRoute(
builder: (_) => Scaffold(
diff --git a/lib/routes.dart b/lib/routes.dart
index 23e236023..eea2b7488 100644
--- a/lib/routes.dart
+++ b/lib/routes.dart
@@ -60,4 +60,5 @@ class Routes {
static const moneroRestoreWalletFromWelcome = '/monero_restore_wallet';
static const moneroNewWalletFromWelcome = '/monero_new_wallet';
static const addressPage = '/address_page';
+ static const fullscreenQR = '/fullscreen_qr';
}
\ No newline at end of file
diff --git a/lib/src/screens/receive/fullscreen_qr_page.dart b/lib/src/screens/receive/fullscreen_qr_page.dart
new file mode 100644
index 000000000..7ef87c749
--- /dev/null
+++ b/lib/src/screens/receive/fullscreen_qr_page.dart
@@ -0,0 +1,85 @@
+import 'package:cake_wallet/src/screens/receive/widgets/qr_image.dart';
+import 'package:cake_wallet/themes/theme_base.dart';
+import 'package:flutter/material.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:cake_wallet/src/screens/base_page.dart';
+
+class FullscreenQRPage extends BasePage {
+ FullscreenQRPage({@required this.qrData, @required this.isLight});
+
+ final bool isLight;
+ final String qrData;
+
+ @override
+ Color get backgroundLightColor => currentTheme.type == ThemeType.bright ? Colors.transparent : Colors.white;
+
+ @override
+ Color get backgroundDarkColor => Colors.transparent;
+
+ @override
+ bool get resizeToAvoidBottomInset => false;
+
+ @override
+ Widget leading(BuildContext context) {
+ final _backButton = Icon(
+ Icons.arrow_back_ios,
+ color: Theme.of(context).accentTextTheme.display3.backgroundColor,
+ size: 16,
+ );
+
+ return SizedBox(
+ height: 37,
+ width: 37,
+ child: ButtonTheme(
+ minWidth: double.minPositive,
+ child: FlatButton(
+ highlightColor: Colors.transparent,
+ splashColor: Colors.transparent,
+ padding: EdgeInsets.all(0),
+ onPressed: () => onClose(context),
+ child: _backButton,
+ ),
+ ),
+ );
+ }
+
+ @override
+ Widget Function(BuildContext, Widget) get rootWrapper => (BuildContext context, Widget scaffold) => Container(
+ decoration: BoxDecoration(
+ gradient: LinearGradient(
+ colors: [
+ Theme.of(context).accentColor,
+ Theme.of(context).scaffoldBackgroundColor,
+ Theme.of(context).primaryColor,
+ ],
+ begin: Alignment.topRight,
+ end: Alignment.bottomLeft,
+ ),
+ ),
+ child: scaffold);
+
+ @override
+ Widget body(BuildContext context) {
+ return Padding(
+ padding: EdgeInsets.symmetric(horizontal: MediaQuery.of(context).size.width * 0.05),
+ child: Hero(
+ tag: Key(qrData),
+ child: Center(
+ child: AspectRatio(
+ aspectRatio: 1.0,
+ child: Container(
+ padding: EdgeInsets.all(5),
+ decoration: BoxDecoration(
+ border: Border.all(width: 3, color: Theme.of(context).accentTextTheme.display3.backgroundColor)),
+ child: QrImage(
+ data: qrData,
+ backgroundColor: isLight ? Colors.transparent : Colors.black,
+ foregroundColor: Theme.of(context).accentTextTheme.display3.backgroundColor,
+ ),
+ ),
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/src/screens/receive/widgets/qr_widget.dart b/lib/src/screens/receive/widgets/qr_widget.dart
index 1bfbd6230..96691aa45 100644
--- a/lib/src/screens/receive/widgets/qr_widget.dart
+++ b/lib/src/screens/receive/widgets/qr_widget.dart
@@ -1,4 +1,6 @@
+import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/utils/show_bar.dart';
+import 'package:device_display_brightness/device_display_brightness.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/services.dart';
@@ -38,101 +40,134 @@ class QRWidget extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
- Row(children: [
- Spacer(flex: 3),
- Observer(
- builder: (_) => Flexible(
- flex: 5,
- child: Center(
- child: AspectRatio(
- aspectRatio: 1.0,
- child: Container(
- padding: EdgeInsets.all(5),
- decoration: BoxDecoration(
- border: Border.all(
- width: 3,
- color: Theme.of(context).accentTextTheme.
- display3.backgroundColor
- )
- ),
- child: QrImage(
- data: addressListViewModel.uri.toString(),
- backgroundColor: isLight ? Colors.transparent : Colors.black,
- foregroundColor: Theme.of(context).accentTextTheme.
- display3.backgroundColor,
- ),
- ))))),
- Spacer(flex: 3)
- ]),
- if (isAmountFieldShow)
+ Column(
+ children: [
Padding(
- padding: EdgeInsets.only(top: 10),
- child: Row(
- children: [
- Expanded(
- child: Form(
- key: _formKey,
- child: BaseTextFormField(
- focusNode: amountTextFieldFocusNode,
- controller: amountController,
- keyboardType: TextInputType.numberWithOptions(
- decimal: true),
- inputFormatters: [
- BlacklistingTextInputFormatter(
- RegExp('[\\-|\\ ]'))
- ],
- textAlign: TextAlign.center,
- hintText: S.of(context).receive_amount,
- textColor: Theme.of(context).accentTextTheme.
- display3.backgroundColor,
- borderColor: Theme.of(context)
- .textTheme
- .headline
- .decorationColor,
- validator: AmountValidator(
- type: addressListViewModel.type,
- isAutovalidate: true),
- autovalidate: true,
- placeholderTextStyle: TextStyle(
- color: Theme.of(context).hoverColor,
- fontSize: 18,
- fontWeight: FontWeight.w500))))
- ],
- ),
+ padding: const EdgeInsets.only(bottom: 12),
+ child: Text(
+ S.of(context).qr_fullscreen,
+ style: TextStyle(
+ fontSize: 14,
+ fontWeight: FontWeight.w500,
+ color: Theme.of(context).accentTextTheme.display3.backgroundColor),
),
+ ),
+ Row(
+ children: [
+ Spacer(flex: 3),
+ Observer(
+ builder: (_) => Flexible(
+ flex: 5,
+ child: GestureDetector(
+ onTap: () async {
+ // Get the current brightness:
+ final double brightness = await DeviceDisplayBrightness.getBrightness();
+
+ // ignore: unawaited_futures
+ DeviceDisplayBrightness.setBrightness(1.0);
+ await Navigator.pushNamed(
+ context,
+ Routes.fullscreenQR,
+ arguments: {
+ 'qrData': addressListViewModel.uri.toString(),
+ 'isLight': isLight,
+ },
+ );
+ // ignore: unawaited_futures
+ DeviceDisplayBrightness.setBrightness(brightness);
+ },
+ child: Hero(
+ tag: Key(addressListViewModel.uri.toString()),
+ child: Center(
+ child: AspectRatio(
+ aspectRatio: 1.0,
+ child: Container(
+ padding: EdgeInsets.all(5),
+ decoration: BoxDecoration(
+ border: Border.all(
+ width: 3,
+ color: Theme.of(context).accentTextTheme.display3.backgroundColor,
+ ),
+ ),
+ child: QrImage(
+ data: addressListViewModel.uri.toString(),
+ backgroundColor: isLight ? Colors.transparent : Colors.black,
+ foregroundColor: Theme.of(context).accentTextTheme.display3.backgroundColor,
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ Spacer(flex: 3)
+ ],
+ ),
+ ],
+ ),
+ if (isAmountFieldShow)
+ Padding(
+ padding: EdgeInsets.only(top: 10),
+ child: Row(
+ children: [
+ Expanded(
+ child: Form(
+ key: _formKey,
+ child: BaseTextFormField(
+ focusNode: amountTextFieldFocusNode,
+ controller: amountController,
+ keyboardType: TextInputType.numberWithOptions(decimal: true),
+ inputFormatters: [BlacklistingTextInputFormatter(RegExp('[\\-|\\ ]'))],
+ textAlign: TextAlign.center,
+ hintText: S.of(context).receive_amount,
+ textColor: Theme.of(context).accentTextTheme.display3.backgroundColor,
+ borderColor: Theme.of(context).textTheme.headline.decorationColor,
+ validator: AmountValidator(type: addressListViewModel.type, isAutovalidate: true),
+ autovalidate: true,
+ placeholderTextStyle: TextStyle(
+ color: Theme.of(context).hoverColor,
+ fontSize: 18,
+ fontWeight: FontWeight.w500,
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
Padding(
padding: EdgeInsets.only(top: 8, bottom: 8),
child: Builder(
- builder: (context) => Observer(
- builder: (context) => GestureDetector(
- onTap: () {
- Clipboard.setData(ClipboardData(
- text: addressListViewModel.address.address));
- showBar(
- context, S.of(context).copied_to_clipboard);
- },
- child: Row(
- mainAxisSize: MainAxisSize.max,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(
- child: Text(
- addressListViewModel.address.address,
- textAlign: TextAlign.center,
- style: TextStyle(
- fontSize: 15,
- fontWeight: FontWeight.w500,
- color: Theme.of(context).accentTextTheme.
- display3.backgroundColor),
- ),
- ),
- Padding(
- padding: EdgeInsets.only(left: 12),
- child: copyImage,
- )
- ],
- ),
- ))),
+ builder: (context) => Observer(
+ builder: (context) => GestureDetector(
+ onTap: () {
+ Clipboard.setData(ClipboardData(text: addressListViewModel.address.address));
+ showBar(context, S.of(context).copied_to_clipboard);
+ },
+ child: Row(
+ mainAxisSize: MainAxisSize.max,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Expanded(
+ child: Text(
+ addressListViewModel.address.address,
+ textAlign: TextAlign.center,
+ style: TextStyle(
+ fontSize: 15,
+ fontWeight: FontWeight.w500,
+ color: Theme.of(context).accentTextTheme.display3.backgroundColor),
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.only(left: 12),
+ child: copyImage,
+ )
+ ],
+ ),
+ ),
+ ),
+ ),
)
],
);
diff --git a/pubspec_base.yaml b/pubspec_base.yaml
index 62f129246..8d1c098ae 100644
--- a/pubspec_base.yaml
+++ b/pubspec_base.yaml
@@ -54,6 +54,7 @@ dependencies:
file_picker: ^3.0.0-nullsafety.2
unorm_dart: ^0.2.0
permission_handler: ^5.0.1+1
+ device_display_brightness: ^0.0.6
dev_dependencies:
flutter_test:
diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb
index 9d1cd281c..fa34eeced 100644
--- a/res/values/strings_de.arb
+++ b/res/values/strings_de.arb
@@ -151,6 +151,7 @@
"subaddresses" : "Unteradressen",
"addresses" : "Adressen",
"scan_qr_code" : "Scannen Sie den QR-Code, um die Adresse zu erhalten",
+ "qr_fullscreen" : "Tippen Sie hier, um den QR-Code im Vollbildmodus zu öffnen",
"rename" : "Umbenennen",
"choose_account" : "Konto auswählen",
"create_new_account" : "Neues Konto erstellen",
diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb
index daa3d9d66..25c449929 100644
--- a/res/values/strings_en.arb
+++ b/res/values/strings_en.arb
@@ -151,6 +151,7 @@
"subaddresses" : "Subaddresses",
"addresses" : "Addresses",
"scan_qr_code" : "Scan the QR code to get the address",
+ "qr_fullscreen" : "Tap to open full screen QR code",
"rename" : "Rename",
"choose_account" : "Choose account",
"create_new_account" : "Create new account",
diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb
index d9cfd2c4a..e520ff727 100644
--- a/res/values/strings_es.arb
+++ b/res/values/strings_es.arb
@@ -151,6 +151,7 @@
"subaddresses" : "Subdirecciones",
"addresses" : "Direcciones",
"scan_qr_code" : "Escanee el código QR para obtener la dirección",
+ "qr_fullscreen" : "Toque para abrir el código QR en pantalla completa",
"rename" : "Rebautizar",
"choose_account" : "Elegir cuenta",
"create_new_account" : "Crear una nueva cuenta",
diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb
index 6e728d7a1..af41bb225 100644
--- a/res/values/strings_fr.arb
+++ b/res/values/strings_fr.arb
@@ -149,6 +149,7 @@
"subaddresses" : "Sous-adresses",
"addresses" : "Adresses",
"scan_qr_code" : "Scannez le QR code pour obtenir l'adresse",
+ "qr_fullscreen" : "Appuyez pour ouvrir le code QR en plein écran",
"rename" : "Renommer",
"choose_account" : "Choisir le compte",
"create_new_account" : "Créer un nouveau compte",
diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb
index 34b90b9aa..9c61e180f 100644
--- a/res/values/strings_hi.arb
+++ b/res/values/strings_hi.arb
@@ -151,6 +151,7 @@
"subaddresses" : "उप पते",
"addresses" : "पतों",
"scan_qr_code" : "पता प्राप्त करने के लिए QR कोड स्कैन करें",
+ "qr_fullscreen" : "फ़ुल स्क्रीन क्यूआर कोड खोलने के लिए टैप करें",
"rename" : "नाम बदलें",
"choose_account" : "खाता चुनें",
"create_new_account" : "नया खाता बनाएँ",
diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb
index 39fc60b1f..16142ccd3 100644
--- a/res/values/strings_hr.arb
+++ b/res/values/strings_hr.arb
@@ -151,6 +151,7 @@
"subaddresses" : "Podadrese",
"addresses" : "Adrese",
"scan_qr_code" : "Skeniraj QR kod za dobivanje adrese",
+ "qr_fullscreen" : "Dodirnite za otvaranje QR koda preko cijelog zaslona",
"rename" : "Preimenuj",
"choose_account" : "Odaberi račun",
"create_new_account" : "Izradi novi račun",
diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb
index 3b208aa33..10c22001a 100644
--- a/res/values/strings_it.arb
+++ b/res/values/strings_it.arb
@@ -151,6 +151,7 @@
"subaddresses" : "Sottoindirizzi",
"addresses" : "Indirizzi",
"scan_qr_code" : "Scansiona il codice QR per ottenere l'indirizzo",
+ "qr_fullscreen" : "Tocca per aprire il codice QR a schermo intero",
"rename" : "Rinomina",
"choose_account" : "Scegli account",
"create_new_account" : "Crea nuovo account",
diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb
index 5639e68b7..3e2c3e886 100644
--- a/res/values/strings_ja.arb
+++ b/res/values/strings_ja.arb
@@ -151,6 +151,7 @@
"subaddresses" : "サブアドレス",
"addresses" : "住所",
"scan_qr_code" : "QRコードをスキャンして住所を取得します",
+ "qr_fullscreen" : "タップして全画面QRコードを開く",
"rename" : "リネーム",
"choose_account" : "アカウントを選択",
"create_new_account" : "新しいアカウントを作成する",
diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb
index 50da9147e..ad3e3ac5b 100644
--- a/res/values/strings_ko.arb
+++ b/res/values/strings_ko.arb
@@ -151,6 +151,7 @@
"subaddresses" : "하위 주소",
"addresses" : "구애",
"scan_qr_code" : "QR 코드를 스캔하여 주소를 얻습니다.",
+ "qr_fullscreen" : "전체 화면 QR 코드를 열려면 탭하세요.",
"rename" : "이름 바꾸기",
"choose_account" : "계정을 선택하십시오",
"create_new_account" : "새 계정을 만들",
diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb
index 6f2343b53..834da2c02 100644
--- a/res/values/strings_nl.arb
+++ b/res/values/strings_nl.arb
@@ -152,6 +152,7 @@
"rename" : "Hernoemen",
"addresses" : "Adressen",
"scan_qr_code" : "Scan de QR-code om het adres te krijgen",
+ "qr_fullscreen" : "Tik om de QR-code op volledig scherm te openen",
"choose_account" : "Kies account",
"create_new_account" : "Creëer een nieuw account",
"accounts_subaddresses" : "Accounts en subadressen",
diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb
index 93199a569..6bcccb1e1 100644
--- a/res/values/strings_pl.arb
+++ b/res/values/strings_pl.arb
@@ -9,9 +9,6 @@
"monero_com": "Monero.com by Cake Wallet",
"monero_com_wallet_text": "Awesome wallet for Monero",
- "haven_app": "Haven by Cake Wallet",
- "haven_app_wallet_text": "Awesome wallet for Haven",
-
"haven_app": "Haven by Cake Wallet",
"haven_app_wallet_text": "Awesome wallet for Haven",
@@ -154,6 +151,7 @@
"subaddresses" : "Podadresy",
"addresses" : "Adresy",
"scan_qr_code" : "Zeskanuj kod QR, aby uzyskać adres",
+ "qr_fullscreen" : "Dotknij, aby otworzyć pełnoekranowy kod QR",
"rename" : "Przemianować",
"choose_account" : "Wybierz konto",
"create_new_account" : "Stwórz nowe konto",
diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb
index 66dd01df4..8737de6c0 100644
--- a/res/values/strings_pt.arb
+++ b/res/values/strings_pt.arb
@@ -151,6 +151,7 @@
"subaddresses" : "Sub-endereços",
"addresses" : "Endereços",
"scan_qr_code" : "Digitalize o código QR para obter o endereço",
+ "qr_fullscreen" : "Toque para abrir o código QR em tela cheia",
"rename" : "Renomear",
"choose_account" : "Escolha uma conta",
"create_new_account" : "Criar nova conta",
diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb
index 3cc6b7518..7df0463fb 100644
--- a/res/values/strings_ru.arb
+++ b/res/values/strings_ru.arb
@@ -151,6 +151,7 @@
"subaddresses" : "Субадреса",
"addresses" : "Адреса",
"scan_qr_code" : "Отсканируйте QR-код для получения адреса",
+ "qr_fullscreen" : "Нажмите, чтобы открыть полноэкранный QR-код",
"rename" : "Переименовать",
"choose_account" : "Выберите аккаунт",
"create_new_account" : "Создать новый аккаунт",
diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb
index cba4fca95..2ef8cbb6b 100644
--- a/res/values/strings_uk.arb
+++ b/res/values/strings_uk.arb
@@ -151,6 +151,7 @@
"subaddresses" : "Субадреси",
"addresses" : "Адреси",
"scan_qr_code" : "Скануйте QR-код для одержання адреси",
+ "qr_fullscreen" : "Торкніться, щоб відкрити QR-код на весь екран",
"rename" : "Перейменувати",
"choose_account" : "Оберіть акаунт",
"create_new_account" : "Створити новий акаунт",
diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb
index 79885392b..f8632ee98 100644
--- a/res/values/strings_zh.arb
+++ b/res/values/strings_zh.arb
@@ -151,6 +151,7 @@
"subaddresses" : "子地址",
"addresses" : "地址",
"scan_qr_code" : "扫描二维码获取地址",
+ "qr_fullscreen" : "点击打开全屏二维码",
"rename" : "重命名",
"choose_account" : "选择账户",
"create_new_account" : "建立新账户",