aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar vantezzen <hello@vantezzen.io>2019-09-25 11:54:21 +0200
committerLibravatar vantezzen <hello@vantezzen.io>2019-09-25 11:54:21 +0200
commit666ec21ac9e905ac4e56c177d84f5716de9eb0fd (patch)
tree219ff3a5cbad4b06cddfc0df03848304ffbc67f7
parentMerge branch 'master' of https://github.com/getferdi/ferdi (diff)
downloadferdium-app-666ec21ac9e905ac4e56c177d84f5716de9eb0fd.tar.gz
ferdium-app-666ec21ac9e905ac4e56c177d84f5716de9eb0fd.tar.zst
ferdium-app-666ec21ac9e905ac4e56c177d84f5716de9eb0fd.zip
Implement #75
-rw-r--r--src/components/services/content/ServiceView.js74
-rw-r--r--src/components/settings/settings/EditSettingsForm.js1
-rw-r--r--src/config.js1
-rw-r--r--src/containers/settings/EditSettingsScreen.js10
-rw-r--r--src/i18n/locales/defaultMessages.json77
-rw-r--r--src/i18n/locales/en-US.json1
-rw-r--r--src/i18n/messages/src/containers/settings/EditSettingsScreen.json77
7 files changed, 169 insertions, 72 deletions
diff --git a/src/components/services/content/ServiceView.js b/src/components/services/content/ServiceView.js
index 59d1c1dc3..c45acc961 100644
--- a/src/components/services/content/ServiceView.js
+++ b/src/components/services/content/ServiceView.js
@@ -1,8 +1,9 @@
1import React, { Component, Fragment } from 'react'; 1import React, { Component, Fragment } from 'react';
2import PropTypes from 'prop-types'; 2import PropTypes from 'prop-types';
3import { autorun } from 'mobx'; 3import { autorun, reaction } from 'mobx';
4import { observer } from 'mobx-react'; 4import { observer, inject } from 'mobx-react';
5import classnames from 'classnames'; 5import classnames from 'classnames';
6import ms from 'ms';
6 7
7import ServiceModel from '../../../models/Service'; 8import ServiceModel from '../../../models/Service';
8import StatusBarTargetUrl from '../../ui/StatusBarTargetUrl'; 9import StatusBarTargetUrl from '../../ui/StatusBarTargetUrl';
@@ -11,8 +12,9 @@ import WebviewCrashHandler from './WebviewCrashHandler';
11import WebviewErrorHandler from './ErrorHandlers/WebviewErrorHandler'; 12import WebviewErrorHandler from './ErrorHandlers/WebviewErrorHandler';
12import ServiceDisabled from './ServiceDisabled'; 13import ServiceDisabled from './ServiceDisabled';
13import ServiceWebview from './ServiceWebview'; 14import ServiceWebview from './ServiceWebview';
15import SettingsStore from '../../../stores/SettingsStore';
14 16
15export default @observer class ServiceView extends Component { 17export default @observer @inject('stores') class ServiceView extends Component {
16 static propTypes = { 18 static propTypes = {
17 service: PropTypes.instanceOf(ServiceModel).isRequired, 19 service: PropTypes.instanceOf(ServiceModel).isRequired,
18 setWebviewReference: PropTypes.func.isRequired, 20 setWebviewReference: PropTypes.func.isRequired,
@@ -21,6 +23,9 @@ export default @observer class ServiceView extends Component {
21 edit: PropTypes.func.isRequired, 23 edit: PropTypes.func.isRequired,
22 enable: PropTypes.func.isRequired, 24 enable: PropTypes.func.isRequired,
23 isActive: PropTypes.bool, 25 isActive: PropTypes.bool,
26 stores: PropTypes.shape({
27 settings: PropTypes.instanceOf(SettingsStore).isRequired,
28 }).isRequired,
24 }; 29 };
25 30
26 static defaultProps = { 31 static defaultProps = {
@@ -31,12 +36,20 @@ export default @observer class ServiceView extends Component {
31 forceRepaint: false, 36 forceRepaint: false,
32 targetUrl: '', 37 targetUrl: '',
33 statusBarVisible: false, 38 statusBarVisible: false,
39 hibernate: false,
40 hibernationTimer: null,
34 }; 41 };
35 42
36 autorunDisposer = null; 43 autorunDisposer = null;
37 44
38 forceRepaintTimeout = null; 45 forceRepaintTimeout = null;
39 46
47 constructor(props) {
48 super(props);
49
50 this.startHibernationTimer = this.startHibernationTimer.bind(this);
51 }
52
40 componentDidMount() { 53 componentDidMount() {
41 this.autorunDisposer = autorun(() => { 54 this.autorunDisposer = autorun(() => {
42 if (this.props.service.isActive) { 55 if (this.props.service.isActive) {
@@ -46,6 +59,31 @@ export default @observer class ServiceView extends Component {
46 }, 100); 59 }, 100);
47 } 60 }
48 }); 61 });
62
63 reaction(
64 () => this.props.service.isActive,
65 () => {
66 if (!this.props.service.isActive && this.props.stores.settings.all.app.hibernate) {
67 // Service is inactive - start hibernation countdown
68 this.startHibernationTimer();
69 } else {
70 if (this.state.hibernationTimer) {
71 // Service is active but we have an active hibernation timer: Clear timeout
72 clearTimeout(this.state.hibernationTimer);
73 }
74
75 // Service is active, wake up service from hibernation
76 this.setState({
77 hibernate: false,
78 });
79 }
80 },
81 );
82
83 // Start hibernation counter if we are in background
84 if (!this.props.service.isActive && this.props.stores.settings.all.app.hibernate) {
85 this.startHibernationTimer();
86 }
49 } 87 }
50 88
51 componentWillUnmount() { 89 componentWillUnmount() {
@@ -64,6 +102,18 @@ export default @observer class ServiceView extends Component {
64 }); 102 });
65 }; 103 };
66 104
105 startHibernationTimer() {
106 const hibernationTimer = setTimeout(() => {
107 this.setState({
108 hibernate: true,
109 });
110 }, ms('5m'));
111
112 this.setState({
113 hibernationTimer,
114 });
115 }
116
67 render() { 117 render() {
68 const { 118 const {
69 detachService, 119 detachService,
@@ -127,11 +177,19 @@ export default @observer class ServiceView extends Component {
127 </Fragment> 177 </Fragment>
128 ) : ( 178 ) : (
129 <> 179 <>
130 <ServiceWebview 180 {!this.state.hibernate ? (
131 service={service} 181 <ServiceWebview
132 setWebviewReference={setWebviewReference} 182 service={service}
133 detachService={detachService} 183 setWebviewReference={setWebviewReference}
134 /> 184 detachService={detachService}
185 />
186 ) : (
187 <div>
188 <span role="img" aria-label="Sleeping Emoji">😴</span>
189 {' '}
190This service is currently hibernating. If this page doesn&#x27;t close soon, please try reloading Ferdi.
191 </div>
192 )}
135 </> 193 </>
136 )} 194 )}
137 {statusBar} 195 {statusBar}
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js
index 52bd18603..6552220f1 100644
--- a/src/components/settings/settings/EditSettingsForm.js
+++ b/src/components/settings/settings/EditSettingsForm.js
@@ -198,6 +198,7 @@ export default @observer class EditSettingsForm extends Component {
198 <Toggle field={form.$('runInBackground')} /> 198 <Toggle field={form.$('runInBackground')} />
199 <Toggle field={form.$('enableSystemTray')} /> 199 <Toggle field={form.$('enableSystemTray')} />
200 <Toggle field={form.$('privateNotifications')} /> 200 <Toggle field={form.$('privateNotifications')} />
201 <Toggle field={form.$('hibernate')} />
201 {process.platform === 'win32' && ( 202 {process.platform === 'win32' && (
202 <Toggle field={form.$('minimizeToSystemTray')} /> 203 <Toggle field={form.$('minimizeToSystemTray')} />
203 )} 204 )}
diff --git a/src/config.js b/src/config.js
index 7de6b3e46..789e31fe3 100644
--- a/src/config.js
+++ b/src/config.js
@@ -62,6 +62,7 @@ export const DEFAULT_APP_SETTINGS = {
62 scheduledDNDEnabled: false, 62 scheduledDNDEnabled: false,
63 scheduledDNDStart: '17:00', 63 scheduledDNDStart: '17:00',
64 scheduledDNDEnd: '09:00', 64 scheduledDNDEnd: '09:00',
65 hibernate: false,
65}; 66};
66 67
67export const DEFAULT_FEATURES_CONFIG = { 68export const DEFAULT_FEATURES_CONFIG = {
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js
index 0ae64b6ad..962dc1b65 100644
--- a/src/containers/settings/EditSettingsScreen.js
+++ b/src/containers/settings/EditSettingsScreen.js
@@ -49,6 +49,10 @@ const messages = defineMessages({
49 id: 'settings.app.form.privateNotifications', 49 id: 'settings.app.form.privateNotifications',
50 defaultMessage: '!!!Don\'t show message content in notifications', 50 defaultMessage: '!!!Don\'t show message content in notifications',
51 }, 51 },
52 hibernate: {
53 id: 'settings.app.form.hibernate',
54 defaultMessage: '!!!Enable service hibernation',
55 },
52 server: { 56 server: {
53 id: 'settings.app.form.server', 57 id: 'settings.app.form.server',
54 defaultMessage: '!!!Server', 58 defaultMessage: '!!!Server',
@@ -142,6 +146,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
142 enableSystemTray: settingsData.enableSystemTray, 146 enableSystemTray: settingsData.enableSystemTray,
143 minimizeToSystemTray: settingsData.minimizeToSystemTray, 147 minimizeToSystemTray: settingsData.minimizeToSystemTray,
144 privateNotifications: settingsData.privateNotifications, 148 privateNotifications: settingsData.privateNotifications,
149 hibernate: settingsData.hibernate,
145 server: settingsData.server, 150 server: settingsData.server,
146 todoServer: settingsData.todoServer, 151 todoServer: settingsData.todoServer,
147 lockingFeatureEnabled: settingsData.lockingFeatureEnabled, 152 lockingFeatureEnabled: settingsData.lockingFeatureEnabled,
@@ -229,6 +234,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
229 value: settings.all.app.privateNotifications, 234 value: settings.all.app.privateNotifications,
230 default: DEFAULT_APP_SETTINGS.privateNotifications, 235 default: DEFAULT_APP_SETTINGS.privateNotifications,
231 }, 236 },
237 hibernate: {
238 label: intl.formatMessage(messages.hibernate),
239 value: settings.all.app.hibernate,
240 default: DEFAULT_APP_SETTINGS.hibernate,
241 },
232 server: { 242 server: {
233 label: intl.formatMessage(messages.server), 243 label: intl.formatMessage(messages.server),
234 value: settings.all.app.server || API, 244 value: settings.all.app.server || API,
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json
index ccb81a9f3..e1814cc6d 100644
--- a/src/i18n/locales/defaultMessages.json
+++ b/src/i18n/locales/defaultMessages.json
@@ -3741,211 +3741,224 @@
3741 } 3741 }
3742 }, 3742 },
3743 { 3743 {
3744 "defaultMessage": "!!!Server", 3744 "defaultMessage": "!!!Enable service hibernation",
3745 "end": { 3745 "end": {
3746 "column": 3, 3746 "column": 3,
3747 "line": 55 3747 "line": 55
3748 }, 3748 },
3749 "file": "src/containers/settings/EditSettingsScreen.js", 3749 "file": "src/containers/settings/EditSettingsScreen.js",
3750 "id": "settings.app.form.hibernate",
3751 "start": {
3752 "column": 13,
3753 "line": 52
3754 }
3755 },
3756 {
3757 "defaultMessage": "!!!Server",
3758 "end": {
3759 "column": 3,
3760 "line": 59
3761 },
3762 "file": "src/containers/settings/EditSettingsScreen.js",
3750 "id": "settings.app.form.server", 3763 "id": "settings.app.form.server",
3751 "start": { 3764 "start": {
3752 "column": 10, 3765 "column": 10,
3753 "line": 52 3766 "line": 56
3754 } 3767 }
3755 }, 3768 },
3756 { 3769 {
3757 "defaultMessage": "!!!Todo Server", 3770 "defaultMessage": "!!!Todo Server",
3758 "end": { 3771 "end": {
3759 "column": 3, 3772 "column": 3,
3760 "line": 59 3773 "line": 63
3761 }, 3774 },
3762 "file": "src/containers/settings/EditSettingsScreen.js", 3775 "file": "src/containers/settings/EditSettingsScreen.js",
3763 "id": "settings.app.form.todoServer", 3776 "id": "settings.app.form.todoServer",
3764 "start": { 3777 "start": {
3765 "column": 14, 3778 "column": 14,
3766 "line": 56 3779 "line": 60
3767 } 3780 }
3768 }, 3781 },
3769 { 3782 {
3770 "defaultMessage": "!!!Enable Ferdi password lock", 3783 "defaultMessage": "!!!Enable Ferdi password lock",
3771 "end": { 3784 "end": {
3772 "column": 3, 3785 "column": 3,
3773 "line": 63 3786 "line": 67
3774 }, 3787 },
3775 "file": "src/containers/settings/EditSettingsScreen.js", 3788 "file": "src/containers/settings/EditSettingsScreen.js",
3776 "id": "settings.app.form.enableLock", 3789 "id": "settings.app.form.enableLock",
3777 "start": { 3790 "start": {
3778 "column": 14, 3791 "column": 14,
3779 "line": 60 3792 "line": 64
3780 } 3793 }
3781 }, 3794 },
3782 { 3795 {
3783 "defaultMessage": "!!!Ferdi Lock password", 3796 "defaultMessage": "!!!Ferdi Lock password",
3784 "end": { 3797 "end": {
3785 "column": 3, 3798 "column": 3,
3786 "line": 67 3799 "line": 71
3787 }, 3800 },
3788 "file": "src/containers/settings/EditSettingsScreen.js", 3801 "file": "src/containers/settings/EditSettingsScreen.js",
3789 "id": "settings.app.form.lockPassword", 3802 "id": "settings.app.form.lockPassword",
3790 "start": { 3803 "start": {
3791 "column": 16, 3804 "column": 16,
3792 "line": 64 3805 "line": 68
3793 } 3806 }
3794 }, 3807 },
3795 { 3808 {
3796 "defaultMessage": "!!!Enable scheduled Do-not-Disturb", 3809 "defaultMessage": "!!!Enable scheduled Do-not-Disturb",
3797 "end": { 3810 "end": {
3798 "column": 3, 3811 "column": 3,
3799 "line": 71 3812 "line": 75
3800 }, 3813 },
3801 "file": "src/containers/settings/EditSettingsScreen.js", 3814 "file": "src/containers/settings/EditSettingsScreen.js",
3802 "id": "settings.app.form.scheduledDNDEnabled", 3815 "id": "settings.app.form.scheduledDNDEnabled",
3803 "start": { 3816 "start": {
3804 "column": 23, 3817 "column": 23,
3805 "line": 68 3818 "line": 72
3806 } 3819 }
3807 }, 3820 },
3808 { 3821 {
3809 "defaultMessage": "!!!From", 3822 "defaultMessage": "!!!From",
3810 "end": { 3823 "end": {
3811 "column": 3, 3824 "column": 3,
3812 "line": 75 3825 "line": 79
3813 }, 3826 },
3814 "file": "src/containers/settings/EditSettingsScreen.js", 3827 "file": "src/containers/settings/EditSettingsScreen.js",
3815 "id": "settings.app.form.scheduledDNDStart", 3828 "id": "settings.app.form.scheduledDNDStart",
3816 "start": { 3829 "start": {
3817 "column": 21, 3830 "column": 21,
3818 "line": 72 3831 "line": 76
3819 } 3832 }
3820 }, 3833 },
3821 { 3834 {
3822 "defaultMessage": "!!!To", 3835 "defaultMessage": "!!!To",
3823 "end": { 3836 "end": {
3824 "column": 3, 3837 "column": 3,
3825 "line": 79 3838 "line": 83
3826 }, 3839 },
3827 "file": "src/containers/settings/EditSettingsScreen.js", 3840 "file": "src/containers/settings/EditSettingsScreen.js",
3828 "id": "settings.app.form.scheduledDNDEnd", 3841 "id": "settings.app.form.scheduledDNDEnd",
3829 "start": { 3842 "start": {
3830 "column": 19, 3843 "column": 19,
3831 "line": 76 3844 "line": 80
3832 } 3845 }
3833 }, 3846 },
3834 { 3847 {
3835 "defaultMessage": "!!!Language", 3848 "defaultMessage": "!!!Language",
3836 "end": { 3849 "end": {
3837 "column": 3, 3850 "column": 3,
3838 "line": 83 3851 "line": 87
3839 }, 3852 },
3840 "file": "src/containers/settings/EditSettingsScreen.js", 3853 "file": "src/containers/settings/EditSettingsScreen.js",
3841 "id": "settings.app.form.language", 3854 "id": "settings.app.form.language",
3842 "start": { 3855 "start": {
3843 "column": 12, 3856 "column": 12,
3844 "line": 80 3857 "line": 84
3845 } 3858 }
3846 }, 3859 },
3847 { 3860 {
3848 "defaultMessage": "!!!Dark Mode", 3861 "defaultMessage": "!!!Dark Mode",
3849 "end": { 3862 "end": {
3850 "column": 3, 3863 "column": 3,
3851 "line": 87 3864 "line": 91
3852 }, 3865 },
3853 "file": "src/containers/settings/EditSettingsScreen.js", 3866 "file": "src/containers/settings/EditSettingsScreen.js",
3854 "id": "settings.app.form.darkMode", 3867 "id": "settings.app.form.darkMode",
3855 "start": { 3868 "start": {
3856 "column": 12, 3869 "column": 12,
3857 "line": 84 3870 "line": 88
3858 } 3871 }
3859 }, 3872 },
3860 { 3873 {
3861 "defaultMessage": "!!!Display disabled services tabs", 3874 "defaultMessage": "!!!Display disabled services tabs",
3862 "end": { 3875 "end": {
3863 "column": 3, 3876 "column": 3,
3864 "line": 91 3877 "line": 95
3865 }, 3878 },
3866 "file": "src/containers/settings/EditSettingsScreen.js", 3879 "file": "src/containers/settings/EditSettingsScreen.js",
3867 "id": "settings.app.form.showDisabledServices", 3880 "id": "settings.app.form.showDisabledServices",
3868 "start": { 3881 "start": {
3869 "column": 24, 3882 "column": 24,
3870 "line": 88 3883 "line": 92
3871 } 3884 }
3872 }, 3885 },
3873 { 3886 {
3874 "defaultMessage": "!!!Show unread message badge when notifications are disabled", 3887 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
3875 "end": { 3888 "end": {
3876 "column": 3, 3889 "column": 3,
3877 "line": 95 3890 "line": 99
3878 }, 3891 },
3879 "file": "src/containers/settings/EditSettingsScreen.js", 3892 "file": "src/containers/settings/EditSettingsScreen.js",
3880 "id": "settings.app.form.showMessagesBadgesWhenMuted", 3893 "id": "settings.app.form.showMessagesBadgesWhenMuted",
3881 "start": { 3894 "start": {
3882 "column": 29, 3895 "column": 29,
3883 "line": 92 3896 "line": 96
3884 } 3897 }
3885 }, 3898 },
3886 { 3899 {
3887 "defaultMessage": "!!!Enable spell checking", 3900 "defaultMessage": "!!!Enable spell checking",
3888 "end": { 3901 "end": {
3889 "column": 3, 3902 "column": 3,
3890 "line": 99 3903 "line": 103
3891 }, 3904 },
3892 "file": "src/containers/settings/EditSettingsScreen.js", 3905 "file": "src/containers/settings/EditSettingsScreen.js",
3893 "id": "settings.app.form.enableSpellchecking", 3906 "id": "settings.app.form.enableSpellchecking",
3894 "start": { 3907 "start": {
3895 "column": 23, 3908 "column": 23,
3896 "line": 96 3909 "line": 100
3897 } 3910 }
3898 }, 3911 },
3899 { 3912 {
3900 "defaultMessage": "!!!Enable GPU Acceleration", 3913 "defaultMessage": "!!!Enable GPU Acceleration",
3901 "end": { 3914 "end": {
3902 "column": 3, 3915 "column": 3,
3903 "line": 103 3916 "line": 107
3904 }, 3917 },
3905 "file": "src/containers/settings/EditSettingsScreen.js", 3918 "file": "src/containers/settings/EditSettingsScreen.js",
3906 "id": "settings.app.form.enableGPUAcceleration", 3919 "id": "settings.app.form.enableGPUAcceleration",
3907 "start": { 3920 "start": {
3908 "column": 25, 3921 "column": 25,
3909 "line": 100 3922 "line": 104
3910 } 3923 }
3911 }, 3924 },
3912 { 3925 {
3913 "defaultMessage": "!!!Include beta versions", 3926 "defaultMessage": "!!!Include beta versions",
3914 "end": { 3927 "end": {
3915 "column": 3, 3928 "column": 3,
3916 "line": 107 3929 "line": 111
3917 }, 3930 },
3918 "file": "src/containers/settings/EditSettingsScreen.js", 3931 "file": "src/containers/settings/EditSettingsScreen.js",
3919 "id": "settings.app.form.beta", 3932 "id": "settings.app.form.beta",
3920 "start": { 3933 "start": {
3921 "column": 8, 3934 "column": 8,
3922 "line": 104 3935 "line": 108
3923 } 3936 }
3924 }, 3937 },
3925 { 3938 {
3926 "defaultMessage": "!!!Enable Franz Todos", 3939 "defaultMessage": "!!!Enable Franz Todos",
3927 "end": { 3940 "end": {
3928 "column": 3, 3941 "column": 3,
3929 "line": 111 3942 "line": 115
3930 }, 3943 },
3931 "file": "src/containers/settings/EditSettingsScreen.js", 3944 "file": "src/containers/settings/EditSettingsScreen.js",
3932 "id": "settings.app.form.enableTodos", 3945 "id": "settings.app.form.enableTodos",
3933 "start": { 3946 "start": {
3934 "column": 15, 3947 "column": 15,
3935 "line": 108 3948 "line": 112
3936 } 3949 }
3937 }, 3950 },
3938 { 3951 {
3939 "defaultMessage": "!!!Keep all workspaces loaded", 3952 "defaultMessage": "!!!Keep all workspaces loaded",
3940 "end": { 3953 "end": {
3941 "column": 3, 3954 "column": 3,
3942 "line": 115 3955 "line": 119
3943 }, 3956 },
3944 "file": "src/containers/settings/EditSettingsScreen.js", 3957 "file": "src/containers/settings/EditSettingsScreen.js",
3945 "id": "settings.app.form.keepAllWorkspacesLoaded", 3958 "id": "settings.app.form.keepAllWorkspacesLoaded",
3946 "start": { 3959 "start": {
3947 "column": 27, 3960 "column": 27,
3948 "line": 112 3961 "line": 116
3949 } 3962 }
3950 } 3963 }
3951 ], 3964 ],
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index 8997a1948..31e7259ca 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -226,6 +226,7 @@
226 "settings.app.form.enableSpellchecking": "Enable spell checking", 226 "settings.app.form.enableSpellchecking": "Enable spell checking",
227 "settings.app.form.enableSystemTray": "Show Ferdi in system tray", 227 "settings.app.form.enableSystemTray": "Show Ferdi in system tray",
228 "settings.app.form.enableTodos": "Enable Ferdi Todos", 228 "settings.app.form.enableTodos": "Enable Ferdi Todos",
229 "settings.app.form.hibernate": "Enable service hibernation",
229 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 230 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
230 "settings.app.form.language": "Language", 231 "settings.app.form.language": "Language",
231 "settings.app.form.lockPassword": "Ferdi Lock password", 232 "settings.app.form.lockPassword": "Ferdi Lock password",
diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
index da3d8d7f4..dccf8b992 100644
--- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
+++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
@@ -78,15 +78,28 @@
78 } 78 }
79 }, 79 },
80 { 80 {
81 "id": "settings.app.form.hibernate",
82 "defaultMessage": "!!!Enable service hibernation",
83 "file": "src/containers/settings/EditSettingsScreen.js",
84 "start": {
85 "line": 52,
86 "column": 13
87 },
88 "end": {
89 "line": 55,
90 "column": 3
91 }
92 },
93 {
81 "id": "settings.app.form.server", 94 "id": "settings.app.form.server",
82 "defaultMessage": "!!!Server", 95 "defaultMessage": "!!!Server",
83 "file": "src/containers/settings/EditSettingsScreen.js", 96 "file": "src/containers/settings/EditSettingsScreen.js",
84 "start": { 97 "start": {
85 "line": 52, 98 "line": 56,
86 "column": 10 99 "column": 10
87 }, 100 },
88 "end": { 101 "end": {
89 "line": 55, 102 "line": 59,
90 "column": 3 103 "column": 3
91 } 104 }
92 }, 105 },
@@ -95,11 +108,11 @@
95 "defaultMessage": "!!!Todo Server", 108 "defaultMessage": "!!!Todo Server",
96 "file": "src/containers/settings/EditSettingsScreen.js", 109 "file": "src/containers/settings/EditSettingsScreen.js",
97 "start": { 110 "start": {
98 "line": 56, 111 "line": 60,
99 "column": 14 112 "column": 14
100 }, 113 },
101 "end": { 114 "end": {
102 "line": 59, 115 "line": 63,
103 "column": 3 116 "column": 3
104 } 117 }
105 }, 118 },
@@ -108,11 +121,11 @@
108 "defaultMessage": "!!!Enable Ferdi password lock", 121 "defaultMessage": "!!!Enable Ferdi password lock",
109 "file": "src/containers/settings/EditSettingsScreen.js", 122 "file": "src/containers/settings/EditSettingsScreen.js",
110 "start": { 123 "start": {
111 "line": 60, 124 "line": 64,
112 "column": 14 125 "column": 14
113 }, 126 },
114 "end": { 127 "end": {
115 "line": 63, 128 "line": 67,
116 "column": 3 129 "column": 3
117 } 130 }
118 }, 131 },
@@ -121,11 +134,11 @@
121 "defaultMessage": "!!!Ferdi Lock password", 134 "defaultMessage": "!!!Ferdi Lock password",
122 "file": "src/containers/settings/EditSettingsScreen.js", 135 "file": "src/containers/settings/EditSettingsScreen.js",
123 "start": { 136 "start": {
124 "line": 64, 137 "line": 68,
125 "column": 16 138 "column": 16
126 }, 139 },
127 "end": { 140 "end": {
128 "line": 67, 141 "line": 71,
129 "column": 3 142 "column": 3
130 } 143 }
131 }, 144 },
@@ -134,11 +147,11 @@
134 "defaultMessage": "!!!Enable scheduled Do-not-Disturb", 147 "defaultMessage": "!!!Enable scheduled Do-not-Disturb",
135 "file": "src/containers/settings/EditSettingsScreen.js", 148 "file": "src/containers/settings/EditSettingsScreen.js",
136 "start": { 149 "start": {
137 "line": 68, 150 "line": 72,
138 "column": 23 151 "column": 23
139 }, 152 },
140 "end": { 153 "end": {
141 "line": 71, 154 "line": 75,
142 "column": 3 155 "column": 3
143 } 156 }
144 }, 157 },
@@ -147,11 +160,11 @@
147 "defaultMessage": "!!!From", 160 "defaultMessage": "!!!From",
148 "file": "src/containers/settings/EditSettingsScreen.js", 161 "file": "src/containers/settings/EditSettingsScreen.js",
149 "start": { 162 "start": {
150 "line": 72, 163 "line": 76,
151 "column": 21 164 "column": 21
152 }, 165 },
153 "end": { 166 "end": {
154 "line": 75, 167 "line": 79,
155 "column": 3 168 "column": 3
156 } 169 }
157 }, 170 },
@@ -160,11 +173,11 @@
160 "defaultMessage": "!!!To", 173 "defaultMessage": "!!!To",
161 "file": "src/containers/settings/EditSettingsScreen.js", 174 "file": "src/containers/settings/EditSettingsScreen.js",
162 "start": { 175 "start": {
163 "line": 76, 176 "line": 80,
164 "column": 19 177 "column": 19
165 }, 178 },
166 "end": { 179 "end": {
167 "line": 79, 180 "line": 83,
168 "column": 3 181 "column": 3
169 } 182 }
170 }, 183 },
@@ -173,11 +186,11 @@
173 "defaultMessage": "!!!Language", 186 "defaultMessage": "!!!Language",
174 "file": "src/containers/settings/EditSettingsScreen.js", 187 "file": "src/containers/settings/EditSettingsScreen.js",
175 "start": { 188 "start": {
176 "line": 80, 189 "line": 84,
177 "column": 12 190 "column": 12
178 }, 191 },
179 "end": { 192 "end": {
180 "line": 83, 193 "line": 87,
181 "column": 3 194 "column": 3
182 } 195 }
183 }, 196 },
@@ -186,11 +199,11 @@
186 "defaultMessage": "!!!Dark Mode", 199 "defaultMessage": "!!!Dark Mode",
187 "file": "src/containers/settings/EditSettingsScreen.js", 200 "file": "src/containers/settings/EditSettingsScreen.js",
188 "start": { 201 "start": {
189 "line": 84, 202 "line": 88,
190 "column": 12 203 "column": 12
191 }, 204 },
192 "end": { 205 "end": {
193 "line": 87, 206 "line": 91,
194 "column": 3 207 "column": 3
195 } 208 }
196 }, 209 },
@@ -199,11 +212,11 @@
199 "defaultMessage": "!!!Display disabled services tabs", 212 "defaultMessage": "!!!Display disabled services tabs",
200 "file": "src/containers/settings/EditSettingsScreen.js", 213 "file": "src/containers/settings/EditSettingsScreen.js",
201 "start": { 214 "start": {
202 "line": 88, 215 "line": 92,
203 "column": 24 216 "column": 24
204 }, 217 },
205 "end": { 218 "end": {
206 "line": 91, 219 "line": 95,
207 "column": 3 220 "column": 3
208 } 221 }
209 }, 222 },
@@ -212,11 +225,11 @@
212 "defaultMessage": "!!!Show unread message badge when notifications are disabled", 225 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
213 "file": "src/containers/settings/EditSettingsScreen.js", 226 "file": "src/containers/settings/EditSettingsScreen.js",
214 "start": { 227 "start": {
215 "line": 92, 228 "line": 96,
216 "column": 29 229 "column": 29
217 }, 230 },
218 "end": { 231 "end": {
219 "line": 95, 232 "line": 99,
220 "column": 3 233 "column": 3
221 } 234 }
222 }, 235 },
@@ -225,11 +238,11 @@
225 "defaultMessage": "!!!Enable spell checking", 238 "defaultMessage": "!!!Enable spell checking",
226 "file": "src/containers/settings/EditSettingsScreen.js", 239 "file": "src/containers/settings/EditSettingsScreen.js",
227 "start": { 240 "start": {
228 "line": 96, 241 "line": 100,
229 "column": 23 242 "column": 23
230 }, 243 },
231 "end": { 244 "end": {
232 "line": 99, 245 "line": 103,
233 "column": 3 246 "column": 3
234 } 247 }
235 }, 248 },
@@ -238,11 +251,11 @@
238 "defaultMessage": "!!!Enable GPU Acceleration", 251 "defaultMessage": "!!!Enable GPU Acceleration",
239 "file": "src/containers/settings/EditSettingsScreen.js", 252 "file": "src/containers/settings/EditSettingsScreen.js",
240 "start": { 253 "start": {
241 "line": 100, 254 "line": 104,
242 "column": 25 255 "column": 25
243 }, 256 },
244 "end": { 257 "end": {
245 "line": 103, 258 "line": 107,
246 "column": 3 259 "column": 3
247 } 260 }
248 }, 261 },
@@ -251,11 +264,11 @@
251 "defaultMessage": "!!!Include beta versions", 264 "defaultMessage": "!!!Include beta versions",
252 "file": "src/containers/settings/EditSettingsScreen.js", 265 "file": "src/containers/settings/EditSettingsScreen.js",
253 "start": { 266 "start": {
254 "line": 104, 267 "line": 108,
255 "column": 8 268 "column": 8
256 }, 269 },
257 "end": { 270 "end": {
258 "line": 107, 271 "line": 111,
259 "column": 3 272 "column": 3
260 } 273 }
261 }, 274 },
@@ -264,11 +277,11 @@
264 "defaultMessage": "!!!Enable Franz Todos", 277 "defaultMessage": "!!!Enable Franz Todos",
265 "file": "src/containers/settings/EditSettingsScreen.js", 278 "file": "src/containers/settings/EditSettingsScreen.js",
266 "start": { 279 "start": {
267 "line": 108, 280 "line": 112,
268 "column": 15 281 "column": 15
269 }, 282 },
270 "end": { 283 "end": {
271 "line": 111, 284 "line": 115,
272 "column": 3 285 "column": 3
273 } 286 }
274 }, 287 },
@@ -277,11 +290,11 @@
277 "defaultMessage": "!!!Keep all workspaces loaded", 290 "defaultMessage": "!!!Keep all workspaces loaded",
278 "file": "src/containers/settings/EditSettingsScreen.js", 291 "file": "src/containers/settings/EditSettingsScreen.js",
279 "start": { 292 "start": {
280 "line": 112, 293 "line": 116,
281 "column": 27 294 "column": 27
282 }, 295 },
283 "end": { 296 "end": {
284 "line": 115, 297 "line": 119,
285 "column": 3 298 "column": 3
286 } 299 }
287 } 300 }