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

View File

@ -108,6 +108,16 @@ module.exports = function (WarningModalService) {
}).catch(exceptionReporter.report) }).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 * @summary Show unsafe mode based on an env var
* @function * @function
@ -123,7 +133,7 @@ module.exports = function (WarningModalService) {
} }
/** /**
* @summary Show the enableScreensaver setting * @summary Show the screensaverDelay setting
* @function * @function
* @public * @public
* *
@ -131,9 +141,9 @@ module.exports = function (WarningModalService) {
* *
* *
* @example * @example
* SettingsController.shouldShowEnableScreensaver() * SettingsController.shouldShowScreensaverDelay()
*/ */
this.shouldShowEnableScreensaver = () => { this.shouldShowScreensaverDelay = () => {
return settings.get('showEnableScreensaver') return settings.get('showScreensaverDelay')
} }
} }

View File

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