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 = export type ConfigKeyType =
| 'desktop.announcementGroup' | 'desktop.announcementGroup'
| 'desktop.calling.useWindowsAdm2'
| 'desktop.clientExpiration' | 'desktop.clientExpiration'
| 'desktop.disableGV1' | 'desktop.disableGV1'
| 'desktop.groupCallOutboundRing' | 'desktop.groupCallOutboundRing'

View File

@ -2,6 +2,9 @@
// SPDX-License-Identifier: AGPL-3.0-only // SPDX-License-Identifier: AGPL-3.0-only
import { makeEnumParser } from '../util/enum'; import { makeEnumParser } from '../util/enum';
import { isEnabled } from '../RemoteConfig';
import { isAlpha, isBeta } from '../util/version';
import * as OS from '../OS';
export enum AudioDeviceModule { export enum AudioDeviceModule {
Default = 'Default', Default = 'Default',
@ -12,3 +15,20 @@ export const parseAudioDeviceModule = makeEnumParser(
AudioDeviceModule, AudioDeviceModule,
AudioDeviceModule.Default 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'; } from '../types/Calling';
import { import {
AudioDeviceModule, AudioDeviceModule,
getAudioDeviceModule,
parseAudioDeviceModule, parseAudioDeviceModule,
} from '../calling/audioDeviceModule'; } from '../calling/audioDeviceModule';
import { import {
@ -67,7 +68,6 @@ import {
} from '../calling/findBestMatchingDevice'; } from '../calling/findBestMatchingDevice';
import type { LocalizerType } from '../types/Util'; import type { LocalizerType } from '../types/Util';
import { UUID } from '../types/UUID'; import { UUID } from '../types/UUID';
import * as OS from '../OS';
import type { ConversationModel } from '../models/conversations'; import type { ConversationModel } from '../models/conversations';
import * as Bytes from '../Bytes'; import * as Bytes from '../Bytes';
import { uuidToBytes, bytesToUuid } from '../Crypto'; import { uuidToBytes, bytesToUuid } from '../Crypto';
@ -76,7 +76,6 @@ import { getOwn } from '../util/getOwn';
import { isNormalNumber } from '../util/isNormalNumber'; import { isNormalNumber } from '../util/isNormalNumber';
import * as durations from '../util/durations'; import * as durations from '../util/durations';
import { handleMessageSend } from '../util/handleMessageSend'; import { handleMessageSend } from '../util/handleMessageSend';
import { isAlpha, isBeta } from '../util/version';
import { import {
fetchMembershipProof, fetchMembershipProof,
getMembershipList, getMembershipList,
@ -259,11 +258,7 @@ export class CallingClass {
this.previousAudioDeviceModule = parseAudioDeviceModule( this.previousAudioDeviceModule = parseAudioDeviceModule(
window.storage.get('previousAudioDeviceModule') window.storage.get('previousAudioDeviceModule')
); );
this.currentAudioDeviceModule = this.currentAudioDeviceModule = getAudioDeviceModule();
OS.isWindows() &&
(isAlpha(window.getVersion()) || isBeta(window.getVersion()))
? AudioDeviceModule.WindowsAdm2
: AudioDeviceModule.Default;
window.storage.put( window.storage.put(
'previousAudioDeviceModule', 'previousAudioDeviceModule',
this.currentAudioDeviceModule this.currentAudioDeviceModule