aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Ahmad M. Abdelaziz <a.3b3ziz@gmail.com>2021-10-16 10:26:13 +0200
committerLibravatar GitHub <noreply@github.com>2021-10-16 13:56:13 +0530
commit09c2482eda07cdc4d2f03622f18de069848264ec (patch)
treea7481bd73527fc55d6f954dd4dfd76d61c0720c6
parent5.6.3-nightly.35 [skip ci] (diff)
downloadferdium-app-09c2482eda07cdc4d2f03622f18de069848264ec.tar.gz
ferdium-app-09c2482eda07cdc4d2f03622f18de069848264ec.tar.zst
ferdium-app-09c2482eda07cdc4d2f03622f18de069848264ec.zip
feat: add new preference to allow per-service wake-up (#2085)
-rw-r--r--src/components/settings/services/EditServiceForm.js1
-rw-r--r--src/containers/settings/EditServiceScreen.js9
-rw-r--r--src/i18n/locales/en-US.json1
-rw-r--r--src/models/Service.js6
-rw-r--r--src/stores/ServicesStore.js2
5 files changed, 19 insertions, 0 deletions
diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js
index fd3c4a176..b040e6cc2 100644
--- a/src/components/settings/services/EditServiceForm.js
+++ b/src/components/settings/services/EditServiceForm.js
@@ -356,6 +356,7 @@ class EditServiceForm extends Component {
356 <p className="settings__help indented__help"> 356 <p className="settings__help indented__help">
357 {intl.formatMessage(messages.isHibernationEnabledInfo)} 357 {intl.formatMessage(messages.isHibernationEnabledInfo)}
358 </p> 358 </p>
359 <Toggle field={form.$('isWakeUpEnabled')} />
359 <Toggle field={form.$('isDarkModeEnabled')} /> 360 <Toggle field={form.$('isDarkModeEnabled')} />
360 {form.$('isDarkModeEnabled').value && ( 361 {form.$('isDarkModeEnabled').value && (
361 <> 362 <>
diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js
index 85af0334d..972d3d251 100644
--- a/src/containers/settings/EditServiceScreen.js
+++ b/src/containers/settings/EditServiceScreen.js
@@ -37,6 +37,10 @@ const messages = defineMessages({
37 id: 'settings.service.form.enableHibernation', 37 id: 'settings.service.form.enableHibernation',
38 defaultMessage: 'Enable hibernation', 38 defaultMessage: 'Enable hibernation',
39 }, 39 },
40 enableWakeUp: {
41 id: 'settings.service.form.enableWakeUp',
42 defaultMessage: 'Enable wake up',
43 },
40 enableNotification: { 44 enableNotification: {
41 id: 'settings.service.form.enableNotification', 45 id: 'settings.service.form.enableNotification',
42 defaultMessage: 'Enable notifications', 46 defaultMessage: 'Enable notifications',
@@ -181,6 +185,11 @@ class EditServiceScreen extends Component {
181 : service.isHibernationEnabled, 185 : service.isHibernationEnabled,
182 default: true, 186 default: true,
183 }, 187 },
188 isWakeUpEnabled: {
189 label: intl.formatMessage(messages.enableWakeUp),
190 value: service.isWakeUpEnabled,
191 default: true,
192 },
184 isNotificationEnabled: { 193 isNotificationEnabled: {
185 label: intl.formatMessage(messages.enableNotification), 194 label: intl.formatMessage(messages.enableNotification),
186 value: service.isNotificationEnabled, 195 value: service.isNotificationEnabled,
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index baf9753a1..cf790567f 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -309,6 +309,7 @@
309 "settings.service.form.enableBadge": "Show unread message badges", 309 "settings.service.form.enableBadge": "Show unread message badges",
310 "settings.service.form.enableDarkMode": "Enable Dark Mode", 310 "settings.service.form.enableDarkMode": "Enable Dark Mode",
311 "settings.service.form.enableHibernation": "Enable hibernation", 311 "settings.service.form.enableHibernation": "Enable hibernation",
312 "settings.service.form.enableWakeUp": "Enable wake up",
312 "settings.service.form.enableNotification": "Enable notifications", 313 "settings.service.form.enableNotification": "Enable notifications",
313 "settings.service.form.enableService": "Enable service", 314 "settings.service.form.enableService": "Enable service",
314 "settings.service.form.headlineBadges": "Unread message badges", 315 "settings.service.form.headlineBadges": "Unread message badges",
diff --git a/src/models/Service.js b/src/models/Service.js
index 75dfde027..12109fb0a 100644
--- a/src/models/Service.js
+++ b/src/models/Service.js
@@ -81,6 +81,8 @@ export default class Service {
81 81
82 @observable isHibernationEnabled = false; 82 @observable isHibernationEnabled = false;
83 83
84 @observable isWakeUpEnabled = true;
85
84 @observable isHibernationRequested = false; 86 @observable isHibernationRequested = false;
85 87
86 @observable onlyShowFavoritesInUnreadCount = false; 88 @observable onlyShowFavoritesInUnreadCount = false;
@@ -163,6 +165,10 @@ export default class Service {
163 data.isHibernationEnabled, 165 data.isHibernationEnabled,
164 this.isHibernationEnabled, 166 this.isHibernationEnabled,
165 ); 167 );
168 this.isWakeUpEnabled = ifUndefinedBoolean(
169 data.isWakeUpEnabled,
170 this.isWakeUpEnabled,
171 );
166 172
167 // Check if "Hibernate on Startup" is enabled and hibernate all services except active one 173 // Check if "Hibernate on Startup" is enabled and hibernate all services except active one
168 const { hibernateOnStartup } = window.ferdi.stores.settings.app; 174 const { hibernateOnStartup } = window.ferdi.stores.settings.app;
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js
index 5ed9e3534..c6baa4358 100644
--- a/src/stores/ServicesStore.js
+++ b/src/stores/ServicesStore.js
@@ -224,6 +224,7 @@ export default class ServicesStore extends Store {
224 } 224 }
225 225
226 if ( 226 if (
227 service.isWakeUpEnabled &&
227 service.lastHibernated && 228 service.lastHibernated &&
228 Number(this.stores.settings.all.app.wakeUpStrategy) > 0 && 229 Number(this.stores.settings.all.app.wakeUpStrategy) > 0 &&
229 Date.now() - service.lastHibernated > 230 Date.now() - service.lastHibernated >
@@ -399,6 +400,7 @@ export default class ServicesStore extends Store {
399 serviceData = { 400 serviceData = {
400 isEnabled: true, 401 isEnabled: true,
401 isHibernationEnabled: false, 402 isHibernationEnabled: false,
403 isWakeUpEnabled: true,
402 isNotificationEnabled: true, 404 isNotificationEnabled: true,
403 isBadgeEnabled: true, 405 isBadgeEnabled: true,
404 isMuted: false, 406 isMuted: false,