Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x 2x 1x 1x 2x 2x 1x 1x 2x 2x 2x 1x 1x 1x 1x 1x 1x 1x | /** * handle app inactivity trigger */ export default class InactivityDetector { constructor(config, loggerService) { this.config = config; this.logger = loggerService.getLogger().child({label: 'InactivityDetector'}); this.INACTIVITY_DELAY_MIN = this.config.inactivityDelayMin || 3; } onInactivity() { InactivityDetector.timer = null; for (const handler of InactivityDetector.onInactivityListeners) { try { handler(); } catch (exception) { this.logger.warn(`onInactivity handler error : ${exception.message}`); } } } activityTic() { const {onInactivity, INACTIVITY_DELAY_MIN, logger} = this; if (InactivityDetector.timer !== null) { clearTimeout(InactivityDetector.timer); } if (InactivityDetector.onInactivityListeners.length > 0) { if (InactivityDetector.timer === null) { // first time only logger.info(`setTimeout(${INACTIVITY_DELAY_MIN} min, ...) with ${InactivityDetector.onInactivityListeners.length} listeners`) } InactivityDetector.timer = setTimeout(onInactivity.bind(this), INACTIVITY_DELAY_MIN * 60000); } } registerOnInactivityListener(listener) { InactivityDetector.onInactivityListeners.push(listener) } } InactivityDetector.timer = null; InactivityDetector.onInactivityListeners = []; |