Add toggle for disabling service bulletin (#1347)
* Add toggle for disabling service bulletin * Make the toggle functional * Fix + add toggle to Advanced Settings * Remove unused variable --------- Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
tuxsudo committed
Mar 25, 2024 at 14:28 UTC
4520f583a6d66a8678b8f0c476dde8b9509a1fe0
34 files changed
+78
-2
lib/entities/preferences_key.dart
+1
@@ -20,6 +20,7 @@ class PreferencesKey {
20
static const isAppSecureKey = 'is_app_secure';
21
static const disableBuyKey = 'disable_buy';
22
static const disableSellKey = 'disable_sell';
23
+ static const disableBulletinKey = 'disable_bulletin';
24
static const defaultBuyProvider = 'default_buy_provider';
25
static const walletListOrder = 'wallet_list_order';
26
static const walletListAscending = 'wallet_list_ascending';
lib/src/screens/dashboard/dashboard_page.dart
+10
-1
@@ -103,7 +103,16 @@ class _DashboardPageView extends BasePage {
103
Widget get endDrawer => MenuWidget(dashboardViewModel);
104
105
@override
106
- Widget leading(BuildContext context) => ServicesUpdatesWidget(dashboardViewModel.getServicesStatus());
106
+ Widget leading(BuildContext context) {
107
+ return Observer(
108
+ builder: (context) {
109
+ if (dashboardViewModel.isEnabledBulletinAction) {
110
+ return ServicesUpdatesWidget(dashboardViewModel.getServicesStatus());
111
+ }
112
+ return const SizedBox();
113
+ },
114
+ );
115
+ }
116
117
@override
118
Widget middle(BuildContext context) {
lib/src/screens/new_wallet/advanced_privacy_settings_page.dart
+6
@@ -100,6 +100,12 @@ class _AdvancedPrivacySettingsBodyState extends State<AdvancedPrivacySettingsBod
100
Observer(builder: (_) {
101
return Column(
102
children: [
103
+ SettingsSwitcherCell(
104
+ title: S.current.disable_bulletin,
105
+ value: widget.privacySettingsViewModel.disableBulletin,
106
+ onValueChange: (BuildContext _, bool value) {
107
+ widget.privacySettingsViewModel.setDisableBulletin(value);
108
+ }),
109
SettingsSwitcherCell(
110
title: S.current.add_custom_node,
111
value: widget.privacySettingsViewModel.addCustomNode,
lib/src/screens/settings/privacy_page.dart
+6
@@ -80,6 +80,12 @@ class PrivacyPage extends BasePage {
80
onValueChange: (BuildContext _, bool value) {
81
_privacySettingsViewModel.setDisableSell(value);
82
}),
83
+ SettingsSwitcherCell(
84
+ title: S.current.disable_bulletin,
85
+ value: _privacySettingsViewModel.disableBulletin,
86
+ onValueChange: (BuildContext _, bool value) {
87
+ _privacySettingsViewModel.setDisableBulletin(value);
88
+ }),
89
if (_privacySettingsViewModel.canUseEtherscan)
90
SettingsSwitcherCell(
91
title: S.current.etherscan_history,
lib/store/settings_store.dart
+13
@@ -59,6 +59,7 @@ abstract class SettingsStoreBase with Store {
59
required bool initialAppSecure,
60
required bool initialDisableBuy,
61
required bool initialDisableSell,
62
+ required bool initialDisableBulletin,
63
required WalletListOrderType initialWalletListOrder,
64
required bool initialWalletListAscending,
65
required FiatApiMode initialFiatMode,
@@ -130,6 +131,7 @@ abstract class SettingsStoreBase with Store {
131
isAppSecure = initialAppSecure,
132
disableBuy = initialDisableBuy,
133
disableSell = initialDisableSell,
134
+ disableBulletin = initialDisableBulletin,
135
walletListOrder = initialWalletListOrder,
136
walletListAscending = initialWalletListAscending,
137
shouldShowMarketPlaceInDashboard = initialShouldShowMarketPlaceInDashboard,
@@ -291,6 +293,11 @@ abstract class SettingsStoreBase with Store {
293
(bool disableSell) =>
294
sharedPreferences.setBool(PreferencesKey.disableSellKey, disableSell));
295
296
+ reaction(
297
+ (_) => disableBulletin,
298
+ (bool disableBulletin) =>
299
+ sharedPreferences.setBool(PreferencesKey.disableBulletinKey, disableBulletin));
300
+
301
reaction(
302
(_) => walletListOrder,
303
(WalletListOrderType walletListOrder) =>
@@ -553,6 +560,9 @@ abstract class SettingsStoreBase with Store {
560
@observable
561
bool disableSell;
562
563
+ @observable
564
+ bool disableBulletin;
565
+
566
@observable
567
WalletListOrderType walletListOrder;
568
@@ -777,6 +787,7 @@ abstract class SettingsStoreBase with Store {
787
final isAppSecure = sharedPreferences.getBool(PreferencesKey.isAppSecureKey) ?? false;
788
final disableBuy = sharedPreferences.getBool(PreferencesKey.disableBuyKey) ?? false;
789
final disableSell = sharedPreferences.getBool(PreferencesKey.disableSellKey) ?? false;
790
+ final disableBulletin = sharedPreferences.getBool(PreferencesKey.disableBulletinKey) ?? false;
791
final walletListOrder =
792
WalletListOrderType.values[sharedPreferences.getInt(PreferencesKey.walletListOrder) ?? 0];
793
final walletListAscending =
@@ -1029,6 +1040,7 @@ abstract class SettingsStoreBase with Store {
1040
initialAppSecure: isAppSecure,
1041
initialDisableBuy: disableBuy,
1042
initialDisableSell: disableSell,
1043
+ initialDisableBulletin: disableBulletin,
1044
initialWalletListOrder: walletListOrder,
1045
initialWalletListAscending: walletListAscending,
1046
initialFiatMode: currentFiatApiMode,
@@ -1147,6 +1159,7 @@ abstract class SettingsStoreBase with Store {
1159
isAppSecure = sharedPreferences.getBool(PreferencesKey.isAppSecureKey) ?? isAppSecure;
1160
disableBuy = sharedPreferences.getBool(PreferencesKey.disableBuyKey) ?? disableBuy;
1161
disableSell = sharedPreferences.getBool(PreferencesKey.disableSellKey) ?? disableSell;
1162
+ disableBulletin = sharedPreferences.getBool(PreferencesKey.disableBulletinKey) ?? disableBulletin;
1163
walletListOrder =
1164
WalletListOrderType.values[sharedPreferences.getInt(PreferencesKey.walletListOrder) ?? 0];
1165
walletListAscending = sharedPreferences.getBool(PreferencesKey.walletListAscending) ?? true;
lib/view_model/advanced_privacy_settings_view_model.dart
+6
@@ -20,6 +20,9 @@ abstract class AdvancedPrivacySettingsViewModelBase with Store {
20
@computed
21
FiatApiMode get fiatApiMode => _settingsStore.fiatApiMode;
22
23
+ @computed
24
+ bool get disableBulletin => _settingsStore.disableBulletin;
25
+
26
@observable
27
bool _addCustomNode = false;
28
@@ -64,6 +67,9 @@ abstract class AdvancedPrivacySettingsViewModelBase with Store {
67
@action
68
void setExchangeApiMode(ExchangeApiMode value) => _settingsStore.exchangeStatus = value;
69
70
+ @action
71
+ void setDisableBulletin(bool value) => _settingsStore.disableBulletin = value;
72
+
73
@action
74
void toggleAddCustomNode() => _addCustomNode = !_addCustomNode;
75
lib/view_model/dashboard/dashboard_view_model.dart
+3
@@ -355,6 +355,9 @@ abstract class DashboardViewModelBase with Store {
355
@observable
356
bool hasSellAction;
357
358
+ @computed
359
+ bool get isEnabledBulletinAction => !settingsStore.disableBulletin;
360
+
361
ReactionDisposer? _onMoneroAccountChangeReaction;
362
363
ReactionDisposer? _onMoneroBalanceChangeReaction;
lib/view_model/settings/privacy_settings_view_model.dart
+6
@@ -59,6 +59,9 @@ abstract class PrivacySettingsViewModelBase with Store {
59
@computed
60
bool get disableSell => _settingsStore.disableSell;
61
62
+ @computed
63
+ bool get disableBulletin => _settingsStore.disableBulletin;
64
+
65
@computed
66
bool get useEtherscan => _settingsStore.useEtherscan;
67
@@ -106,6 +109,9 @@ abstract class PrivacySettingsViewModelBase with Store {
109
@action
110
void setDisableSell(bool value) => _settingsStore.disableSell = value;
111
112
+ @action
113
+ void setDisableBulletin(bool value) => _settingsStore.disableBulletin = value;
114
+
115
@action
116
void setLookupsTwitter(bool value) => _settingsStore.lookupsTwitter = value;
117
res/values/strings_ar.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-رقم PIN",
187
"digital_and_physical_card": " بطاقة ائتمان رقمية ومادية مسبقة الدفع",
188
"disable": "إبطال",
189
+ "disable_bulletin": "تعطيل نشرة حالة الخدمة",
190
"disable_buy": "تعطيل إجراء الشراء",
191
"disable_cake_2fa": "تعطيل 2 عامل المصادقة",
192
"disable_exchange": "تعطيل التبادل",
res/values/strings_bg.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-цифрен PIN",
187
"digital_and_physical_card": " дигитална или физическа предплатена дебитна карта",
188
"disable": "Деактивиране",
189
+ "disable_bulletin": "Деактивирайте бюлетина за състоянието на услугата",
190
"disable_buy": "Деактивирайте действието за покупка",
191
"disable_cake_2fa": "Деактивирайте Cake 2FA",
192
"disable_exchange": "Деактивиране на борса",
res/values/strings_cs.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-číselný PIN",
187
"digital_and_physical_card": " digitální a fyzické předplacené debetní karty,",
188
"disable": "Zakázat",
189
+ "disable_bulletin": "Zakázat status servisního stavu",
190
"disable_buy": "Zakázat akci nákupu",
191
"disable_cake_2fa": "Zakázat Cake 2FA",
192
"disable_exchange": "Zakázat směnárny",
res/values/strings_de.arb
+2
-1
@@ -186,6 +186,7 @@
186
"digit_pin": "-stellige PIN",
187
"digital_and_physical_card": "digitale und physische Prepaid-Debitkarte",
188
"disable": "Deaktivieren",
189
+ "disable_bulletin": "Deaktivieren Sie das Bulletin des Service Status",
190
"disable_buy": "Kaufaktion deaktivieren",
191
"disable_cake_2fa": "Cake 2FA deaktivieren",
192
"disable_exchange": "Exchange deaktivieren",
@@ -411,8 +412,8 @@
412
"placeholder_transactions": "Ihre Transaktionen werden hier angezeigt",
413
"please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist",
414
"please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.",
414
- "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.",
415
"please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.",
416
+ "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.",
417
"please_select": "Bitte auswählen:",
418
"please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.",
419
"please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden",
res/values/strings_en.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-digit PIN",
187
"digital_and_physical_card": " digital and physical prepaid debit card",
188
"disable": "Disable",
189
+ "disable_bulletin": "Disable service status bulletin",
190
"disable_buy": "Disable buy action",
191
"disable_cake_2fa": "Disable Cake 2FA",
192
"disable_exchange": "Disable exchange",
res/values/strings_es.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-dígito PIN",
187
"digital_and_physical_card": " tarjeta de débito prepago digital y física",
188
"disable": "Desactivar",
189
+ "disable_bulletin": "Desactivar el boletín de estado del servicio",
190
"disable_buy": "Desactivar acción de compra",
191
"disable_cake_2fa": "Desactivar pastel 2FA",
192
"disable_exchange": "Deshabilitar intercambio",
res/values/strings_fr.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": " chiffres",
187
"digital_and_physical_card": "carte de débit prépayée numérique et physique",
188
"disable": "Désactiver",
189
+ "disable_bulletin": "Désactiver le bulletin de statut de service",
190
"disable_buy": "Désactiver l'action d'achat",
191
"disable_cake_2fa": "Désactiver Cake 2FA",
192
"disable_exchange": "Désactiver l'échange",
res/values/strings_ha.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-lambar PIN",
187
"digital_and_physical_card": "katin zare kudi na dijital da na zahiri",
188
"disable": "Kashe",
189
+ "disable_bulletin": "Musaki ma'aunin sabis na sabis",
190
"disable_buy": "Kashe alama",
191
"disable_cake_2fa": "Musaki Cake 2FA",
192
"disable_exchange": "Kashe musanya",
res/values/strings_hi.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-अंक पिन",
187
"digital_and_physical_card": "डिजिटल और भौतिक प्रीपेड डेबिट कार्ड",
188
"disable": "अक्षम करना",
189
+ "disable_bulletin": "सेवा स्थिति बुलेटिन अक्षम करें",
190
"disable_buy": "खरीद कार्रवाई अक्षम करें",
191
"disable_cake_2fa": "केक 2FA अक्षम करें",
192
"disable_exchange": "एक्सचेंज अक्षम करें",
res/values/strings_hr.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-znamenkasti PIN",
187
"digital_and_physical_card": "digitalna i fizička unaprijed plaćena debitna kartica",
188
"disable": "Onemogući",
189
+ "disable_bulletin": "Onemogućite bilten o statusu usluge",
190
"disable_buy": "Onemogući kupnju",
191
"disable_cake_2fa": "Onemogući Cake 2FA",
192
"disable_exchange": "Onemogući exchange",
res/values/strings_id.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-digit PIN",
187
"digital_and_physical_card": " kartu debit pra-bayar digital dan fisik",
188
"disable": "Cacat",
189
+ "disable_bulletin": "Nonaktifkan Buletin Status Layanan",
190
"disable_buy": "Nonaktifkan tindakan beli",
191
"disable_cake_2fa": "Nonaktifkan Kue 2FA",
192
"disable_exchange": "Nonaktifkan pertukaran",
res/values/strings_it.arb
+1
@@ -187,6 +187,7 @@
187
"digit_pin": "-cifre PIN",
188
"digital_and_physical_card": "carta di debito prepagata digitale e fisica",
189
"disable": "disattivare",
190
+ "disable_bulletin": "Disabilita Bollettino dello stato del servizio",
191
"disable_buy": "Disabilita l'azione di acquisto",
192
"disable_cake_2fa": "Disabilita Cake 2FA",
193
"disable_exchange": "Disabilita scambio",
res/values/strings_ja.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "桁ピン",
187
"digital_and_physical_card": "デジタルおよび物理プリペイドデビットカード",
188
"disable": "無効にする",
189
+ "disable_bulletin": "サービスステータス速報を無効にします",
190
"disable_buy": "購入アクションを無効にする",
191
"disable_cake_2fa": "Cake 2FA を無効にする",
192
"disable_exchange": "交換を無効にする",
res/values/strings_ko.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "숫자 PIN",
187
"digital_and_physical_card": " 디지털 및 실제 선불 직불 카드",
188
"disable": "장애를 입히다",
189
+ "disable_bulletin": "서비스 상태 게시판을 비활성화합니다",
190
"disable_buy": "구매 행동 비활성화",
191
"disable_cake_2fa": "케이크 2FA 비활성화",
192
"disable_exchange": "교환 비활성화",
res/values/strings_my.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-ဂဏန်း PIN",
187
"digital_and_physical_card": " ဒစ်ဂျစ်တယ်နှင့် ရုပ်ပိုင်းဆိုင်ရာ ကြိုတင်ငွေပေးချေသော ဒက်ဘစ်ကတ်",
188
"disable": "ပိတ်ပါ။",
189
+ "disable_bulletin": "ဝန်ဆောင်မှုအခြေအနေစာစောင်ကိုပိတ်ပါ",
190
"disable_buy": "ဝယ်ယူမှု လုပ်ဆောင်ချက်ကို ပိတ်ပါ။",
191
"disable_cake_2fa": "ကိတ်မုန့် 2FA ကို ပိတ်ပါ။",
192
"disable_exchange": "လဲလှယ်မှုကို ပိတ်ပါ။",
res/values/strings_nl.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-cijferige PIN",
187
"digital_and_physical_card": "digitale en fysieke prepaid debetkaart",
188
"disable": "Uitzetten",
189
+ "disable_bulletin": "Schakel servicestatus Bulletin uit",
190
"disable_buy": "Koopactie uitschakelen",
191
"disable_cake_2fa": "Taart 2FA uitschakelen",
192
"disable_exchange": "Uitwisseling uitschakelen",
res/values/strings_pl.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-znakowy PIN",
187
"digital_and_physical_card": " cyfrowa i fizyczna przedpłacona karta debetowa",
188
"disable": "Wyłączyć",
189
+ "disable_bulletin": "Wyłącz biuletyn statusu usługi",
190
"disable_buy": "Wyłącz akcję kupna",
191
"disable_cake_2fa": "Wyłącz Cake 2FA",
192
"disable_exchange": "Wyłącz wymianę",
res/values/strings_pt.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "dígitos",
187
"digital_and_physical_card": "cartão de débito pré-pago digital e físico",
188
"disable": "Desativar",
189
+ "disable_bulletin": "Desativar boletim de status de serviço",
190
"disable_buy": "Desativar ação de compra",
191
"disable_cake_2fa": "Desabilitar o Cake 2FA",
192
"disable_exchange": "Desativar troca",
res/values/strings_ru.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-значный PIN",
187
"digital_and_physical_card": "цифровая и физическая предоплаченная дебетовая карта",
188
"disable": "Запрещать",
189
+ "disable_bulletin": "Отключить бюллетень статуса обслуживания",
190
"disable_buy": "Отключить действие покупки",
191
"disable_cake_2fa": "Отключить торт 2FA",
192
"disable_exchange": "Отключить обмен",
res/values/strings_th.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-หลัก PIN",
187
"digital_and_physical_card": "บัตรเดบิตดิจิตอลและบัตรพื้นฐาน",
188
"disable": "ปิดการใช้งาน",
189
+ "disable_bulletin": "ปิดการใช้งาน Bulletin สถานะบริการ",
190
"disable_buy": "ปิดการใช้งานการซื้อ",
191
"disable_cake_2fa": "ปิดการใช้งานเค้ก 2FA",
192
"disable_exchange": "ปิดใช้งานการแลกเปลี่ยน",
res/values/strings_tl.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-digit pin",
187
"digital_and_physical_card": "Digital at Physical Prepaid Debit Card",
188
"disable": "Huwag paganahin",
189
+ "disable_bulletin": "Huwag paganahin ang Bulletin ng Katayuan ng Serbisyo",
190
"disable_buy": "Huwag paganahin ang pagkilos ng pagbili",
191
"disable_cake_2fa": "Huwag paganahin ang cake 2FA",
192
"disable_exchange": "Huwag paganahin ang palitan",
res/values/strings_tr.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": " haneli PIN",
187
"digital_and_physical_card": " Dijital para birimleri ile para yükleyebileceğiniz ve ek bilgiye gerek olmayan",
188
"disable": "Devre dışı bırakmak",
189
+ "disable_bulletin": "Hizmet Durumu Bültenini Devre Dışı Bırak",
190
"disable_buy": "Satın alma işlemini devre dışı bırak",
191
"disable_cake_2fa": "Cake 2FA'yı Devre Dışı Bırak",
192
"disable_exchange": "Borsayı devre dışı bırak",
res/values/strings_uk.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-значний PIN",
187
"digital_and_physical_card": " цифрова та фізична передплачена дебетова картка",
188
"disable": "Вимкнути",
189
+ "disable_bulletin": "Вимкнути статус послуги",
190
"disable_buy": "Вимкнути дію покупки",
191
"disable_cake_2fa": "Вимкнути Cake 2FA",
192
"disable_exchange": "Вимкнути exchange",
res/values/strings_ur.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-ہندسوں کا پن",
187
"digital_and_physical_card": " ڈیجیٹل اور فزیکل پری پیڈ ڈیبٹ کارڈ",
188
"disable": "غیر فعال کریں۔",
189
+ "disable_bulletin": "خدمت کی حیثیت کا بلیٹن کو غیر فعال کریں",
190
"disable_buy": "خرید ایکشن کو غیر فعال کریں۔",
191
"disable_cake_2fa": "کیک 2FA کو غیر فعال کریں۔",
192
"disable_exchange": "تبادلے کو غیر فعال کریں۔",
res/values/strings_yo.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "-díjíìtì òǹkà ìdánimọ̀ àdáni",
187
"digital_and_physical_card": " káàdì ìrajà t'ara àti ti ayélujára",
188
"disable": "Ko si",
189
+ "disable_bulletin": "Mu blogti ipo ipo ṣiṣẹ",
190
"disable_buy": "Ko iṣọrọ ọja",
191
"disable_cake_2fa": "Ko 2FA Cake sii",
192
"disable_exchange": "Pa ilé pàṣípààrọ̀",
res/values/strings_zh.arb
+1
@@ -186,6 +186,7 @@
186
"digit_pin": "位 PIN",
187
"digital_and_physical_card": "数字和物理预付借记卡",
188
"disable": "停用",
189
+ "disable_bulletin": "禁用服务状态公告",
190
"disable_buy": "禁用购买操作",
191
"disable_cake_2fa": "禁用蛋糕 2FA",
192
"disable_exchange": "禁用交换",