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
Rafael Saes committed
May 15, 2023 at 09:26 UTC
7fa7c45c0cd54006a4c89d3fbebd25bc86f45f0d
30 files changed
+175
-56
lib/core/backup_service.dart
+16
@@ -210,6 +210,8 @@ class BackupService {
210
final currentFiatCurrency = data[PreferencesKey.currentFiatCurrencyKey] as String?;
211
final shouldSaveRecipientAddress = data[PreferencesKey.shouldSaveRecipientAddressKey] as bool?;
212
final isAppSecure = data[PreferencesKey.isAppSecureKey] as bool?;
213
+ final disableBuy = data[PreferencesKey.disableBuyKey] as bool?;
214
+ final disableSell = data[PreferencesKey.disableSellKey] as bool?;
215
final currentTransactionPriorityKeyLegacy = data[PreferencesKey.currentTransactionPriorityKeyLegacy] as int?;
216
final allowBiometricalAuthentication = data[PreferencesKey.allowBiometricalAuthenticationKey] as bool?;
217
final currentBitcoinElectrumSererId = data[PreferencesKey.currentBitcoinElectrumSererIdKey] as int?;
@@ -251,6 +253,16 @@ class BackupService {
253
PreferencesKey.isAppSecureKey,
254
isAppSecure);
255
256
+ if (disableBuy != null)
257
+ await _sharedPreferences.setBool(
258
+ PreferencesKey.disableBuyKey,
259
+ disableBuy);
260
+
261
+ if (disableSell != null)
262
+ await _sharedPreferences.setBool(
263
+ PreferencesKey.disableSellKey,
264
+ disableSell);
265
+
266
if (currentTransactionPriorityKeyLegacy != null)
267
await _sharedPreferences.setInt(
268
PreferencesKey.currentTransactionPriorityKeyLegacy,
@@ -421,6 +433,10 @@ class BackupService {
433
_sharedPreferences.getString(PreferencesKey.currentFiatCurrencyKey),
434
PreferencesKey.shouldSaveRecipientAddressKey: _sharedPreferences
435
.getBool(PreferencesKey.shouldSaveRecipientAddressKey),
436
+ PreferencesKey.disableBuyKey: _sharedPreferences
437
+ .getBool(PreferencesKey.disableBuyKey),
438
+ PreferencesKey.disableSellKey: _sharedPreferences
439
+ .getBool(PreferencesKey.disableSellKey),
440
PreferencesKey.isDarkThemeLegacy:
441
_sharedPreferences.getBool(PreferencesKey.isDarkThemeLegacy),
442
PreferencesKey.currentPinLength:
lib/entities/main_actions.dart
+22
-20
@@ -47,23 +47,23 @@ class MainActions {
47
switch (walletType) {
48
case WalletType.bitcoin:
49
case WalletType.litecoin:
50
- if (DeviceInfo.instance.isMobile) {
51
- Navigator.of(context).pushNamed(Routes.onramperPage);
52
- } else {
53
- final uri = getIt
54
- .get<OnRamperBuyProvider>()
55
- .requestUrl();
56
- await launchUrl(uri);
50
+ if (viewModel.isEnabledBuyAction) {
51
+ if (DeviceInfo.instance.isMobile) {
52
+ Navigator.of(context).pushNamed(Routes.onramperPage);
53
+ } else {
54
+ final uri = getIt.get<OnRamperBuyProvider>().requestUrl();
55
+ await launchUrl(uri);
56
+ }
57
}
58
break;
59
case WalletType.monero:
60
- if (DeviceInfo.instance.isMobile) {
61
- Navigator.of(context).pushNamed(Routes.payfuraPage);
62
- } else {
63
- final uri = getIt
64
- .get<PayfuraBuyProvider>()
65
- .requestUrl();
66
- await launchUrl(uri);
60
+ if (viewModel.isEnabledBuyAction) {
61
+ if (DeviceInfo.instance.isMobile) {
62
+ Navigator.of(context).pushNamed(Routes.payfuraPage);
63
+ } else {
64
+ final uri = getIt.get<PayfuraBuyProvider>().requestUrl();
65
+ await launchUrl(uri);
66
+ }
67
}
68
break;
69
default:
@@ -118,12 +118,14 @@ class MainActions {
118
119
switch (walletType) {
120
case WalletType.bitcoin:
121
- final moonPaySellProvider = MoonPaySellProvider();
122
- final uri = await moonPaySellProvider.requestUrl(
123
- currency: viewModel.wallet.currency,
124
- refundWalletAddress: viewModel.wallet.walletAddresses.address,
125
- );
126
- await launchUrl(uri);
121
+ if (viewModel.isEnabledSellAction) {
122
+ final moonPaySellProvider = MoonPaySellProvider();
123
+ final uri = await moonPaySellProvider.requestUrl(
124
+ currency: viewModel.wallet.currency,
125
+ refundWalletAddress: viewModel.wallet.walletAddresses.address,
126
+ );
127
+ await launchUrl(uri);
128
+ }
129
break;
130
default:
131
await showPopUp<void>(
lib/entities/preferences_key.dart
+2
@@ -10,6 +10,8 @@ class PreferencesKey {
10
static const currentBalanceDisplayModeKey = 'current_balance_display_mode';
11
static const shouldSaveRecipientAddressKey = 'save_recipient_address';
12
static const isAppSecureKey = 'is_app_secure';
13
+ static const disableBuyKey = 'disable_buy';
14
+ static const disableSellKey = 'disable_sell';
15
static const currentFiatApiModeKey = 'current_fiat_api_mode';
16
static const allowBiometricalAuthenticationKey =
17
'allow_biometrical_authentication';
lib/src/screens/settings/privacy_page.dart
+15
-3
@@ -50,11 +50,23 @@ class PrivacyPage extends BasePage {
50
_privacySettingsViewModel.setShouldSaveRecipientAddress(value);
51
}),
52
if (Platform.isAndroid)
53
+ SettingsSwitcherCell(
54
+ title: S.current.prevent_screenshots,
55
+ value: _privacySettingsViewModel.isAppSecure,
56
+ onValueChange: (BuildContext _, bool value) {
57
+ _privacySettingsViewModel.setIsAppSecure(value);
58
+ }),
59
SettingsSwitcherCell(
54
- title: S.current.prevent_screenshots,
55
- value: _privacySettingsViewModel.isAppSecure,
60
+ title: S.current.disable_buy,
61
+ value: _privacySettingsViewModel.disableBuy,
62
onValueChange: (BuildContext _, bool value) {
57
- _privacySettingsViewModel.setIsAppSecure(value);
63
+ _privacySettingsViewModel.setDisableBuy(value);
64
+ }),
65
+ SettingsSwitcherCell(
66
+ title: S.current.disable_sell,
67
+ value: _privacySettingsViewModel.disableSell,
68
+ onValueChange: (BuildContext _, bool value) {
69
+ _privacySettingsViewModel.setDisableSell(value);
70
}),
71
],
72
);
lib/store/settings_store.dart
+30
@@ -34,6 +34,8 @@ abstract class SettingsStoreBase with Store {
34
required BalanceDisplayMode initialBalanceDisplayMode,
35
required bool initialSaveRecipientAddress,
36
required bool initialAppSecure,
37
+ required bool initialDisableBuy,
38
+ required bool initialDisableSell,
39
required FiatApiMode initialFiatMode,
40
required bool initialAllowBiometricalAuthentication,
41
required ExchangeApiMode initialExchangeStatus,
@@ -57,6 +59,8 @@ abstract class SettingsStoreBase with Store {
59
balanceDisplayMode = initialBalanceDisplayMode,
60
shouldSaveRecipientAddress = initialSaveRecipientAddress,
61
isAppSecure = initialAppSecure,
62
+ disableBuy = initialDisableBuy,
63
+ disableSell = initialDisableSell,
64
fiatApiMode = initialFiatMode,
65
allowBiometricalAuthentication = initialAllowBiometricalAuthentication,
66
shouldShowMarketPlaceInDashboard = initialShouldShowMarketPlaceInDashboard,
@@ -130,6 +134,16 @@ abstract class SettingsStoreBase with Store {
134
}
135
});
136
137
+ reaction(
138
+ (_) => disableBuy,
139
+ (bool disableBuy) => sharedPreferences.setBool(
140
+ PreferencesKey.disableBuyKey, disableBuy));
141
+
142
+ reaction(
143
+ (_) => disableSell,
144
+ (bool disableSell) => sharedPreferences.setBool(
145
+ PreferencesKey.disableSellKey, disableSell));
146
+
147
if (Platform.isAndroid) {
148
setIsAppSecureNative(isAppSecure);
149
}
@@ -217,6 +231,12 @@ abstract class SettingsStoreBase with Store {
231
@observable
232
bool isAppSecure;
233
234
+ @observable
235
+ bool disableBuy;
236
+
237
+ @observable
238
+ bool disableSell;
239
+
240
@observable
241
bool allowBiometricalAuthentication;
242
@@ -309,6 +329,10 @@ abstract class SettingsStoreBase with Store {
329
sharedPreferences.getBool(PreferencesKey.shouldSaveRecipientAddressKey) ?? false;
330
final isAppSecure =
331
sharedPreferences.getBool(PreferencesKey.isAppSecureKey) ?? false;
332
+ final disableBuy =
333
+ sharedPreferences.getBool(PreferencesKey.disableBuyKey) ?? false;
334
+ final disableSell =
335
+ sharedPreferences.getBool(PreferencesKey.disableSellKey) ?? false;
336
final currentFiatApiMode = FiatApiMode.deserialize(
337
raw: sharedPreferences
338
.getInt(PreferencesKey.currentFiatApiModeKey) ?? FiatApiMode.enabled.raw);
@@ -388,6 +412,8 @@ abstract class SettingsStoreBase with Store {
412
initialBalanceDisplayMode: currentBalanceDisplayMode,
413
initialSaveRecipientAddress: shouldSaveRecipientAddress,
414
initialAppSecure: isAppSecure,
415
+ initialDisableBuy: disableBuy,
416
+ initialDisableSell: disableSell,
417
initialFiatMode: currentFiatApiMode,
418
initialAllowBiometricalAuthentication: allowBiometricalAuthentication,
419
initialExchangeStatus: exchangeStatus,
@@ -435,6 +461,10 @@ abstract class SettingsStoreBase with Store {
461
sharedPreferences.getBool(PreferencesKey.shouldSaveRecipientAddressKey) ?? shouldSaveRecipientAddress;
462
isAppSecure =
463
sharedPreferences.getBool(PreferencesKey.isAppSecureKey) ?? isAppSecure;
464
+ disableBuy =
465
+ sharedPreferences.getBool(PreferencesKey.disableBuyKey) ?? disableBuy;
466
+ disableSell =
467
+ sharedPreferences.getBool(PreferencesKey.disableSellKey) ?? disableSell;
468
allowBiometricalAuthentication = sharedPreferences
469
.getBool(PreferencesKey.allowBiometricalAuthenticationKey) ??
470
allowBiometricalAuthentication;
lib/view_model/dashboard/dashboard_view_model.dart
+9
-10
@@ -46,9 +46,7 @@ abstract class DashboardViewModelBase with Store {
46
required this.anonpayTransactionsStore})
47
: isOutdatedElectrumWallet = false,
48
hasSellAction = false,
49
- isEnabledSellAction = false,
49
hasBuyAction = false,
51
- isEnabledBuyAction = false,
50
hasExchangeAction = false,
51
isShowFirstYatIntroduction = false,
52
isShowSecondYatIntroduction = false,
@@ -287,14 +285,19 @@ abstract class DashboardViewModelBase with Store {
285
@observable
286
bool hasExchangeAction;
287
290
- @observable
291
- bool isEnabledBuyAction;
288
+ @computed
289
+ bool get isEnabledBuyAction =>
290
+ !settingsStore.disableBuy && wallet.type != WalletType.haven;
291
292
@observable
293
bool hasBuyAction;
294
296
- @observable
297
- bool isEnabledSellAction;
295
+ @computed
296
+ bool get isEnabledSellAction =>
297
+ !settingsStore.disableSell &&
298
+ wallet.type != WalletType.haven &&
299
+ wallet.type != WalletType.monero &&
300
+ wallet.type != WalletType.litecoin;
301
302
@observable
303
bool hasSellAction;
@@ -398,11 +401,7 @@ abstract class DashboardViewModelBase with Store {
401
402
void updateActions() {
403
hasExchangeAction = !isHaven;
401
- isEnabledBuyAction = wallet.type != WalletType.haven;
404
hasBuyAction = !isHaven;
403
- isEnabledSellAction = wallet.type != WalletType.haven
404
- && wallet.type != WalletType.monero
405
- && wallet.type != WalletType.litecoin;
405
hasSellAction = !isHaven;
406
}
407
}
lib/view_model/settings/privacy_settings_view_model.dart
+12
@@ -24,6 +24,12 @@ abstract class PrivacySettingsViewModelBase with Store {
24
@computed
25
bool get isAppSecure => _settingsStore.isAppSecure;
26
27
+ @computed
28
+ bool get disableBuy => _settingsStore.disableBuy;
29
+
30
+ @computed
31
+ bool get disableSell => _settingsStore.disableSell;
32
+
33
@action
34
void setShouldSaveRecipientAddress(bool value) => _settingsStore.shouldSaveRecipientAddress = value;
35
@@ -36,4 +42,10 @@ abstract class PrivacySettingsViewModelBase with Store {
42
@action
43
void setIsAppSecure(bool value) => _settingsStore.isAppSecure = value;
44
45
+ @action
46
+ void setDisableBuy(bool value) => _settingsStore.disableBuy = value;
47
+
48
+ @action
49
+ void setDisableSell(bool value) => _settingsStore.disableSell = value;
50
+
51
}
res/values/strings_ar.arb
+3
-1
@@ -706,5 +706,7 @@
706
"error_text_input_below_minimum_limit":" المبلغ أقل من الحد الأدنى",
707
"error_text_input_above_maximum_limit":"المبلغ أكبر من الحد الأقصى",
708
"show_market_place": "إظهار السوق",
709
- "prevent_screenshots": "منع لقطات الشاشة وتسجيل الشاشة"
709
+ "prevent_screenshots": "منع لقطات الشاشة وتسجيل الشاشة",
710
+ "disable_buy": "تعطيل إجراء الشراء",
711
+ "disable_sell": "قم بتعطيل إجراء البيع"
712
}
res/values/strings_bg.arb
+3
-1
@@ -702,5 +702,7 @@
702
"error_text_input_below_minimum_limit" : "Сумата е по-малко от минималната",
703
"error_text_input_above_maximum_limit" : "Сумата надвишава максималната",
704
"show_market_place":"Покажи пазар",
705
- "prevent_screenshots": "Предотвратете екранни снимки и запис на екрана"
705
+ "prevent_screenshots": "Предотвратете екранни снимки и запис на екрана",
706
+ "disable_buy": "Деактивирайте действието за покупка",
707
+ "disable_sell": "Деактивирайте действието за продажба"
708
}
res/values/strings_cs.arb
+3
-1
@@ -702,5 +702,7 @@
702
"error_text_input_below_minimum_limit" : "Částka je menší než minimální hodnota",
703
"error_text_input_above_maximum_limit" : "Částka je větší než maximální hodnota",
704
"show_market_place": "Zobrazit trh",
705
- "prevent_screenshots": "Zabránit vytváření snímků obrazovky a nahrávání obrazovky"
705
+ "prevent_screenshots": "Zabránit vytváření snímků obrazovky a nahrávání obrazovky",
706
+ "disable_buy": "Zakázat akci nákupu",
707
+ "disable_sell": "Zakázat akci prodeje"
708
}
res/values/strings_de.arb
+3
-1
@@ -708,5 +708,7 @@
708
"error_text_input_below_minimum_limit" : "Menge ist unter dem Minimum",
709
"error_text_input_above_maximum_limit" : "Menge ist über dem Maximum",
710
"show_market_place": "Marktplatz anzeigen",
711
- "prevent_screenshots": "Verhindern Sie Screenshots und Bildschirmaufzeichnungen"
711
+ "prevent_screenshots": "Verhindern Sie Screenshots und Bildschirmaufzeichnungen",
712
+ "disable_buy": "Kaufaktion deaktivieren",
713
+ "disable_sell": "Verkaufsaktion deaktivieren"
714
}
res/values/strings_en.arb
+3
-1
@@ -708,5 +708,7 @@
708
"error_text_input_below_minimum_limit" : "Amount is less than the minimum",
709
"error_text_input_above_maximum_limit" : "Amount is more than the maximum",
710
"show_market_place" :"Show Marketplace",
711
- "prevent_screenshots": "Prevent screenshots and screen recording"
711
+ "prevent_screenshots": "Prevent screenshots and screen recording",
712
+ "disable_buy": "Disable buy action",
713
+ "disable_sell": "Disable sell action"
714
}
res/values/strings_es.arb
+3
-1
@@ -708,5 +708,7 @@
708
"error_text_input_below_minimum_limit" : "La cantidad es menos que mínima",
709
"error_text_input_above_maximum_limit" : "La cantidad es más que el máximo",
710
"show_market_place": "Mostrar mercado",
711
- "prevent_screenshots": "Evitar capturas de pantalla y grabación de pantalla"
711
+ "prevent_screenshots": "Evitar capturas de pantalla y grabación de pantalla",
712
+ "disable_buy": "Desactivar acción de compra",
713
+ "disable_sell": "Desactivar acción de venta"
714
}
res/values/strings_fr.arb
+3
-1
@@ -708,5 +708,7 @@
708
"error_text_input_below_minimum_limit" : "Le montant est inférieur au minimum",
709
"error_text_input_above_maximum_limit" : "Le montant est supérieur au maximum",
710
"show_market_place" :"Afficher la place de marché",
711
- "prevent_screenshots": "Empêcher les captures d'écran et l'enregistrement d'écran"
711
+ "prevent_screenshots": "Empêcher les captures d'écran et l'enregistrement d'écran",
712
+ "disable_buy": "Désactiver l'action d'achat",
713
+ "disable_sell": "Désactiver l'action de vente"
714
}
res/values/strings_hi.arb
+3
-1
@@ -708,5 +708,7 @@
708
"error_text_input_below_minimum_limit" : "राशि न्यूनतम से कम है",
709
"error_text_input_above_maximum_limit" : "राशि अधिकतम से अधिक है",
710
"show_market_place":"बाज़ार दिखाएँ",
711
- "prevent_screenshots": "स्क्रीनशॉट और स्क्रीन रिकॉर्डिंग रोकें"
711
+ "prevent_screenshots": "स्क्रीनशॉट और स्क्रीन रिकॉर्डिंग रोकें",
712
+ "disable_buy": "खरीद कार्रवाई अक्षम करें",
713
+ "disable_sell": "बेचने की कार्रवाई अक्षम करें"
714
}
res/values/strings_hr.arb
+3
-1
@@ -708,5 +708,7 @@
708
"error_text_input_below_minimum_limit" : "Iznos je manji od minimalnog",
709
"error_text_input_above_maximum_limit" : "Iznos je veći od maskimalnog",
710
"show_market_place" : "Prikaži tržište",
711
- "prevent_screenshots": "Spriječite snimke zaslona i snimanje zaslona"
711
+ "prevent_screenshots": "Spriječite snimke zaslona i snimanje zaslona",
712
+ "disable_buy": "Onemogući kupnju",
713
+ "disable_sell": "Onemogući akciju prodaje"
714
}
res/values/strings_id.arb
+3
-1
@@ -684,5 +684,7 @@
684
"error_text_input_below_minimum_limit" : "Jumlah kurang dari minimal",
685
"error_text_input_above_maximum_limit" : "Jumlah lebih dari maksimal",
686
"show_market_place": "Tampilkan Pasar",
687
- "prevent_screenshots": "Cegah tangkapan layar dan perekaman layar"
687
+ "prevent_screenshots": "Cegah tangkapan layar dan perekaman layar",
688
+ "disable_buy": "Nonaktifkan tindakan beli",
689
+ "disable_sell": "Nonaktifkan aksi jual"
690
}
res/values/strings_it.arb
+3
-1
@@ -708,5 +708,7 @@
708
"error_text_input_below_minimum_limit" : "L'ammontare è inferiore al minimo",
709
"error_text_input_above_maximum_limit" : "L'ammontare è superiore al massimo",
710
"show_market_place":"Mostra mercato",
711
- "prevent_screenshots": "Impedisci screenshot e registrazione dello schermo"
711
+ "prevent_screenshots": "Impedisci screenshot e registrazione dello schermo",
712
+ "disable_buy": "Disabilita l'azione di acquisto",
713
+ "disable_sell": "Disabilita l'azione di vendita"
714
}
res/values/strings_ja.arb
+3
-1
@@ -708,5 +708,7 @@
708
"error_text_input_below_minimum_limit" : "金額は最小額より少ない",
709
"error_text_input_above_maximum_limit" : "金額は最大値を超えています",
710
"show_market_place":"マーケットプレイスを表示",
711
- "prevent_screenshots": "スクリーンショットと画面録画を防止する"
711
+ "prevent_screenshots": "スクリーンショットと画面録画を防止する",
712
+ "disable_buy": "購入アクションを無効にする",
713
+ "disable_sell": "販売アクションを無効にする"
714
}
res/values/strings_ko.arb
+3
-1
@@ -708,5 +708,7 @@
708
"error_text_input_below_minimum_limit" : "금액이 최소보다 적습니다.",
709
"error_text_input_above_maximum_limit" : "금액이 최대 값보다 많습니다.",
710
"show_market_place":"마켓플레이스 표시",
711
- "prevent_screenshots": "스크린샷 및 화면 녹화 방지"
711
+ "prevent_screenshots": "스크린샷 및 화면 녹화 방지",
712
+ "disable_buy": "구매 행동 비활성화",
713
+ "disable_sell": "판매 조치 비활성화"
714
}
res/values/strings_my.arb
+3
-1
@@ -708,5 +708,7 @@
708
"error_text_input_below_minimum_limit" : "ပမာဏသည် အနိမ့်ဆုံးထက်နည်းသည်။",
709
"error_text_input_above_maximum_limit" : "ပမာဏသည် အများဆုံးထက် ပိုများသည်။",
710
"show_market_place":"စျေးကွက်ကိုပြသပါ။",
711
- "prevent_screenshots": "ဖန်သားပြင်ဓာတ်ပုံများနှင့် မျက်နှာပြင်ရိုက်ကူးခြင်းကို တားဆီးပါ။"
711
+ "prevent_screenshots": "ဖန်သားပြင်ဓာတ်ပုံများနှင့် မျက်နှာပြင်ရိုက်ကူးခြင်းကို တားဆီးပါ။",
712
+ "disable_buy": "ဝယ်ယူမှု လုပ်ဆောင်ချက်ကို ပိတ်ပါ။",
713
+ "disable_sell": "ရောင်းချခြင်းလုပ်ဆောင်ချက်ကို ပိတ်ပါ။"
714
}
res/values/strings_nl.arb
+3
-1
@@ -708,5 +708,7 @@
708
"error_text_input_below_minimum_limit" : "Bedrag is minder dan minimaal",
709
"error_text_input_above_maximum_limit" : "Bedrag is meer dan maximaal",
710
"show_market_place":"Toon Marktplaats",
711
- "prevent_screenshots": "Voorkom screenshots en schermopname"
711
+ "prevent_screenshots": "Voorkom screenshots en schermopname",
712
+ "disable_buy": "Koopactie uitschakelen",
713
+ "disable_sell": "Verkoopactie uitschakelen"
714
}
res/values/strings_pl.arb
+3
-1
@@ -708,5 +708,7 @@
708
"error_text_input_below_minimum_limit" : "Kwota jest mniejsza niż minimalna",
709
"error_text_input_above_maximum_limit" : "Kwota jest większa niż maksymalna",
710
"show_market_place" : "Pokaż rynek",
711
- "prevent_screenshots": "Zapobiegaj zrzutom ekranu i nagrywaniu ekranu"
711
+ "prevent_screenshots": "Zapobiegaj zrzutom ekranu i nagrywaniu ekranu",
712
+ "disable_buy": "Wyłącz akcję kupna",
713
+ "disable_sell": "Wyłącz akcję sprzedaży"
714
}
res/values/strings_pt.arb
+3
-1
@@ -707,5 +707,7 @@
707
"error_text_input_below_minimum_limit" : "O valor é menor que o mínimo",
708
"error_text_input_above_maximum_limit" : "O valor é superior ao máximo",
709
"show_market_place":"Mostrar mercado",
710
- "prevent_screenshots": "Evite capturas de tela e gravação de tela"
710
+ "prevent_screenshots": "Evite capturas de tela e gravação de tela",
711
+ "disable_buy": "Desativar ação de compra",
712
+ "disable_sell": "Desativar ação de venda"
713
}
res/values/strings_ru.arb
+3
-1
@@ -708,5 +708,7 @@
708
"error_text_input_below_minimum_limit" : "Сумма меньше минимальной",
709
"error_text_input_above_maximum_limit" : "Сумма больше максимальной",
710
"show_market_place":"Показать торговую площадку",
711
- "prevent_screenshots": "Предотвратить скриншоты и запись экрана"
711
+ "prevent_screenshots": "Предотвратить скриншоты и запись экрана",
712
+ "disable_buy": "Отключить действие покупки",
713
+ "disable_sell": "Отключить действие продажи"
714
}
res/values/strings_th.arb
+3
-1
@@ -706,5 +706,7 @@
706
"error_text_input_below_minimum_limit" : "จำนวนเงินน้อยกว่าขั้นต่ำ",
707
"error_text_input_above_maximum_limit" : "จำนวนเงินสูงกว่าค่าสูงสุด",
708
"show_market_place":"แสดงตลาดกลาง",
709
- "prevent_screenshots": "ป้องกันภาพหน้าจอและการบันทึกหน้าจอ"
709
+ "prevent_screenshots": "ป้องกันภาพหน้าจอและการบันทึกหน้าจอ",
710
+ "disable_buy": "ปิดการใช้งานการซื้อ",
711
+ "disable_sell": "ปิดการใช้งานการขาย"
712
}
res/values/strings_tr.arb
+3
-1
@@ -708,5 +708,7 @@
708
"error_text_input_below_minimum_limit" : "Miktar minimumdan daha azdır",
709
"error_text_input_above_maximum_limit" : "Miktar maksimumdan daha fazla",
710
"show_market_place":"Pazar Yerini Göster",
711
- "prevent_screenshots": "Ekran görüntülerini ve ekran kaydını önleyin"
711
+ "prevent_screenshots": "Ekran görüntülerini ve ekran kaydını önleyin",
712
+ "disable_buy": "Satın alma işlemini devre dışı bırak",
713
+ "disable_sell": "Satış işlemini devre dışı bırak"
714
}
res/values/strings_uk.arb
+3
-1
@@ -707,5 +707,7 @@
707
"error_text_input_below_minimum_limit" : "Сума менша мінімальної",
708
"error_text_input_above_maximum_limit" : "Сума більше максимальної",
709
"show_market_place":"Відображати маркетплейс",
710
- "prevent_screenshots": "Запобігати знімкам екрана та запису екрана"
710
+ "prevent_screenshots": "Запобігати знімкам екрана та запису екрана",
711
+ "disable_buy": "Вимкнути дію покупки",
712
+ "disable_sell": "Вимкнути дію продажу"
713
}
res/values/strings_ur.arb
+3
-1
@@ -703,5 +703,7 @@
703
"error_text_input_below_minimum_limit" : "رقم کم از کم سے کم ہے۔",
704
"error_text_input_above_maximum_limit" : "رقم زیادہ سے زیادہ سے زیادہ ہے۔",
705
"show_market_place":"بازار دکھائیں۔",
706
- "prevent_screenshots": "اسکرین شاٹس اور اسکرین ریکارڈنگ کو روکیں۔"
706
+ "prevent_screenshots": "اسکرین شاٹس اور اسکرین ریکارڈنگ کو روکیں۔",
707
+ "disable_buy": "خرید ایکشن کو غیر فعال کریں۔",
708
+ "disable_sell": "فروخت کی کارروائی کو غیر فعال کریں۔"
709
}
res/values/strings_zh.arb
+3
-1
@@ -707,5 +707,7 @@
707
"error_text_input_below_minimum_limit" : "金额小于最小值",
708
"error_text_input_above_maximum_limit" : "金额大于最大值",
709
"show_market_place" :"显示市场",
710
- "prevent_screenshots": "防止截屏和录屏"
710
+ "prevent_screenshots": "防止截屏和录屏",
711
+ "disable_buy": "禁用购买操作",
712
+ "disable_sell": "禁用卖出操作"
713
}