From 48edd431da13f418965a7c11d4278c50aee22113 Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Fri, 24 Jul 2020 15:29:33 +1000 Subject: [PATCH] use constants rather than string for ttl --- ts/session/constants.ts | 25 +++++++++++++++---------- ts/session/utils/Number.ts | 22 ++++------------------ 2 files changed, 19 insertions(+), 28 deletions(-) diff --git a/ts/session/constants.ts b/ts/session/constants.ts index 73f5eee1f..70fbb4ff7 100644 --- a/ts/session/constants.ts +++ b/ts/session/constants.ts @@ -1,13 +1,18 @@ -import { NumberUtils } from './utils'; +import { DAYS, HOURS, MINUTES } from './utils/Number'; +// tslint:disable: binary-expression-operand-order -// Default TTL +/** + * FIXME The -1 hours is a hack to make the PN not trigger a Notification for those control message. + * Apple devices must show a Notification if a PN is received, and for those + * control message, there is nothing to display (yet). + */ export const TTL_DEFAULT = { - PAIRING_REQUEST: NumberUtils.timeAsMs(2, 'minutes'), - DEVICE_UNPAIRING: NumberUtils.timeAsMs(4 * 24 - 1, 'hours'), - SESSION_REQUEST: NumberUtils.timeAsMs(4 * 24 - 1, 'hours'), - SESSION_ESTABLISHED: NumberUtils.timeAsMs(2 * 24 - 1, 'hours'), - END_SESSION_MESSAGE: NumberUtils.timeAsMs(4 * 24 - 1, 'hours'), - TYPING_MESSAGE: NumberUtils.timeAsMs(1, 'minute'), - ONLINE_BROADCAST: NumberUtils.timeAsMs(1, 'minute'), - REGULAR_MESSAGE: NumberUtils.timeAsMs(2, 'days'), + PAIRING_REQUEST: 2 * MINUTES, + DEVICE_UNPAIRING: 4 * DAYS - 1 * HOURS, + SESSION_REQUEST: 4 * DAYS - 1 * HOURS, + SESSION_ESTABLISHED: 2 * DAYS - 1 * HOURS, + END_SESSION_MESSAGE: 4 * DAYS - 1 * HOURS, + TYPING_MESSAGE: 1 * MINUTES, + ONLINE_BROADCAST: 1 * MINUTES, + REGULAR_MESSAGE: 2 * DAYS, }; diff --git a/ts/session/utils/Number.ts b/ts/session/utils/Number.ts index bc4f4267f..0948dcd67 100644 --- a/ts/session/utils/Number.ts +++ b/ts/session/utils/Number.ts @@ -8,24 +8,10 @@ type TimeUnit = | 'day' | 'days'; -export const timeAsMs = (value: number, unit: TimeUnit) => { - // Converts a time to milliseconds - // Valid units: second, minute, hour, day - const unitAsSingular = unit.replace(new RegExp('s?$'), ''); - - switch (unitAsSingular) { - case 'second': - return value * 1000; - case 'minute': - return value * 60 * 1000; - case 'hour': - return value * 60 * 60 * 1000; - case 'day': - return value * 24 * 60 * 60 * 1000; - default: - return value; - } -}; +export const MINUTES = 60 * 1000; // in ms +// tslint:disable: binary-expression-operand-order +export const HOURS = 60 * MINUTES; // in ms +export const DAYS = 24 * HOURS; // in ms export const msAsUnit = (value: number, unit: TimeUnit) => { // Converts milliseconds to your preferred unit