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": "禁用交换",