Plumb through new ADM setting.
Co-authored-by: ayumi-signal <ayumi@signal.org>
This commit is contained in:
parent
fc7eba772c
commit
c8a729f8be
5 changed files with 47 additions and 0 deletions
|
@ -18,6 +18,7 @@ export type ConfigKeyType =
|
|||
| 'desktop.calling.adhoc'
|
||||
| 'desktop.calling.adhoc.create'
|
||||
| 'desktop.calling.raiseHand'
|
||||
| 'desktop.calling.ringrtcAdm'
|
||||
| 'desktop.clientExpiration'
|
||||
| 'desktop.backup.credentialFetch'
|
||||
| 'desktop.internalUser'
|
||||
|
|
|
@ -155,6 +155,7 @@ import { getConversationIdForLogging } from '../util/idForLogging';
|
|||
import { sendCallLinkUpdateSync } from '../util/sendCallLinkUpdateSync';
|
||||
import { createIdenticon } from '../util/createIdenticon';
|
||||
import { getColorForCallLink } from '../util/getColorForCallLink';
|
||||
import { getUseRingrtcAdm } from '../util/ringrtc/ringrtcAdm';
|
||||
|
||||
const { wasGroupCallRingPreviouslyCanceled } = DataReader;
|
||||
const {
|
||||
|
@ -378,6 +379,7 @@ export class CallingClass {
|
|||
|
||||
RingRTC.setConfig({
|
||||
field_trials: undefined,
|
||||
use_ringrtc_adm: getUseRingrtcAdm(),
|
||||
});
|
||||
|
||||
RingRTC.handleOutgoingSignaling = this.handleOutgoingSignaling.bind(this);
|
||||
|
|
1
ts/types/Storage.d.ts
vendored
1
ts/types/Storage.d.ts
vendored
|
@ -110,6 +110,7 @@ export type StorageAccessType = {
|
|||
synced_at: number;
|
||||
userAgent: string;
|
||||
uuid_id: string;
|
||||
useRingrtcAdm: boolean;
|
||||
pni: string;
|
||||
version: string;
|
||||
linkPreviews: boolean;
|
||||
|
|
31
ts/util/ringrtc/ringrtcAdm.ts
Normal file
31
ts/util/ringrtc/ringrtcAdm.ts
Normal file
|
@ -0,0 +1,31 @@
|
|||
// Copyright 2024 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import * as RemoteConfig from '../../RemoteConfig';
|
||||
import OS from '../os/osMain';
|
||||
import { isProduction } from '../version';
|
||||
|
||||
export function getUseRingrtcAdm(): boolean {
|
||||
const localUseRingrtcAdm = window.storage.get('useRingrtcAdm');
|
||||
if (localUseRingrtcAdm !== undefined) {
|
||||
return localUseRingrtcAdm;
|
||||
}
|
||||
|
||||
if (
|
||||
isProduction(window.getVersion()) ||
|
||||
OS.isLinux() ||
|
||||
!RemoteConfig.isEnabled('desktop.internalUser')
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return RemoteConfig.isEnabled('desktop.calling.ringrtcAdm');
|
||||
}
|
||||
|
||||
export async function setUseRingrtcAdm(value: boolean): Promise<void> {
|
||||
await window.storage.put('useRingrtcAdm', value);
|
||||
}
|
||||
|
||||
export async function removeUseRingrtcAdm(): Promise<void> {
|
||||
await window.storage.remove('useRingrtcAdm');
|
||||
}
|
|
@ -24,6 +24,10 @@ import { initMessageCleanup } from '../../services/messageStateCleanup';
|
|||
import { Environment, getEnvironment } from '../../environment';
|
||||
import { isProduction } from '../../util/version';
|
||||
import { benchmarkConversationOpen } from '../../CI/benchmarkConversationOpen';
|
||||
import {
|
||||
removeUseRingrtcAdm,
|
||||
setUseRingrtcAdm,
|
||||
} from '../../util/ringrtc/ringrtcAdm';
|
||||
|
||||
window.addEventListener('contextmenu', e => {
|
||||
const node = e.target as Element | null;
|
||||
|
@ -74,6 +78,10 @@ if (
|
|||
name: K,
|
||||
value: StorageAccessType[K]
|
||||
) => window.storage.put(name, value),
|
||||
removeUseRingrtcAdm: async () => {
|
||||
await removeUseRingrtcAdm();
|
||||
log.info('Restart to make ADM change take effect!');
|
||||
},
|
||||
setFlag: (name: keyof FeatureFlagType, value: boolean) => {
|
||||
if (!has(window.Flags, name)) {
|
||||
return;
|
||||
|
@ -83,6 +91,10 @@ if (
|
|||
setSfuUrl: (url: string) => {
|
||||
window.Signal.Services.calling._sfuUrl = url;
|
||||
},
|
||||
setUseRingrtcAdm: async (value: boolean) => {
|
||||
await setUseRingrtcAdm(value);
|
||||
log.info('Restart to make ADM change take effect!');
|
||||
},
|
||||
setIceServerOverride: (
|
||||
override: GetIceServersResultType | string | undefined
|
||||
) => {
|
||||
|
|
Loading…
Reference in a new issue