From 7fa7c45c0cd54006a4c89d3fbebd25bc86f45f0d Mon Sep 17 00:00:00 2001 From: Rafael Saes <76502841+saltrafael@users.noreply.github.com> Date: Mon, 15 May 2023 09:26:56 -0300 Subject: [PATCH] CW-370-add-options-to-enable-disable-buy-and-sell-actions (#920) * feat: In the privacy settings screen, add 2 options to Enable/Disable Buy and Sell actions * fix: add strings * fix: add the rest of the strings * fix: disable instead of hide buy & sell buttons * fix: use disableSell * fix: main actions able to be onTapped even when disabled --- lib/core/backup_service.dart | 16 +++++++ lib/entities/main_actions.dart | 42 ++++++++++--------- lib/entities/preferences_key.dart | 2 + lib/src/screens/settings/privacy_page.dart | 18 ++++++-- lib/store/settings_store.dart | 30 +++++++++++++ .../dashboard/dashboard_view_model.dart | 19 ++++----- .../settings/privacy_settings_view_model.dart | 12 ++++++ res/values/strings_ar.arb | 4 +- res/values/strings_bg.arb | 4 +- res/values/strings_cs.arb | 4 +- res/values/strings_de.arb | 4 +- res/values/strings_en.arb | 4 +- res/values/strings_es.arb | 4 +- res/values/strings_fr.arb | 4 +- res/values/strings_hi.arb | 4 +- res/values/strings_hr.arb | 4 +- res/values/strings_id.arb | 4 +- res/values/strings_it.arb | 4 +- res/values/strings_ja.arb | 4 +- res/values/strings_ko.arb | 4 +- res/values/strings_my.arb | 4 +- res/values/strings_nl.arb | 4 +- res/values/strings_pl.arb | 4 +- res/values/strings_pt.arb | 4 +- res/values/strings_ru.arb | 4 +- res/values/strings_th.arb | 4 +- res/values/strings_tr.arb | 4 +- res/values/strings_uk.arb | 4 +- res/values/strings_ur.arb | 4 +- res/values/strings_zh.arb | 4 +- 30 files changed, 175 insertions(+), 56 deletions(-) diff --git a/lib/core/backup_service.dart b/lib/core/backup_service.dart index 20fd753d..2870c448 100644 --- a/lib/core/backup_service.dart +++ b/lib/core/backup_service.dart @@ -210,6 +210,8 @@ class BackupService { final currentFiatCurrency = data[PreferencesKey.currentFiatCurrencyKey] as String?; final shouldSaveRecipientAddress = data[PreferencesKey.shouldSaveRecipientAddressKey] as bool?; final isAppSecure = data[PreferencesKey.isAppSecureKey] as bool?; + final disableBuy = data[PreferencesKey.disableBuyKey] as bool?; + final disableSell = data[PreferencesKey.disableSellKey] as bool?; final currentTransactionPriorityKeyLegacy = data[PreferencesKey.currentTransactionPriorityKeyLegacy] as int?; final allowBiometricalAuthentication = data[PreferencesKey.allowBiometricalAuthenticationKey] as bool?; final currentBitcoinElectrumSererId = data[PreferencesKey.currentBitcoinElectrumSererIdKey] as int?; @@ -251,6 +253,16 @@ class BackupService { PreferencesKey.isAppSecureKey, isAppSecure); + if (disableBuy != null) + await _sharedPreferences.setBool( + PreferencesKey.disableBuyKey, + disableBuy); + + if (disableSell != null) + await _sharedPreferences.setBool( + PreferencesKey.disableSellKey, + disableSell); + if (currentTransactionPriorityKeyLegacy != null) await _sharedPreferences.setInt( PreferencesKey.currentTransactionPriorityKeyLegacy, @@ -421,6 +433,10 @@ class BackupService { _sharedPreferences.getString(PreferencesKey.currentFiatCurrencyKey), PreferencesKey.shouldSaveRecipientAddressKey: _sharedPreferences .getBool(PreferencesKey.shouldSaveRecipientAddressKey), + PreferencesKey.disableBuyKey: _sharedPreferences + .getBool(PreferencesKey.disableBuyKey), + PreferencesKey.disableSellKey: _sharedPreferences + .getBool(PreferencesKey.disableSellKey), PreferencesKey.isDarkThemeLegacy: _sharedPreferences.getBool(PreferencesKey.isDarkThemeLegacy), PreferencesKey.currentPinLength: diff --git a/lib/entities/main_actions.dart b/lib/entities/main_actions.dart index ec70b95d..f7a32209 100644 --- a/lib/entities/main_actions.dart +++ b/lib/entities/main_actions.dart @@ -47,23 +47,23 @@ class MainActions { switch (walletType) { case WalletType.bitcoin: case WalletType.litecoin: - if (DeviceInfo.instance.isMobile) { - Navigator.of(context).pushNamed(Routes.onramperPage); - } else { - final uri = getIt - .get() - .requestUrl(); - await launchUrl(uri); + if (viewModel.isEnabledBuyAction) { + if (DeviceInfo.instance.isMobile) { + Navigator.of(context).pushNamed(Routes.onramperPage); + } else { + final uri = getIt.get().requestUrl(); + await launchUrl(uri); + } } break; case WalletType.monero: - if (DeviceInfo.instance.isMobile) { - Navigator.of(context).pushNamed(Routes.payfuraPage); - } else { - final uri = getIt - .get() - .requestUrl(); - await launchUrl(uri); + if (viewModel.isEnabledBuyAction) { + if (DeviceInfo.instance.isMobile) { + Navigator.of(context).pushNamed(Routes.payfuraPage); + } else { + final uri = getIt.get().requestUrl(); + await launchUrl(uri); + } } break; default: @@ -118,12 +118,14 @@ class MainActions { switch (walletType) { case WalletType.bitcoin: - final moonPaySellProvider = MoonPaySellProvider(); - final uri = await moonPaySellProvider.requestUrl( - currency: viewModel.wallet.currency, - refundWalletAddress: viewModel.wallet.walletAddresses.address, - ); - await launchUrl(uri); + if (viewModel.isEnabledSellAction) { + final moonPaySellProvider = MoonPaySellProvider(); + final uri = await moonPaySellProvider.requestUrl( + currency: viewModel.wallet.currency, + refundWalletAddress: viewModel.wallet.walletAddresses.address, + ); + await launchUrl(uri); + } break; default: await showPopUp( diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index 90b57668..21966a06 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -10,6 +10,8 @@ class PreferencesKey { static const currentBalanceDisplayModeKey = 'current_balance_display_mode'; static const shouldSaveRecipientAddressKey = 'save_recipient_address'; static const isAppSecureKey = 'is_app_secure'; + static const disableBuyKey = 'disable_buy'; + static const disableSellKey = 'disable_sell'; static const currentFiatApiModeKey = 'current_fiat_api_mode'; static const allowBiometricalAuthenticationKey = 'allow_biometrical_authentication'; diff --git a/lib/src/screens/settings/privacy_page.dart b/lib/src/screens/settings/privacy_page.dart index 81e2715f..d21ae0ae 100644 --- a/lib/src/screens/settings/privacy_page.dart +++ b/lib/src/screens/settings/privacy_page.dart @@ -50,11 +50,23 @@ class PrivacyPage extends BasePage { _privacySettingsViewModel.setShouldSaveRecipientAddress(value); }), if (Platform.isAndroid) + SettingsSwitcherCell( + title: S.current.prevent_screenshots, + value: _privacySettingsViewModel.isAppSecure, + onValueChange: (BuildContext _, bool value) { + _privacySettingsViewModel.setIsAppSecure(value); + }), SettingsSwitcherCell( - title: S.current.prevent_screenshots, - value: _privacySettingsViewModel.isAppSecure, + title: S.current.disable_buy, + value: _privacySettingsViewModel.disableBuy, onValueChange: (BuildContext _, bool value) { - _privacySettingsViewModel.setIsAppSecure(value); + _privacySettingsViewModel.setDisableBuy(value); + }), + SettingsSwitcherCell( + title: S.current.disable_sell, + value: _privacySettingsViewModel.disableSell, + onValueChange: (BuildContext _, bool value) { + _privacySettingsViewModel.setDisableSell(value); }), ], ); diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index 400f7ac8..7ec784d9 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -34,6 +34,8 @@ abstract class SettingsStoreBase with Store { required BalanceDisplayMode initialBalanceDisplayMode, required bool initialSaveRecipientAddress, required bool initialAppSecure, + required bool initialDisableBuy, + required bool initialDisableSell, required FiatApiMode initialFiatMode, required bool initialAllowBiometricalAuthentication, required ExchangeApiMode initialExchangeStatus, @@ -57,6 +59,8 @@ abstract class SettingsStoreBase with Store { balanceDisplayMode = initialBalanceDisplayMode, shouldSaveRecipientAddress = initialSaveRecipientAddress, isAppSecure = initialAppSecure, + disableBuy = initialDisableBuy, + disableSell = initialDisableSell, fiatApiMode = initialFiatMode, allowBiometricalAuthentication = initialAllowBiometricalAuthentication, shouldShowMarketPlaceInDashboard = initialShouldShowMarketPlaceInDashboard, @@ -130,6 +134,16 @@ abstract class SettingsStoreBase with Store { } }); + reaction( + (_) => disableBuy, + (bool disableBuy) => sharedPreferences.setBool( + PreferencesKey.disableBuyKey, disableBuy)); + + reaction( + (_) => disableSell, + (bool disableSell) => sharedPreferences.setBool( + PreferencesKey.disableSellKey, disableSell)); + if (Platform.isAndroid) { setIsAppSecureNative(isAppSecure); } @@ -217,6 +231,12 @@ abstract class SettingsStoreBase with Store { @observable bool isAppSecure; + @observable + bool disableBuy; + + @observable + bool disableSell; + @observable bool allowBiometricalAuthentication; @@ -309,6 +329,10 @@ abstract class SettingsStoreBase with Store { sharedPreferences.getBool(PreferencesKey.shouldSaveRecipientAddressKey) ?? false; final isAppSecure = sharedPreferences.getBool(PreferencesKey.isAppSecureKey) ?? false; + final disableBuy = + sharedPreferences.getBool(PreferencesKey.disableBuyKey) ?? false; + final disableSell = + sharedPreferences.getBool(PreferencesKey.disableSellKey) ?? false; final currentFiatApiMode = FiatApiMode.deserialize( raw: sharedPreferences .getInt(PreferencesKey.currentFiatApiModeKey) ?? FiatApiMode.enabled.raw); @@ -388,6 +412,8 @@ abstract class SettingsStoreBase with Store { initialBalanceDisplayMode: currentBalanceDisplayMode, initialSaveRecipientAddress: shouldSaveRecipientAddress, initialAppSecure: isAppSecure, + initialDisableBuy: disableBuy, + initialDisableSell: disableSell, initialFiatMode: currentFiatApiMode, initialAllowBiometricalAuthentication: allowBiometricalAuthentication, initialExchangeStatus: exchangeStatus, @@ -435,6 +461,10 @@ abstract class SettingsStoreBase with Store { sharedPreferences.getBool(PreferencesKey.shouldSaveRecipientAddressKey) ?? shouldSaveRecipientAddress; isAppSecure = sharedPreferences.getBool(PreferencesKey.isAppSecureKey) ?? isAppSecure; + disableBuy = + sharedPreferences.getBool(PreferencesKey.disableBuyKey) ?? disableBuy; + disableSell = + sharedPreferences.getBool(PreferencesKey.disableSellKey) ?? disableSell; allowBiometricalAuthentication = sharedPreferences .getBool(PreferencesKey.allowBiometricalAuthenticationKey) ?? allowBiometricalAuthentication; diff --git a/lib/view_model/dashboard/dashboard_view_model.dart b/lib/view_model/dashboard/dashboard_view_model.dart index c28603a5..cfb72cb9 100644 --- a/lib/view_model/dashboard/dashboard_view_model.dart +++ b/lib/view_model/dashboard/dashboard_view_model.dart @@ -46,9 +46,7 @@ abstract class DashboardViewModelBase with Store { required this.anonpayTransactionsStore}) : isOutdatedElectrumWallet = false, hasSellAction = false, - isEnabledSellAction = false, hasBuyAction = false, - isEnabledBuyAction = false, hasExchangeAction = false, isShowFirstYatIntroduction = false, isShowSecondYatIntroduction = false, @@ -287,14 +285,19 @@ abstract class DashboardViewModelBase with Store { @observable bool hasExchangeAction; - @observable - bool isEnabledBuyAction; + @computed + bool get isEnabledBuyAction => + !settingsStore.disableBuy && wallet.type != WalletType.haven; @observable bool hasBuyAction; - @observable - bool isEnabledSellAction; + @computed + bool get isEnabledSellAction => + !settingsStore.disableSell && + wallet.type != WalletType.haven && + wallet.type != WalletType.monero && + wallet.type != WalletType.litecoin; @observable bool hasSellAction; @@ -398,11 +401,7 @@ abstract class DashboardViewModelBase with Store { void updateActions() { hasExchangeAction = !isHaven; - isEnabledBuyAction = wallet.type != WalletType.haven; hasBuyAction = !isHaven; - isEnabledSellAction = wallet.type != WalletType.haven - && wallet.type != WalletType.monero - && wallet.type != WalletType.litecoin; hasSellAction = !isHaven; } } diff --git a/lib/view_model/settings/privacy_settings_view_model.dart b/lib/view_model/settings/privacy_settings_view_model.dart index 91ddd2f3..912864e4 100644 --- a/lib/view_model/settings/privacy_settings_view_model.dart +++ b/lib/view_model/settings/privacy_settings_view_model.dart @@ -24,6 +24,12 @@ abstract class PrivacySettingsViewModelBase with Store { @computed bool get isAppSecure => _settingsStore.isAppSecure; + @computed + bool get disableBuy => _settingsStore.disableBuy; + + @computed + bool get disableSell => _settingsStore.disableSell; + @action void setShouldSaveRecipientAddress(bool value) => _settingsStore.shouldSaveRecipientAddress = value; @@ -36,4 +42,10 @@ abstract class PrivacySettingsViewModelBase with Store { @action void setIsAppSecure(bool value) => _settingsStore.isAppSecure = value; + @action + void setDisableBuy(bool value) => _settingsStore.disableBuy = value; + + @action + void setDisableSell(bool value) => _settingsStore.disableSell = value; + } diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 0caa0209..c2706a4d 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -706,5 +706,7 @@ "error_text_input_below_minimum_limit":" المبلغ أقل من الحد الأدنى", "error_text_input_above_maximum_limit":"المبلغ أكبر من الحد الأقصى", "show_market_place": "إظهار السوق", - "prevent_screenshots": "منع لقطات الشاشة وتسجيل الشاشة" + "prevent_screenshots": "منع لقطات الشاشة وتسجيل الشاشة", + "disable_buy": "تعطيل إجراء الشراء", + "disable_sell": "قم بتعطيل إجراء البيع" } diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 66a211ed..3ab4732d 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -702,5 +702,7 @@ "error_text_input_below_minimum_limit" : "Сумата е по-малко от минималната", "error_text_input_above_maximum_limit" : "Сумата надвишава максималната", "show_market_place":"Покажи пазар", - "prevent_screenshots": "Предотвратете екранни снимки и запис на екрана" + "prevent_screenshots": "Предотвратете екранни снимки и запис на екрана", + "disable_buy": "Деактивирайте действието за покупка", + "disable_sell": "Деактивирайте действието за продажба" } diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 381e7c18..9cb44926 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -702,5 +702,7 @@ "error_text_input_below_minimum_limit" : "Částka je menší než minimální hodnota", "error_text_input_above_maximum_limit" : "Částka je větší než maximální hodnota", "show_market_place": "Zobrazit trh", - "prevent_screenshots": "Zabránit vytváření snímků obrazovky a nahrávání obrazovky" + "prevent_screenshots": "Zabránit vytváření snímků obrazovky a nahrávání obrazovky", + "disable_buy": "Zakázat akci nákupu", + "disable_sell": "Zakázat akci prodeje" } diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 930ed4ba..3a64b202 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -708,5 +708,7 @@ "error_text_input_below_minimum_limit" : "Menge ist unter dem Minimum", "error_text_input_above_maximum_limit" : "Menge ist über dem Maximum", "show_market_place": "Marktplatz anzeigen", - "prevent_screenshots": "Verhindern Sie Screenshots und Bildschirmaufzeichnungen" + "prevent_screenshots": "Verhindern Sie Screenshots und Bildschirmaufzeichnungen", + "disable_buy": "Kaufaktion deaktivieren", + "disable_sell": "Verkaufsaktion deaktivieren" } diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 22cc9b95..7a0bfd97 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -708,5 +708,7 @@ "error_text_input_below_minimum_limit" : "Amount is less than the minimum", "error_text_input_above_maximum_limit" : "Amount is more than the maximum", "show_market_place" :"Show Marketplace", - "prevent_screenshots": "Prevent screenshots and screen recording" + "prevent_screenshots": "Prevent screenshots and screen recording", + "disable_buy": "Disable buy action", + "disable_sell": "Disable sell action" } diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 9159d7a1..edde8c15 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -708,5 +708,7 @@ "error_text_input_below_minimum_limit" : "La cantidad es menos que mínima", "error_text_input_above_maximum_limit" : "La cantidad es más que el máximo", "show_market_place": "Mostrar mercado", - "prevent_screenshots": "Evitar capturas de pantalla y grabación de pantalla" + "prevent_screenshots": "Evitar capturas de pantalla y grabación de pantalla", + "disable_buy": "Desactivar acción de compra", + "disable_sell": "Desactivar acción de venta" } diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 983fc5f4..7ef121ea 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -708,5 +708,7 @@ "error_text_input_below_minimum_limit" : "Le montant est inférieur au minimum", "error_text_input_above_maximum_limit" : "Le montant est supérieur au maximum", "show_market_place" :"Afficher la place de marché", - "prevent_screenshots": "Empêcher les captures d'écran et l'enregistrement d'écran" + "prevent_screenshots": "Empêcher les captures d'écran et l'enregistrement d'écran", + "disable_buy": "Désactiver l'action d'achat", + "disable_sell": "Désactiver l'action de vente" } diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 8b505cff..f5292dfd 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -708,5 +708,7 @@ "error_text_input_below_minimum_limit" : "राशि न्यूनतम से कम है", "error_text_input_above_maximum_limit" : "राशि अधिकतम से अधिक है", "show_market_place":"बाज़ार दिखाएँ", - "prevent_screenshots": "स्क्रीनशॉट और स्क्रीन रिकॉर्डिंग रोकें" + "prevent_screenshots": "स्क्रीनशॉट और स्क्रीन रिकॉर्डिंग रोकें", + "disable_buy": "खरीद कार्रवाई अक्षम करें", + "disable_sell": "बेचने की कार्रवाई अक्षम करें" } diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index f9b5fd0f..d0fb4cc7 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -708,5 +708,7 @@ "error_text_input_below_minimum_limit" : "Iznos je manji od minimalnog", "error_text_input_above_maximum_limit" : "Iznos je veći od maskimalnog", "show_market_place" : "Prikaži tržište", - "prevent_screenshots": "Spriječite snimke zaslona i snimanje zaslona" + "prevent_screenshots": "Spriječite snimke zaslona i snimanje zaslona", + "disable_buy": "Onemogući kupnju", + "disable_sell": "Onemogući akciju prodaje" } diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index b4dd1335..121650b9 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -684,5 +684,7 @@ "error_text_input_below_minimum_limit" : "Jumlah kurang dari minimal", "error_text_input_above_maximum_limit" : "Jumlah lebih dari maksimal", "show_market_place": "Tampilkan Pasar", - "prevent_screenshots": "Cegah tangkapan layar dan perekaman layar" + "prevent_screenshots": "Cegah tangkapan layar dan perekaman layar", + "disable_buy": "Nonaktifkan tindakan beli", + "disable_sell": "Nonaktifkan aksi jual" } diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 95ce251b..f327310b 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -708,5 +708,7 @@ "error_text_input_below_minimum_limit" : "L'ammontare è inferiore al minimo", "error_text_input_above_maximum_limit" : "L'ammontare è superiore al massimo", "show_market_place":"Mostra mercato", - "prevent_screenshots": "Impedisci screenshot e registrazione dello schermo" + "prevent_screenshots": "Impedisci screenshot e registrazione dello schermo", + "disable_buy": "Disabilita l'azione di acquisto", + "disable_sell": "Disabilita l'azione di vendita" } diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index c1b78cc6..f13e8440 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -708,5 +708,7 @@ "error_text_input_below_minimum_limit" : "金額は最小額より少ない", "error_text_input_above_maximum_limit" : "金額は最大値を超えています", "show_market_place":"マーケットプレイスを表示", - "prevent_screenshots": "スクリーンショットと画面録画を防止する" + "prevent_screenshots": "スクリーンショットと画面録画を防止する", + "disable_buy": "購入アクションを無効にする", + "disable_sell": "販売アクションを無効にする" } diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index f2e03ed5..f38f9e0c 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -708,5 +708,7 @@ "error_text_input_below_minimum_limit" : "금액이 최소보다 적습니다.", "error_text_input_above_maximum_limit" : "금액이 최대 값보다 많습니다.", "show_market_place":"마켓플레이스 표시", - "prevent_screenshots": "스크린샷 및 화면 녹화 방지" + "prevent_screenshots": "스크린샷 및 화면 녹화 방지", + "disable_buy": "구매 행동 비활성화", + "disable_sell": "판매 조치 비활성화" } diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index c314dfb6..73e282b7 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -708,5 +708,7 @@ "error_text_input_below_minimum_limit" : "ပမာဏသည် အနိမ့်ဆုံးထက်နည်းသည်။", "error_text_input_above_maximum_limit" : "ပမာဏသည် အများဆုံးထက် ပိုများသည်။", "show_market_place":"စျေးကွက်ကိုပြသပါ။", - "prevent_screenshots": "ဖန်သားပြင်ဓာတ်ပုံများနှင့် မျက်နှာပြင်ရိုက်ကူးခြင်းကို တားဆီးပါ။" + "prevent_screenshots": "ဖန်သားပြင်ဓာတ်ပုံများနှင့် မျက်နှာပြင်ရိုက်ကူးခြင်းကို တားဆီးပါ။", + "disable_buy": "ဝယ်ယူမှု လုပ်ဆောင်ချက်ကို ပိတ်ပါ။", + "disable_sell": "ရောင်းချခြင်းလုပ်ဆောင်ချက်ကို ပိတ်ပါ။" } diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 734630c9..a25a536c 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -708,5 +708,7 @@ "error_text_input_below_minimum_limit" : "Bedrag is minder dan minimaal", "error_text_input_above_maximum_limit" : "Bedrag is meer dan maximaal", "show_market_place":"Toon Marktplaats", - "prevent_screenshots": "Voorkom screenshots en schermopname" + "prevent_screenshots": "Voorkom screenshots en schermopname", + "disable_buy": "Koopactie uitschakelen", + "disable_sell": "Verkoopactie uitschakelen" } diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 23b7bbb6..a35d9042 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -708,5 +708,7 @@ "error_text_input_below_minimum_limit" : "Kwota jest mniejsza niż minimalna", "error_text_input_above_maximum_limit" : "Kwota jest większa niż maksymalna", "show_market_place" : "Pokaż rynek", - "prevent_screenshots": "Zapobiegaj zrzutom ekranu i nagrywaniu ekranu" + "prevent_screenshots": "Zapobiegaj zrzutom ekranu i nagrywaniu ekranu", + "disable_buy": "Wyłącz akcję kupna", + "disable_sell": "Wyłącz akcję sprzedaży" } diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 0346b1ff..69dc9437 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -707,5 +707,7 @@ "error_text_input_below_minimum_limit" : "O valor é menor que o mínimo", "error_text_input_above_maximum_limit" : "O valor é superior ao máximo", "show_market_place":"Mostrar mercado", - "prevent_screenshots": "Evite capturas de tela e gravação de tela" + "prevent_screenshots": "Evite capturas de tela e gravação de tela", + "disable_buy": "Desativar ação de compra", + "disable_sell": "Desativar ação de venda" } diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 33058a13..67caa177 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -708,5 +708,7 @@ "error_text_input_below_minimum_limit" : "Сумма меньше минимальной", "error_text_input_above_maximum_limit" : "Сумма больше максимальной", "show_market_place":"Показать торговую площадку", - "prevent_screenshots": "Предотвратить скриншоты и запись экрана" + "prevent_screenshots": "Предотвратить скриншоты и запись экрана", + "disable_buy": "Отключить действие покупки", + "disable_sell": "Отключить действие продажи" } diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index f1cc320a..02e60aba 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -706,5 +706,7 @@ "error_text_input_below_minimum_limit" : "จำนวนเงินน้อยกว่าขั้นต่ำ", "error_text_input_above_maximum_limit" : "จำนวนเงินสูงกว่าค่าสูงสุด", "show_market_place":"แสดงตลาดกลาง", - "prevent_screenshots": "ป้องกันภาพหน้าจอและการบันทึกหน้าจอ" + "prevent_screenshots": "ป้องกันภาพหน้าจอและการบันทึกหน้าจอ", + "disable_buy": "ปิดการใช้งานการซื้อ", + "disable_sell": "ปิดการใช้งานการขาย" } diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 675fbb5a..30524d4d 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -708,5 +708,7 @@ "error_text_input_below_minimum_limit" : "Miktar minimumdan daha azdır", "error_text_input_above_maximum_limit" : "Miktar maksimumdan daha fazla", "show_market_place":"Pazar Yerini Göster", - "prevent_screenshots": "Ekran görüntülerini ve ekran kaydını önleyin" + "prevent_screenshots": "Ekran görüntülerini ve ekran kaydını önleyin", + "disable_buy": "Satın alma işlemini devre dışı bırak", + "disable_sell": "Satış işlemini devre dışı bırak" } diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index affdda64..a4a65ecc 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -707,5 +707,7 @@ "error_text_input_below_minimum_limit" : "Сума менша мінімальної", "error_text_input_above_maximum_limit" : "Сума більше максимальної", "show_market_place":"Відображати маркетплейс", - "prevent_screenshots": "Запобігати знімкам екрана та запису екрана" + "prevent_screenshots": "Запобігати знімкам екрана та запису екрана", + "disable_buy": "Вимкнути дію покупки", + "disable_sell": "Вимкнути дію продажу" } diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 2e88a0bd..38deabb0 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -703,5 +703,7 @@ "error_text_input_below_minimum_limit" : "رقم کم از کم سے کم ہے۔", "error_text_input_above_maximum_limit" : "رقم زیادہ سے زیادہ سے زیادہ ہے۔", "show_market_place":"بازار دکھائیں۔", - "prevent_screenshots": "اسکرین شاٹس اور اسکرین ریکارڈنگ کو روکیں۔" + "prevent_screenshots": "اسکرین شاٹس اور اسکرین ریکارڈنگ کو روکیں۔", + "disable_buy": "خرید ایکشن کو غیر فعال کریں۔", + "disable_sell": "فروخت کی کارروائی کو غیر فعال کریں۔" } diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 10a7d89f..17f7799b 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -707,5 +707,7 @@ "error_text_input_below_minimum_limit" : "金额小于最小值", "error_text_input_above_maximum_limit" : "金额大于最大值", "show_market_place" :"显示市场", - "prevent_screenshots": "防止截屏和录屏" + "prevent_screenshots": "防止截屏和录屏", + "disable_buy": "禁用购买操作", + "disable_sell": "禁用卖出操作" }