Change setting enableScreensaver -> screensaverDelay

Change-type: patch
This commit is contained in:
Alexis Svinartchouk 2019-06-25 15:01:48 +02:00
parent 7cef51e421
commit 1194039180
3 changed files with 54 additions and 16 deletions

View File

@ -28,7 +28,6 @@ const EVENT_TYPES = [
'pointermove',
'pointerup',
] as const;
const SCREENSAVER_DELAY = 30 * 1000; // TODO: make this configurable
function exec(
command: string,
@ -86,14 +85,16 @@ async function setDelay($delay: number | null) {
}
}
async function getDelay() {
const enabled = await settings.get('enableScreensaver');
return enabled ? SCREENSAVER_DELAY : null;
function delayValue(d?: string): number | null {
if (d === undefined || d === 'never') {
return null;
}
return parseInt(d, 10) * 60 * 1000;
}
export async function init(): Promise<void> {
setDelay(await getDelay());
settings.events.on('enableScreensaver', enabled => {
setDelay(enabled ? SCREENSAVER_DELAY : null);
setDelay(delayValue(await settings.get('screensaverDelay')));
settings.events.on('screensaverDelay', d => {
setDelay(delayValue(d));
});
}

View File

@ -108,6 +108,16 @@ module.exports = function (WarningModalService) {
}).catch(exceptionReporter.report)
}
this.set = (setting, value) => {
analytics.logEvent('Set setting', {
setting,
value,
applicationSessionUuid: store.getState().toJS().applicationSessionUuid
})
this.model.set(setting, value)
this.refreshSettings()
}
/**
* @summary Show unsafe mode based on an env var
* @function
@ -123,7 +133,7 @@ module.exports = function (WarningModalService) {
}
/**
* @summary Show the enableScreensaver setting
* @summary Show the screensaverDelay setting
* @function
* @public
*
@ -131,9 +141,9 @@ module.exports = function (WarningModalService) {
*
*
* @example
* SettingsController.shouldShowEnableScreensaver()
* SettingsController.shouldShowScreensaverDelay()
*/
this.shouldShowEnableScreensaver = () => {
return settings.get('showEnableScreensaver')
this.shouldShowScreensaverDelay = () => {
return settings.get('showScreensaverDelay')
}
}

View File

@ -78,13 +78,40 @@
</label>
</div>
<div class="checkbox" ng-if="settings.shouldShowEnableScreensaver()">
<div ng-if="settings.shouldShowScreensaverDelay()">
<h4>
Screensaver
</h4>
<label>
<input type="checkbox"
<input
ng-model="settings.currentData.screensaverDelay"
ng-change="settings.set('screensaverDelay', '5')"
type="radio"
value="5"
tabindex="11"
ng-model="settings.currentData.enableScreensaver"
ng-change="settings.toggle('enableScreensaver')">
<span>Enable screensaver</span>
>
5 min
</label>
<label>
<input
ng-model="settings.currentData.screensaverDelay"
ng-change="settings.set('screensaverDelay', '10')"
type="radio"
value="10"
tabindex="12"
>
10 min
</label>
<label>
<input
ng-model="settings.currentData.screensaverDelay"
ng-change="settings.set('screensaverDelay', 'never')"
type="radio"
value="never"
tabindex="13"
>
never
</label>
</div>
</div>