aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar Vijay Raghavan Aravamudhan <vraravam@users.noreply.github.com>2021-07-23 17:48:50 +0000
committerLibravatar GitHub <noreply@github.com>2021-07-23 23:18:50 +0530
commit0158c89b21ad6764866bb2770491a91c3516f362 (patch)
tree66564d8afea49b83ebcc71fd9e9e9b79c5e807f4 /src
parentNew Crowdin updates (#1678) (diff)
downloadferdium-app-0158c89b21ad6764866bb2770491a91c3516f362.tar.gz
ferdium-app-0158c89b21ad6764866bb2770491a91c3516f362.tar.zst
ferdium-app-0158c89b21ad6764866bb2770491a91c3516f362.zip
Added a 'wakeUpStrategy' that the user can control to wake up a previously hibernated service (#1680)
Diffstat (limited to 'src')
-rw-r--r--src/components/settings/settings/EditSettingsForm.js2
-rw-r--r--src/config.js11
-rw-r--r--src/containers/settings/EditSettingsScreen.js18
-rw-r--r--src/environment.js3
-rw-r--r--src/i18n/locales/defaultMessages.json121
-rw-r--r--src/i18n/locales/en-US.json1
-rw-r--r--src/i18n/messages/src/containers/settings/EditSettingsScreen.json121
-rw-r--r--src/models/Service.js2
-rw-r--r--src/stores/ServicesStore.js30
9 files changed, 189 insertions, 120 deletions
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js
index d2a9eb6e0..7ac644446 100644
--- a/src/components/settings/settings/EditSettingsForm.js
+++ b/src/components/settings/settings/EditSettingsForm.js
@@ -347,6 +347,8 @@ export default @observer class EditSettingsForm extends Component {
347 </span> 347 </span>
348 </p> 348 </p>
349 349
350 <Select field={form.$('wakeUpStrategy')} />
351
350 <Hr /> 352 <Hr />
351 353
352 {isWorkspaceEnabled && ( 354 {isWorkspaceEnabled && (
diff --git a/src/config.js b/src/config.js
index 24888e518..b540334c4 100644
--- a/src/config.js
+++ b/src/config.js
@@ -41,6 +41,17 @@ export const HIBERNATION_STRATEGIES = {
41 3600: 'Extremely Slow Hibernation (1hour)', 41 3600: 'Extremely Slow Hibernation (1hour)',
42}; 42};
43 43
44export const WAKE_UP_STRATEGIES = {
45 0: 'Never wake up',
46 10: 'Wake up after 10sec',
47 30: 'Wake up after 30sec',
48 60: 'Wake up after 1min',
49 300: 'Wake up after 5min',
50 600: 'Wake up after 10min',
51 1800: 'Wake up after 30min',
52 3600: 'Wake up after 1hour',
53};
54
44export const NAVIGATION_BAR_BEHAVIOURS = { 55export const NAVIGATION_BAR_BEHAVIOURS = {
45 custom: 'Show navigation bar on custom websites only', 56 custom: 'Show navigation bar on custom websites only',
46 always: 'Show navigation bar on all services', 57 always: 'Show navigation bar on all services',
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js
index 5f29ee385..764078cb8 100644
--- a/src/containers/settings/EditSettingsScreen.js
+++ b/src/containers/settings/EditSettingsScreen.js
@@ -11,7 +11,7 @@ import Form from '../../lib/Form';
11import { APP_LOCALES, SPELLCHECKER_LOCALES } from '../../i18n/languages'; 11import { APP_LOCALES, SPELLCHECKER_LOCALES } from '../../i18n/languages';
12import { 12import {
13 HIBERNATION_STRATEGIES, SIDEBAR_WIDTH, ICON_SIZES, NAVIGATION_BAR_BEHAVIOURS, SEARCH_ENGINE_NAMES, TODO_APPS, 13 HIBERNATION_STRATEGIES, SIDEBAR_WIDTH, ICON_SIZES, NAVIGATION_BAR_BEHAVIOURS, SEARCH_ENGINE_NAMES, TODO_APPS,
14 DEFAULT_SETTING_KEEP_ALL_WORKSPACES_LOADED, DEFAULT_IS_FEATURE_ENABLED_BY_USER, 14 DEFAULT_SETTING_KEEP_ALL_WORKSPACES_LOADED, DEFAULT_IS_FEATURE_ENABLED_BY_USER, WAKE_UP_STRATEGIES,
15} from '../../config'; 15} from '../../config';
16import { DEFAULT_APP_SETTINGS, isMac } from '../../environment'; 16import { DEFAULT_APP_SETTINGS, isMac } from '../../environment';
17 17
@@ -95,6 +95,10 @@ const messages = defineMessages({
95 id: 'settings.app.form.hibernationStrategy', 95 id: 'settings.app.form.hibernationStrategy',
96 defaultMessage: '!!!Hibernation strategy', 96 defaultMessage: '!!!Hibernation strategy',
97 }, 97 },
98 wakeUpStrategy: {
99 id: 'settings.app.form.wakeUpStrategy',
100 defaultMessage: '!!!Wake up strategy',
101 },
98 predefinedTodoServer: { 102 predefinedTodoServer: {
99 id: 'settings.app.form.predefinedTodoServer', 103 id: 'settings.app.form.predefinedTodoServer',
100 defaultMessage: '!!!Todo Server', 104 defaultMessage: '!!!Todo Server',
@@ -255,6 +259,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
255 hibernate: settingsData.hibernate, 259 hibernate: settingsData.hibernate,
256 hibernateOnStartup: settingsData.hibernateOnStartup, 260 hibernateOnStartup: settingsData.hibernateOnStartup,
257 hibernationStrategy: settingsData.hibernationStrategy, 261 hibernationStrategy: settingsData.hibernationStrategy,
262 wakeUpStrategy: settingsData.wakeUpStrategy,
258 predefinedTodoServer: settingsData.predefinedTodoServer, 263 predefinedTodoServer: settingsData.predefinedTodoServer,
259 customTodoServer: settingsData.customTodoServer, 264 customTodoServer: settingsData.customTodoServer,
260 lockingFeatureEnabled: settingsData.lockingFeatureEnabled, 265 lockingFeatureEnabled: settingsData.lockingFeatureEnabled,
@@ -334,6 +339,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
334 sort: false, 339 sort: false,
335 }); 340 });
336 341
342 const wakeUpStrategies = getSelectOptions({
343 locales: WAKE_UP_STRATEGIES,
344 sort: false,
345 });
346
337 const todoApp = getSelectOptions({ 347 const todoApp = getSelectOptions({
338 locales: TODO_APPS, 348 locales: TODO_APPS,
339 sort: false, 349 sort: false,
@@ -439,6 +449,12 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
439 options: hibernationStrategies, 449 options: hibernationStrategies,
440 default: DEFAULT_APP_SETTINGS.hibernationStrategy, 450 default: DEFAULT_APP_SETTINGS.hibernationStrategy,
441 }, 451 },
452 wakeUpStrategy: {
453 label: intl.formatMessage(messages.wakeUpStrategy),
454 value: settings.all.app.wakeUpStrategy,
455 options: wakeUpStrategies,
456 default: DEFAULT_APP_SETTINGS.wakeUpStrategy,
457 },
442 predefinedTodoServer: { 458 predefinedTodoServer: {
443 label: intl.formatMessage(messages.predefinedTodoServer), 459 label: intl.formatMessage(messages.predefinedTodoServer),
444 value: settings.all.app.predefinedTodoServer, 460 value: settings.all.app.predefinedTodoServer,
diff --git a/src/environment.js b/src/environment.js
index 6a126e0c6..a6ad75820 100644
--- a/src/environment.js
+++ b/src/environment.js
@@ -133,7 +133,8 @@ export const DEFAULT_APP_SETTINGS = {
133 scheduledDNDStart: '17:00', 133 scheduledDNDStart: '17:00',
134 scheduledDNDEnd: '09:00', 134 scheduledDNDEnd: '09:00',
135 hibernateOnStartup: true, 135 hibernateOnStartup: true,
136 hibernationStrategy: 300, 136 hibernationStrategy: '300', // seconds
137 wakeUpStrategy: '300', // seconds
137 inactivityLock: 0, 138 inactivityLock: 0,
138 automaticUpdates: true, 139 automaticUpdates: true,
139 showServiceNavigationBar: false, 140 showServiceNavigationBar: false,
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json
index 78760e9c9..05744e5e7 100644
--- a/src/i18n/locales/defaultMessages.json
+++ b/src/i18n/locales/defaultMessages.json
@@ -4419,354 +4419,367 @@
4419 } 4419 }
4420 }, 4420 },
4421 { 4421 {
4422 "defaultMessage": "!!!Todo Server", 4422 "defaultMessage": "!!!Wake up strategy",
4423 "end": { 4423 "end": {
4424 "column": 3, 4424 "column": 3,
4425 "line": 101 4425 "line": 101
4426 }, 4426 },
4427 "file": "src/containers/settings/EditSettingsScreen.js", 4427 "file": "src/containers/settings/EditSettingsScreen.js",
4428 "id": "settings.app.form.wakeUpStrategy",
4429 "start": {
4430 "column": 18,
4431 "line": 98
4432 }
4433 },
4434 {
4435 "defaultMessage": "!!!Todo Server",
4436 "end": {
4437 "column": 3,
4438 "line": 105
4439 },
4440 "file": "src/containers/settings/EditSettingsScreen.js",
4428 "id": "settings.app.form.predefinedTodoServer", 4441 "id": "settings.app.form.predefinedTodoServer",
4429 "start": { 4442 "start": {
4430 "column": 24, 4443 "column": 24,
4431 "line": 98 4444 "line": 102
4432 } 4445 }
4433 }, 4446 },
4434 { 4447 {
4435 "defaultMessage": "!!!Custom TodoServer", 4448 "defaultMessage": "!!!Custom TodoServer",
4436 "end": { 4449 "end": {
4437 "column": 3, 4450 "column": 3,
4438 "line": 105 4451 "line": 109
4439 }, 4452 },
4440 "file": "src/containers/settings/EditSettingsScreen.js", 4453 "file": "src/containers/settings/EditSettingsScreen.js",
4441 "id": "settings.app.form.customTodoServer", 4454 "id": "settings.app.form.customTodoServer",
4442 "start": { 4455 "start": {
4443 "column": 20, 4456 "column": 20,
4444 "line": 102 4457 "line": 106
4445 } 4458 }
4446 }, 4459 },
4447 { 4460 {
4448 "defaultMessage": "!!!Enable Password Lock", 4461 "defaultMessage": "!!!Enable Password Lock",
4449 "end": { 4462 "end": {
4450 "column": 3, 4463 "column": 3,
4451 "line": 109 4464 "line": 113
4452 }, 4465 },
4453 "file": "src/containers/settings/EditSettingsScreen.js", 4466 "file": "src/containers/settings/EditSettingsScreen.js",
4454 "id": "settings.app.form.enableLock", 4467 "id": "settings.app.form.enableLock",
4455 "start": { 4468 "start": {
4456 "column": 14, 4469 "column": 14,
4457 "line": 106 4470 "line": 110
4458 } 4471 }
4459 }, 4472 },
4460 { 4473 {
4461 "defaultMessage": "!!!Password", 4474 "defaultMessage": "!!!Password",
4462 "end": { 4475 "end": {
4463 "column": 3, 4476 "column": 3,
4464 "line": 113 4477 "line": 117
4465 }, 4478 },
4466 "file": "src/containers/settings/EditSettingsScreen.js", 4479 "file": "src/containers/settings/EditSettingsScreen.js",
4467 "id": "settings.app.form.lockPassword", 4480 "id": "settings.app.form.lockPassword",
4468 "start": { 4481 "start": {
4469 "column": 16, 4482 "column": 16,
4470 "line": 110 4483 "line": 114
4471 } 4484 }
4472 }, 4485 },
4473 { 4486 {
4474 "defaultMessage": "!!!Allow using Touch ID to unlock", 4487 "defaultMessage": "!!!Allow using Touch ID to unlock",
4475 "end": { 4488 "end": {
4476 "column": 3, 4489 "column": 3,
4477 "line": 117 4490 "line": 121
4478 }, 4491 },
4479 "file": "src/containers/settings/EditSettingsScreen.js", 4492 "file": "src/containers/settings/EditSettingsScreen.js",
4480 "id": "settings.app.form.useTouchIdToUnlock", 4493 "id": "settings.app.form.useTouchIdToUnlock",
4481 "start": { 4494 "start": {
4482 "column": 22, 4495 "column": 22,
4483 "line": 114 4496 "line": 118
4484 } 4497 }
4485 }, 4498 },
4486 { 4499 {
4487 "defaultMessage": "!!!Lock after inactivity", 4500 "defaultMessage": "!!!Lock after inactivity",
4488 "end": { 4501 "end": {
4489 "column": 3, 4502 "column": 3,
4490 "line": 121 4503 "line": 125
4491 }, 4504 },
4492 "file": "src/containers/settings/EditSettingsScreen.js", 4505 "file": "src/containers/settings/EditSettingsScreen.js",
4493 "id": "settings.app.form.inactivityLock", 4506 "id": "settings.app.form.inactivityLock",
4494 "start": { 4507 "start": {
4495 "column": 18, 4508 "column": 18,
4496 "line": 118 4509 "line": 122
4497 } 4510 }
4498 }, 4511 },
4499 { 4512 {
4500 "defaultMessage": "!!!Enable scheduled Do-not-Disturb", 4513 "defaultMessage": "!!!Enable scheduled Do-not-Disturb",
4501 "end": { 4514 "end": {
4502 "column": 3, 4515 "column": 3,
4503 "line": 125 4516 "line": 129
4504 }, 4517 },
4505 "file": "src/containers/settings/EditSettingsScreen.js", 4518 "file": "src/containers/settings/EditSettingsScreen.js",
4506 "id": "settings.app.form.scheduledDNDEnabled", 4519 "id": "settings.app.form.scheduledDNDEnabled",
4507 "start": { 4520 "start": {
4508 "column": 23, 4521 "column": 23,
4509 "line": 122 4522 "line": 126
4510 } 4523 }
4511 }, 4524 },
4512 { 4525 {
4513 "defaultMessage": "!!!From", 4526 "defaultMessage": "!!!From",
4514 "end": { 4527 "end": {
4515 "column": 3, 4528 "column": 3,
4516 "line": 129 4529 "line": 133
4517 }, 4530 },
4518 "file": "src/containers/settings/EditSettingsScreen.js", 4531 "file": "src/containers/settings/EditSettingsScreen.js",
4519 "id": "settings.app.form.scheduledDNDStart", 4532 "id": "settings.app.form.scheduledDNDStart",
4520 "start": { 4533 "start": {
4521 "column": 21, 4534 "column": 21,
4522 "line": 126 4535 "line": 130
4523 } 4536 }
4524 }, 4537 },
4525 { 4538 {
4526 "defaultMessage": "!!!To", 4539 "defaultMessage": "!!!To",
4527 "end": { 4540 "end": {
4528 "column": 3, 4541 "column": 3,
4529 "line": 133 4542 "line": 137
4530 }, 4543 },
4531 "file": "src/containers/settings/EditSettingsScreen.js", 4544 "file": "src/containers/settings/EditSettingsScreen.js",
4532 "id": "settings.app.form.scheduledDNDEnd", 4545 "id": "settings.app.form.scheduledDNDEnd",
4533 "start": { 4546 "start": {
4534 "column": 19, 4547 "column": 19,
4535 "line": 130 4548 "line": 134
4536 } 4549 }
4537 }, 4550 },
4538 { 4551 {
4539 "defaultMessage": "!!!Language", 4552 "defaultMessage": "!!!Language",
4540 "end": { 4553 "end": {
4541 "column": 3, 4554 "column": 3,
4542 "line": 137 4555 "line": 141
4543 }, 4556 },
4544 "file": "src/containers/settings/EditSettingsScreen.js", 4557 "file": "src/containers/settings/EditSettingsScreen.js",
4545 "id": "settings.app.form.language", 4558 "id": "settings.app.form.language",
4546 "start": { 4559 "start": {
4547 "column": 12, 4560 "column": 12,
4548 "line": 134 4561 "line": 138
4549 } 4562 }
4550 }, 4563 },
4551 { 4564 {
4552 "defaultMessage": "!!!Dark Mode", 4565 "defaultMessage": "!!!Dark Mode",
4553 "end": { 4566 "end": {
4554 "column": 3, 4567 "column": 3,
4555 "line": 141 4568 "line": 145
4556 }, 4569 },
4557 "file": "src/containers/settings/EditSettingsScreen.js", 4570 "file": "src/containers/settings/EditSettingsScreen.js",
4558 "id": "settings.app.form.darkMode", 4571 "id": "settings.app.form.darkMode",
4559 "start": { 4572 "start": {
4560 "column": 12, 4573 "column": 12,
4561 "line": 138 4574 "line": 142
4562 } 4575 }
4563 }, 4576 },
4564 { 4577 {
4565 "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting", 4578 "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting",
4566 "end": { 4579 "end": {
4567 "column": 3, 4580 "column": 3,
4568 "line": 145 4581 "line": 149
4569 }, 4582 },
4570 "file": "src/containers/settings/EditSettingsScreen.js", 4583 "file": "src/containers/settings/EditSettingsScreen.js",
4571 "id": "settings.app.form.adaptableDarkMode", 4584 "id": "settings.app.form.adaptableDarkMode",
4572 "start": { 4585 "start": {
4573 "column": 21, 4586 "column": 21,
4574 "line": 142 4587 "line": 146
4575 } 4588 }
4576 }, 4589 },
4577 { 4590 {
4578 "defaultMessage": "!!!Enable universal Dark Mode", 4591 "defaultMessage": "!!!Enable universal Dark Mode",
4579 "end": { 4592 "end": {
4580 "column": 3, 4593 "column": 3,
4581 "line": 149 4594 "line": 153
4582 }, 4595 },
4583 "file": "src/containers/settings/EditSettingsScreen.js", 4596 "file": "src/containers/settings/EditSettingsScreen.js",
4584 "id": "settings.app.form.universalDarkMode", 4597 "id": "settings.app.form.universalDarkMode",
4585 "start": { 4598 "start": {
4586 "column": 21, 4599 "column": 21,
4587 "line": 146 4600 "line": 150
4588 } 4601 }
4589 }, 4602 },
4590 { 4603 {
4591 "defaultMessage": "!!!Sidebar width", 4604 "defaultMessage": "!!!Sidebar width",
4592 "end": { 4605 "end": {
4593 "column": 3, 4606 "column": 3,
4594 "line": 153 4607 "line": 157
4595 }, 4608 },
4596 "file": "src/containers/settings/EditSettingsScreen.js", 4609 "file": "src/containers/settings/EditSettingsScreen.js",
4597 "id": "settings.app.form.serviceRibbonWidth", 4610 "id": "settings.app.form.serviceRibbonWidth",
4598 "start": { 4611 "start": {
4599 "column": 22, 4612 "column": 22,
4600 "line": 150 4613 "line": 154
4601 } 4614 }
4602 }, 4615 },
4603 { 4616 {
4604 "defaultMessage": "!!!Service icon size", 4617 "defaultMessage": "!!!Service icon size",
4605 "end": { 4618 "end": {
4606 "column": 3, 4619 "column": 3,
4607 "line": 157 4620 "line": 161
4608 }, 4621 },
4609 "file": "src/containers/settings/EditSettingsScreen.js", 4622 "file": "src/containers/settings/EditSettingsScreen.js",
4610 "id": "settings.app.form.iconSize", 4623 "id": "settings.app.form.iconSize",
4611 "start": { 4624 "start": {
4612 "column": 12, 4625 "column": 12,
4613 "line": 154 4626 "line": 158
4614 } 4627 }
4615 }, 4628 },
4616 { 4629 {
4617 "defaultMessage": "!!!Use vertical style", 4630 "defaultMessage": "!!!Use vertical style",
4618 "end": { 4631 "end": {
4619 "column": 3, 4632 "column": 3,
4620 "line": 161 4633 "line": 165
4621 }, 4634 },
4622 "file": "src/containers/settings/EditSettingsScreen.js", 4635 "file": "src/containers/settings/EditSettingsScreen.js",
4623 "id": "settings.app.form.useVerticalStyle", 4636 "id": "settings.app.form.useVerticalStyle",
4624 "start": { 4637 "start": {
4625 "column": 20, 4638 "column": 20,
4626 "line": 158 4639 "line": 162
4627 } 4640 }
4628 }, 4641 },
4629 { 4642 {
4630 "defaultMessage": "!!!Always show workspace drawer", 4643 "defaultMessage": "!!!Always show workspace drawer",
4631 "end": { 4644 "end": {
4632 "column": 3, 4645 "column": 3,
4633 "line": 165 4646 "line": 169
4634 }, 4647 },
4635 "file": "src/containers/settings/EditSettingsScreen.js", 4648 "file": "src/containers/settings/EditSettingsScreen.js",
4636 "id": "settings.app.form.alwaysShowWorkspaces", 4649 "id": "settings.app.form.alwaysShowWorkspaces",
4637 "start": { 4650 "start": {
4638 "column": 24, 4651 "column": 24,
4639 "line": 162 4652 "line": 166
4640 } 4653 }
4641 }, 4654 },
4642 { 4655 {
4643 "defaultMessage": "!!!Accent color", 4656 "defaultMessage": "!!!Accent color",
4644 "end": { 4657 "end": {
4645 "column": 3, 4658 "column": 3,
4646 "line": 169 4659 "line": 173
4647 }, 4660 },
4648 "file": "src/containers/settings/EditSettingsScreen.js", 4661 "file": "src/containers/settings/EditSettingsScreen.js",
4649 "id": "settings.app.form.accentColor", 4662 "id": "settings.app.form.accentColor",
4650 "start": { 4663 "start": {
4651 "column": 15, 4664 "column": 15,
4652 "line": 166 4665 "line": 170
4653 } 4666 }
4654 }, 4667 },
4655 { 4668 {
4656 "defaultMessage": "!!!Display disabled services tabs", 4669 "defaultMessage": "!!!Display disabled services tabs",
4657 "end": { 4670 "end": {
4658 "column": 3, 4671 "column": 3,
4659 "line": 173 4672 "line": 177
4660 }, 4673 },
4661 "file": "src/containers/settings/EditSettingsScreen.js", 4674 "file": "src/containers/settings/EditSettingsScreen.js",
4662 "id": "settings.app.form.showDisabledServices", 4675 "id": "settings.app.form.showDisabledServices",
4663 "start": { 4676 "start": {
4664 "column": 24, 4677 "column": 24,
4665 "line": 170 4678 "line": 174
4666 } 4679 }
4667 }, 4680 },
4668 { 4681 {
4669 "defaultMessage": "!!!Show unread message badge when notifications are disabled", 4682 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
4670 "end": { 4683 "end": {
4671 "column": 3, 4684 "column": 3,
4672 "line": 177 4685 "line": 181
4673 }, 4686 },
4674 "file": "src/containers/settings/EditSettingsScreen.js", 4687 "file": "src/containers/settings/EditSettingsScreen.js",
4675 "id": "settings.app.form.showMessagesBadgesWhenMuted", 4688 "id": "settings.app.form.showMessagesBadgesWhenMuted",
4676 "start": { 4689 "start": {
4677 "column": 29, 4690 "column": 29,
4678 "line": 174 4691 "line": 178
4679 } 4692 }
4680 }, 4693 },
4681 { 4694 {
4682 "defaultMessage": "!!!Show draggable area on window", 4695 "defaultMessage": "!!!Show draggable area on window",
4683 "end": { 4696 "end": {
4684 "column": 3, 4697 "column": 3,
4685 "line": 181 4698 "line": 185
4686 }, 4699 },
4687 "file": "src/containers/settings/EditSettingsScreen.js", 4700 "file": "src/containers/settings/EditSettingsScreen.js",
4688 "id": "settings.app.form.showDragArea", 4701 "id": "settings.app.form.showDragArea",
4689 "start": { 4702 "start": {
4690 "column": 16, 4703 "column": 16,
4691 "line": 178 4704 "line": 182
4692 } 4705 }
4693 }, 4706 },
4694 { 4707 {
4695 "defaultMessage": "!!!Enable spell checking", 4708 "defaultMessage": "!!!Enable spell checking",
4696 "end": { 4709 "end": {
4697 "column": 3, 4710 "column": 3,
4698 "line": 185 4711 "line": 189
4699 }, 4712 },
4700 "file": "src/containers/settings/EditSettingsScreen.js", 4713 "file": "src/containers/settings/EditSettingsScreen.js",
4701 "id": "settings.app.form.enableSpellchecking", 4714 "id": "settings.app.form.enableSpellchecking",
4702 "start": { 4715 "start": {
4703 "column": 23, 4716 "column": 23,
4704 "line": 182 4717 "line": 186
4705 } 4718 }
4706 }, 4719 },
4707 { 4720 {
4708 "defaultMessage": "!!!Enable GPU Acceleration", 4721 "defaultMessage": "!!!Enable GPU Acceleration",
4709 "end": { 4722 "end": {
4710 "column": 3, 4723 "column": 3,
4711 "line": 189 4724 "line": 193
4712 }, 4725 },
4713 "file": "src/containers/settings/EditSettingsScreen.js", 4726 "file": "src/containers/settings/EditSettingsScreen.js",
4714 "id": "settings.app.form.enableGPUAcceleration", 4727 "id": "settings.app.form.enableGPUAcceleration",
4715 "start": { 4728 "start": {
4716 "column": 25, 4729 "column": 25,
4717 "line": 186 4730 "line": 190
4718 } 4731 }
4719 }, 4732 },
4720 { 4733 {
4721 "defaultMessage": "!!!Include beta versions", 4734 "defaultMessage": "!!!Include beta versions",
4722 "end": { 4735 "end": {
4723 "column": 3, 4736 "column": 3,
4724 "line": 193 4737 "line": 197
4725 }, 4738 },
4726 "file": "src/containers/settings/EditSettingsScreen.js", 4739 "file": "src/containers/settings/EditSettingsScreen.js",
4727 "id": "settings.app.form.beta", 4740 "id": "settings.app.form.beta",
4728 "start": { 4741 "start": {
4729 "column": 8, 4742 "column": 8,
4730 "line": 190 4743 "line": 194
4731 } 4744 }
4732 }, 4745 },
4733 { 4746 {
4734 "defaultMessage": "!!!Enable updates", 4747 "defaultMessage": "!!!Enable updates",
4735 "end": { 4748 "end": {
4736 "column": 3, 4749 "column": 3,
4737 "line": 197 4750 "line": 201
4738 }, 4751 },
4739 "file": "src/containers/settings/EditSettingsScreen.js", 4752 "file": "src/containers/settings/EditSettingsScreen.js",
4740 "id": "settings.app.form.automaticUpdates", 4753 "id": "settings.app.form.automaticUpdates",
4741 "start": { 4754 "start": {
4742 "column": 20, 4755 "column": 20,
4743 "line": 194 4756 "line": 198
4744 } 4757 }
4745 }, 4758 },
4746 { 4759 {
4747 "defaultMessage": "!!!Enable Franz Todos", 4760 "defaultMessage": "!!!Enable Franz Todos",
4748 "end": { 4761 "end": {
4749 "column": 3, 4762 "column": 3,
4750 "line": 201 4763 "line": 205
4751 }, 4764 },
4752 "file": "src/containers/settings/EditSettingsScreen.js", 4765 "file": "src/containers/settings/EditSettingsScreen.js",
4753 "id": "settings.app.form.enableTodos", 4766 "id": "settings.app.form.enableTodos",
4754 "start": { 4767 "start": {
4755 "column": 15, 4768 "column": 15,
4756 "line": 198 4769 "line": 202
4757 } 4770 }
4758 }, 4771 },
4759 { 4772 {
4760 "defaultMessage": "!!!Keep all workspaces loaded", 4773 "defaultMessage": "!!!Keep all workspaces loaded",
4761 "end": { 4774 "end": {
4762 "column": 3, 4775 "column": 3,
4763 "line": 205 4776 "line": 209
4764 }, 4777 },
4765 "file": "src/containers/settings/EditSettingsScreen.js", 4778 "file": "src/containers/settings/EditSettingsScreen.js",
4766 "id": "settings.app.form.keepAllWorkspacesLoaded", 4779 "id": "settings.app.form.keepAllWorkspacesLoaded",
4767 "start": { 4780 "start": {
4768 "column": 27, 4781 "column": 27,
4769 "line": 202 4782 "line": 206
4770 } 4783 }
4771 } 4784 }
4772 ], 4785 ],
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index ce31603a5..07b9b4c5d 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -256,6 +256,7 @@
256 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 256 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
257 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 257 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
258 "settings.app.form.useVerticalStyle": "Use vertical style", 258 "settings.app.form.useVerticalStyle": "Use vertical style",
259 "settings.app.form.wakeUpStrategy": "Wake up strategy",
259 "settings.app.headline": "Settings", 260 "settings.app.headline": "Settings",
260 "settings.app.headlineAdvanced": "Advanced", 261 "settings.app.headlineAdvanced": "Advanced",
261 "settings.app.headlineAppearance": "Appearance", 262 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
index 33bcde0de..c30b4b037 100644
--- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
+++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
@@ -221,15 +221,28 @@
221 } 221 }
222 }, 222 },
223 { 223 {
224 "id": "settings.app.form.wakeUpStrategy",
225 "defaultMessage": "!!!Wake up strategy",
226 "file": "src/containers/settings/EditSettingsScreen.js",
227 "start": {
228 "line": 98,
229 "column": 18
230 },
231 "end": {
232 "line": 101,
233 "column": 3
234 }
235 },
236 {
224 "id": "settings.app.form.predefinedTodoServer", 237 "id": "settings.app.form.predefinedTodoServer",
225 "defaultMessage": "!!!Todo Server", 238 "defaultMessage": "!!!Todo Server",
226 "file": "src/containers/settings/EditSettingsScreen.js", 239 "file": "src/containers/settings/EditSettingsScreen.js",
227 "start": { 240 "start": {
228 "line": 98, 241 "line": 102,
229 "column": 24 242 "column": 24
230 }, 243 },
231 "end": { 244 "end": {
232 "line": 101, 245 "line": 105,
233 "column": 3 246 "column": 3
234 } 247 }
235 }, 248 },
@@ -238,11 +251,11 @@
238 "defaultMessage": "!!!Custom TodoServer", 251 "defaultMessage": "!!!Custom TodoServer",
239 "file": "src/containers/settings/EditSettingsScreen.js", 252 "file": "src/containers/settings/EditSettingsScreen.js",
240 "start": { 253 "start": {
241 "line": 102, 254 "line": 106,
242 "column": 20 255 "column": 20
243 }, 256 },
244 "end": { 257 "end": {
245 "line": 105, 258 "line": 109,
246 "column": 3 259 "column": 3
247 } 260 }
248 }, 261 },
@@ -251,11 +264,11 @@
251 "defaultMessage": "!!!Enable Password Lock", 264 "defaultMessage": "!!!Enable Password Lock",
252 "file": "src/containers/settings/EditSettingsScreen.js", 265 "file": "src/containers/settings/EditSettingsScreen.js",
253 "start": { 266 "start": {
254 "line": 106, 267 "line": 110,
255 "column": 14 268 "column": 14
256 }, 269 },
257 "end": { 270 "end": {
258 "line": 109, 271 "line": 113,
259 "column": 3 272 "column": 3
260 } 273 }
261 }, 274 },
@@ -264,11 +277,11 @@
264 "defaultMessage": "!!!Password", 277 "defaultMessage": "!!!Password",
265 "file": "src/containers/settings/EditSettingsScreen.js", 278 "file": "src/containers/settings/EditSettingsScreen.js",
266 "start": { 279 "start": {
267 "line": 110, 280 "line": 114,
268 "column": 16 281 "column": 16
269 }, 282 },
270 "end": { 283 "end": {
271 "line": 113, 284 "line": 117,
272 "column": 3 285 "column": 3
273 } 286 }
274 }, 287 },
@@ -277,11 +290,11 @@
277 "defaultMessage": "!!!Allow using Touch ID to unlock", 290 "defaultMessage": "!!!Allow using Touch ID to unlock",
278 "file": "src/containers/settings/EditSettingsScreen.js", 291 "file": "src/containers/settings/EditSettingsScreen.js",
279 "start": { 292 "start": {
280 "line": 114, 293 "line": 118,
281 "column": 22 294 "column": 22
282 }, 295 },
283 "end": { 296 "end": {
284 "line": 117, 297 "line": 121,
285 "column": 3 298 "column": 3
286 } 299 }
287 }, 300 },
@@ -290,11 +303,11 @@
290 "defaultMessage": "!!!Lock after inactivity", 303 "defaultMessage": "!!!Lock after inactivity",
291 "file": "src/containers/settings/EditSettingsScreen.js", 304 "file": "src/containers/settings/EditSettingsScreen.js",
292 "start": { 305 "start": {
293 "line": 118, 306 "line": 122,
294 "column": 18 307 "column": 18
295 }, 308 },
296 "end": { 309 "end": {
297 "line": 121, 310 "line": 125,
298 "column": 3 311 "column": 3
299 } 312 }
300 }, 313 },
@@ -303,11 +316,11 @@
303 "defaultMessage": "!!!Enable scheduled Do-not-Disturb", 316 "defaultMessage": "!!!Enable scheduled Do-not-Disturb",
304 "file": "src/containers/settings/EditSettingsScreen.js", 317 "file": "src/containers/settings/EditSettingsScreen.js",
305 "start": { 318 "start": {
306 "line": 122, 319 "line": 126,
307 "column": 23 320 "column": 23
308 }, 321 },
309 "end": { 322 "end": {
310 "line": 125, 323 "line": 129,
311 "column": 3 324 "column": 3
312 } 325 }
313 }, 326 },
@@ -316,11 +329,11 @@
316 "defaultMessage": "!!!From", 329 "defaultMessage": "!!!From",
317 "file": "src/containers/settings/EditSettingsScreen.js", 330 "file": "src/containers/settings/EditSettingsScreen.js",
318 "start": { 331 "start": {
319 "line": 126, 332 "line": 130,
320 "column": 21 333 "column": 21
321 }, 334 },
322 "end": { 335 "end": {
323 "line": 129, 336 "line": 133,
324 "column": 3 337 "column": 3
325 } 338 }
326 }, 339 },
@@ -329,11 +342,11 @@
329 "defaultMessage": "!!!To", 342 "defaultMessage": "!!!To",
330 "file": "src/containers/settings/EditSettingsScreen.js", 343 "file": "src/containers/settings/EditSettingsScreen.js",
331 "start": { 344 "start": {
332 "line": 130, 345 "line": 134,
333 "column": 19 346 "column": 19
334 }, 347 },
335 "end": { 348 "end": {
336 "line": 133, 349 "line": 137,
337 "column": 3 350 "column": 3
338 } 351 }
339 }, 352 },
@@ -342,11 +355,11 @@
342 "defaultMessage": "!!!Language", 355 "defaultMessage": "!!!Language",
343 "file": "src/containers/settings/EditSettingsScreen.js", 356 "file": "src/containers/settings/EditSettingsScreen.js",
344 "start": { 357 "start": {
345 "line": 134, 358 "line": 138,
346 "column": 12 359 "column": 12
347 }, 360 },
348 "end": { 361 "end": {
349 "line": 137, 362 "line": 141,
350 "column": 3 363 "column": 3
351 } 364 }
352 }, 365 },
@@ -355,11 +368,11 @@
355 "defaultMessage": "!!!Dark Mode", 368 "defaultMessage": "!!!Dark Mode",
356 "file": "src/containers/settings/EditSettingsScreen.js", 369 "file": "src/containers/settings/EditSettingsScreen.js",
357 "start": { 370 "start": {
358 "line": 138, 371 "line": 142,
359 "column": 12 372 "column": 12
360 }, 373 },
361 "end": { 374 "end": {
362 "line": 141, 375 "line": 145,
363 "column": 3 376 "column": 3
364 } 377 }
365 }, 378 },
@@ -368,11 +381,11 @@
368 "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting", 381 "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting",
369 "file": "src/containers/settings/EditSettingsScreen.js", 382 "file": "src/containers/settings/EditSettingsScreen.js",
370 "start": { 383 "start": {
371 "line": 142, 384 "line": 146,
372 "column": 21 385 "column": 21
373 }, 386 },
374 "end": { 387 "end": {
375 "line": 145, 388 "line": 149,
376 "column": 3 389 "column": 3
377 } 390 }
378 }, 391 },
@@ -381,11 +394,11 @@
381 "defaultMessage": "!!!Enable universal Dark Mode", 394 "defaultMessage": "!!!Enable universal Dark Mode",
382 "file": "src/containers/settings/EditSettingsScreen.js", 395 "file": "src/containers/settings/EditSettingsScreen.js",
383 "start": { 396 "start": {
384 "line": 146, 397 "line": 150,
385 "column": 21 398 "column": 21
386 }, 399 },
387 "end": { 400 "end": {
388 "line": 149, 401 "line": 153,
389 "column": 3 402 "column": 3
390 } 403 }
391 }, 404 },
@@ -394,11 +407,11 @@
394 "defaultMessage": "!!!Sidebar width", 407 "defaultMessage": "!!!Sidebar width",
395 "file": "src/containers/settings/EditSettingsScreen.js", 408 "file": "src/containers/settings/EditSettingsScreen.js",
396 "start": { 409 "start": {
397 "line": 150, 410 "line": 154,
398 "column": 22 411 "column": 22
399 }, 412 },
400 "end": { 413 "end": {
401 "line": 153, 414 "line": 157,
402 "column": 3 415 "column": 3
403 } 416 }
404 }, 417 },
@@ -407,11 +420,11 @@
407 "defaultMessage": "!!!Service icon size", 420 "defaultMessage": "!!!Service icon size",
408 "file": "src/containers/settings/EditSettingsScreen.js", 421 "file": "src/containers/settings/EditSettingsScreen.js",
409 "start": { 422 "start": {
410 "line": 154, 423 "line": 158,
411 "column": 12 424 "column": 12
412 }, 425 },
413 "end": { 426 "end": {
414 "line": 157, 427 "line": 161,
415 "column": 3 428 "column": 3
416 } 429 }
417 }, 430 },
@@ -420,11 +433,11 @@
420 "defaultMessage": "!!!Use vertical style", 433 "defaultMessage": "!!!Use vertical style",
421 "file": "src/containers/settings/EditSettingsScreen.js", 434 "file": "src/containers/settings/EditSettingsScreen.js",
422 "start": { 435 "start": {
423 "line": 158, 436 "line": 162,
424 "column": 20 437 "column": 20
425 }, 438 },
426 "end": { 439 "end": {
427 "line": 161, 440 "line": 165,
428 "column": 3 441 "column": 3
429 } 442 }
430 }, 443 },
@@ -433,11 +446,11 @@
433 "defaultMessage": "!!!Always show workspace drawer", 446 "defaultMessage": "!!!Always show workspace drawer",
434 "file": "src/containers/settings/EditSettingsScreen.js", 447 "file": "src/containers/settings/EditSettingsScreen.js",
435 "start": { 448 "start": {
436 "line": 162, 449 "line": 166,
437 "column": 24 450 "column": 24
438 }, 451 },
439 "end": { 452 "end": {
440 "line": 165, 453 "line": 169,
441 "column": 3 454 "column": 3
442 } 455 }
443 }, 456 },
@@ -446,11 +459,11 @@
446 "defaultMessage": "!!!Accent color", 459 "defaultMessage": "!!!Accent color",
447 "file": "src/containers/settings/EditSettingsScreen.js", 460 "file": "src/containers/settings/EditSettingsScreen.js",
448 "start": { 461 "start": {
449 "line": 166, 462 "line": 170,
450 "column": 15 463 "column": 15
451 }, 464 },
452 "end": { 465 "end": {
453 "line": 169, 466 "line": 173,
454 "column": 3 467 "column": 3
455 } 468 }
456 }, 469 },
@@ -459,11 +472,11 @@
459 "defaultMessage": "!!!Display disabled services tabs", 472 "defaultMessage": "!!!Display disabled services tabs",
460 "file": "src/containers/settings/EditSettingsScreen.js", 473 "file": "src/containers/settings/EditSettingsScreen.js",
461 "start": { 474 "start": {
462 "line": 170, 475 "line": 174,
463 "column": 24 476 "column": 24
464 }, 477 },
465 "end": { 478 "end": {
466 "line": 173, 479 "line": 177,
467 "column": 3 480 "column": 3
468 } 481 }
469 }, 482 },
@@ -472,11 +485,11 @@
472 "defaultMessage": "!!!Show unread message badge when notifications are disabled", 485 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
473 "file": "src/containers/settings/EditSettingsScreen.js", 486 "file": "src/containers/settings/EditSettingsScreen.js",
474 "start": { 487 "start": {
475 "line": 174, 488 "line": 178,
476 "column": 29 489 "column": 29
477 }, 490 },
478 "end": { 491 "end": {
479 "line": 177, 492 "line": 181,
480 "column": 3 493 "column": 3
481 } 494 }
482 }, 495 },
@@ -485,11 +498,11 @@
485 "defaultMessage": "!!!Show draggable area on window", 498 "defaultMessage": "!!!Show draggable area on window",
486 "file": "src/containers/settings/EditSettingsScreen.js", 499 "file": "src/containers/settings/EditSettingsScreen.js",
487 "start": { 500 "start": {
488 "line": 178, 501 "line": 182,
489 "column": 16 502 "column": 16
490 }, 503 },
491 "end": { 504 "end": {
492 "line": 181, 505 "line": 185,
493 "column": 3 506 "column": 3
494 } 507 }
495 }, 508 },
@@ -498,11 +511,11 @@
498 "defaultMessage": "!!!Enable spell checking", 511 "defaultMessage": "!!!Enable spell checking",
499 "file": "src/containers/settings/EditSettingsScreen.js", 512 "file": "src/containers/settings/EditSettingsScreen.js",
500 "start": { 513 "start": {
501 "line": 182, 514 "line": 186,
502 "column": 23 515 "column": 23
503 }, 516 },
504 "end": { 517 "end": {
505 "line": 185, 518 "line": 189,
506 "column": 3 519 "column": 3
507 } 520 }
508 }, 521 },
@@ -511,11 +524,11 @@
511 "defaultMessage": "!!!Enable GPU Acceleration", 524 "defaultMessage": "!!!Enable GPU Acceleration",
512 "file": "src/containers/settings/EditSettingsScreen.js", 525 "file": "src/containers/settings/EditSettingsScreen.js",
513 "start": { 526 "start": {
514 "line": 186, 527 "line": 190,
515 "column": 25 528 "column": 25
516 }, 529 },
517 "end": { 530 "end": {
518 "line": 189, 531 "line": 193,
519 "column": 3 532 "column": 3
520 } 533 }
521 }, 534 },
@@ -524,11 +537,11 @@
524 "defaultMessage": "!!!Include beta versions", 537 "defaultMessage": "!!!Include beta versions",
525 "file": "src/containers/settings/EditSettingsScreen.js", 538 "file": "src/containers/settings/EditSettingsScreen.js",
526 "start": { 539 "start": {
527 "line": 190, 540 "line": 194,
528 "column": 8 541 "column": 8
529 }, 542 },
530 "end": { 543 "end": {
531 "line": 193, 544 "line": 197,
532 "column": 3 545 "column": 3
533 } 546 }
534 }, 547 },
@@ -537,11 +550,11 @@
537 "defaultMessage": "!!!Enable updates", 550 "defaultMessage": "!!!Enable updates",
538 "file": "src/containers/settings/EditSettingsScreen.js", 551 "file": "src/containers/settings/EditSettingsScreen.js",
539 "start": { 552 "start": {
540 "line": 194, 553 "line": 198,
541 "column": 20 554 "column": 20
542 }, 555 },
543 "end": { 556 "end": {
544 "line": 197, 557 "line": 201,
545 "column": 3 558 "column": 3
546 } 559 }
547 }, 560 },
@@ -550,11 +563,11 @@
550 "defaultMessage": "!!!Enable Franz Todos", 563 "defaultMessage": "!!!Enable Franz Todos",
551 "file": "src/containers/settings/EditSettingsScreen.js", 564 "file": "src/containers/settings/EditSettingsScreen.js",
552 "start": { 565 "start": {
553 "line": 198, 566 "line": 202,
554 "column": 15 567 "column": 15
555 }, 568 },
556 "end": { 569 "end": {
557 "line": 201, 570 "line": 205,
558 "column": 3 571 "column": 3
559 } 572 }
560 }, 573 },
@@ -563,11 +576,11 @@
563 "defaultMessage": "!!!Keep all workspaces loaded", 576 "defaultMessage": "!!!Keep all workspaces loaded",
564 "file": "src/containers/settings/EditSettingsScreen.js", 577 "file": "src/containers/settings/EditSettingsScreen.js",
565 "start": { 578 "start": {
566 "line": 202, 579 "line": 206,
567 "column": 27 580 "column": 27
568 }, 581 },
569 "end": { 582 "end": {
570 "line": 205, 583 "line": 209,
571 "column": 3 584 "column": 3
572 } 585 }
573 } 586 }
diff --git a/src/models/Service.js b/src/models/Service.js
index 162dcea65..74e100ea4 100644
--- a/src/models/Service.js
+++ b/src/models/Service.js
@@ -79,6 +79,8 @@ export default class Service {
79 79
80 @observable lastUsed = Date.now(); // timestamp 80 @observable lastUsed = Date.now(); // timestamp
81 81
82 @observable lastHibernated = null; // timestamp
83
82 @observable lastPoll = Date.now(); 84 @observable lastPoll = Date.now();
83 85
84 @observable lastPollAnswer = Date.now(); 86 @observable lastPollAnswer = Date.now();
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js
index 6064b9929..fa31dc292 100644
--- a/src/stores/ServicesStore.js
+++ b/src/stores/ServicesStore.js
@@ -165,10 +165,19 @@ export default class ServicesStore extends Store {
165 */ 165 */
166 _serviceMaintenance() { 166 _serviceMaintenance() {
167 this.all.forEach((service) => { 167 this.all.forEach((service) => {
168 // Defines which services should be hibernated. 168 // Defines which services should be hibernated or woken up
169 if (!service.isActive && (Date.now() - service.lastUsed > ms(`${this.stores.settings.all.app.hibernationStrategy}s`))) { 169 if (!service.isActive) {
170 // If service is stale, hibernate it. 170 if (!service.lastHibernated && (Date.now() - service.lastUsed > ms(`${this.stores.settings.all.app.hibernationStrategy}s`))) {
171 this._hibernate({ serviceId: service.id }); 171 // If service is stale, hibernate it.
172 this._hibernate({ serviceId: service.id });
173 }
174
175 if (service.lastHibernated && Number(this.stores.settings.all.app.wakeUpStrategy) > 0) {
176 // If service is in hibernation and the wakeup time has elapsed, wake it.
177 if ((Date.now() - service.lastHibernated > ms(`${this.stores.settings.all.app.wakeUpStrategy}s`))) {
178 this._awake({ serviceId: service.id });
179 }
180 }
172 } 181 }
173 182
174 if (service.lastPoll && (service.lastPoll - service.lastPollAnswer > ms('1m'))) { 183 if (service.lastPoll && (service.lastPoll - service.lastPollAnswer > ms('1m'))) {
@@ -473,12 +482,11 @@ export default class ServicesStore extends Store {
473 if (!keepActiveRoute) this.stores.router.push('/'); 482 if (!keepActiveRoute) this.stores.router.push('/');
474 const service = this.one(serviceId); 483 const service = this.one(serviceId);
475 484
476 this.all.forEach((s, index) => { 485 this.all.forEach((s) => {
477 this.all[index].isActive = false; 486 s.isActive = false;
478 }); 487 });
479 service.isActive = true; 488 service.isActive = true;
480 this._awake({ serviceId: service.id }); 489 this._awake({ serviceId: service.id });
481 service.lastUsed = Date.now();
482 490
483 if (this.isTodosServiceActive && !this.stores.todos.settings.isFeatureEnabledByUser) { 491 if (this.isTodosServiceActive && !this.stores.todos.settings.isFeatureEnabledByUser) {
484 this.actions.todos.toggleTodosFeatureVisibility(); 492 this.actions.todos.toggleTodosFeatureVisibility();
@@ -824,20 +832,22 @@ export default class ServicesStore extends Store {
824 return; 832 return;
825 } 833 }
826 if (service.isActive) { 834 if (service.isActive) {
827 debug('Skipping service hibernation'); 835 debug(`Skipping service hibernation for ${service.name}`);
828 return; 836 return;
829 } 837 }
830 838
831 debug(`Hibernate ${service.name}`); 839 debug(`Hibernate ${service.name}`);
832 840
833 service.isHibernationRequested = true; 841 service.isHibernationRequested = true;
842 service.lastHibernated = Date.now();
834 } 843 }
835 844
836 @action _awake({ serviceId }) { 845 @action _awake({ serviceId }) {
837 debug('Waking up from service hibernation');
838 const service = this.one(serviceId); 846 const service = this.one(serviceId);
847 debug(`Waking up from service hibernation for ${service.name}`);
839 service.isHibernationRequested = false; 848 service.isHibernationRequested = false;
840 service.liveFrom = Date.now(); 849 service.lastUsed = Date.now();
850 service.lastHibernated = null;
841 } 851 }
842 852
843 @action _resetLastPollTimer({ serviceId = null }) { 853 @action _resetLastPollTimer({ serviceId = null }) {