Add feature flag for ADM2 on Windows

Co-authored-by: Evan Hahn <69474926+EvanHahn-Signal@users.noreply.github.com>
This commit is contained in:
automated-signal 2021-11-04 17:08:25 -07:00 committed by GitHub
parent 04c3409e5f
commit 0a8c6719e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 7 deletions

View File

@ -8,6 +8,7 @@ import * as log from './logging/log';
export type ConfigKeyType =
| 'desktop.announcementGroup'
| 'desktop.calling.useWindowsAdm2'
| 'desktop.clientExpiration'
| 'desktop.disableGV1'
| 'desktop.groupCallOutboundRing'

View File

@ -2,6 +2,9 @@
// SPDX-License-Identifier: AGPL-3.0-only
import { makeEnumParser } from '../util/enum';
import { isEnabled } from '../RemoteConfig';
import { isAlpha, isBeta } from '../util/version';
import * as OS from '../OS';
export enum AudioDeviceModule {
Default = 'Default',
@ -12,3 +15,20 @@ export const parseAudioDeviceModule = makeEnumParser(
AudioDeviceModule,
AudioDeviceModule.Default
);
export function getAudioDeviceModule(): AudioDeviceModule {
if (!OS.isWindows()) {
return AudioDeviceModule.Default;
}
const appVersion = window.getVersion();
if (
isEnabled('desktop.calling.useWindowsAdm2') ||
isBeta(appVersion) ||
isAlpha(appVersion)
) {
return AudioDeviceModule.WindowsAdm2;
}
return AudioDeviceModule.Default;
}

View File

@ -59,6 +59,7 @@ import {
} from '../types/Calling';
import {
AudioDeviceModule,
getAudioDeviceModule,
parseAudioDeviceModule,
} from '../calling/audioDeviceModule';
import {
@ -67,7 +68,6 @@ import {
} from '../calling/findBestMatchingDevice';
import type { LocalizerType } from '../types/Util';
import { UUID } from '../types/UUID';
import * as OS from '../OS';
import type { ConversationModel } from '../models/conversations';
import * as Bytes from '../Bytes';
import { uuidToBytes, bytesToUuid } from '../Crypto';
@ -76,7 +76,6 @@ import { getOwn } from '../util/getOwn';
import { isNormalNumber } from '../util/isNormalNumber';
import * as durations from '../util/durations';
import { handleMessageSend } from '../util/handleMessageSend';
import { isAlpha, isBeta } from '../util/version';
import {
fetchMembershipProof,
getMembershipList,
@ -259,11 +258,7 @@ export class CallingClass {
this.previousAudioDeviceModule = parseAudioDeviceModule(
window.storage.get('previousAudioDeviceModule')
);
this.currentAudioDeviceModule =
OS.isWindows() &&
(isAlpha(window.getVersion()) || isBeta(window.getVersion()))
? AudioDeviceModule.WindowsAdm2
: AudioDeviceModule.Default;
this.currentAudioDeviceModule = getAudioDeviceModule();
window.storage.put(
'previousAudioDeviceModule',
this.currentAudioDeviceModule