Fix device selection persistence bug
This commit is contained in:
parent
bad065859c
commit
a3b972f6e7
4 changed files with 157 additions and 67 deletions
|
@ -15,6 +15,7 @@ import {
|
|||
import { awaitObject } from '../../util/awaitObject';
|
||||
import { DurationInSeconds } from '../../util/durations';
|
||||
import { createSetting, createCallback } from '../../util/preload';
|
||||
import { findBestMatchingAudioDeviceIndex } from '../../calling/findBestMatchingDevice';
|
||||
|
||||
function doneRendering() {
|
||||
ipcRenderer.send('settings-done-rendering');
|
||||
|
@ -239,6 +240,30 @@ async function renderPreferences() {
|
|||
const preferredSystemLocales =
|
||||
MinimalSignalContext.getPreferredSystemLocales();
|
||||
|
||||
const selectedMicIndex = findBestMatchingAudioDeviceIndex(
|
||||
{
|
||||
available: availableMicrophones,
|
||||
preferred: selectedMicrophone,
|
||||
},
|
||||
OS.isWindows()
|
||||
);
|
||||
const recomputedSelectedMicrophone =
|
||||
selectedMicIndex !== undefined
|
||||
? availableMicrophones[selectedMicIndex]
|
||||
: undefined;
|
||||
|
||||
const selectedSpeakerIndex = findBestMatchingAudioDeviceIndex(
|
||||
{
|
||||
available: availableSpeakers,
|
||||
preferred: selectedSpeaker,
|
||||
},
|
||||
OS.isWindows()
|
||||
);
|
||||
const recomputedSelectedSpeaker =
|
||||
selectedSpeakerIndex !== undefined
|
||||
? availableSpeakers[selectedSpeakerIndex]
|
||||
: undefined;
|
||||
|
||||
const props = {
|
||||
// Settings
|
||||
availableCameras,
|
||||
|
@ -279,8 +304,8 @@ async function renderPreferences() {
|
|||
preferredSystemLocales,
|
||||
resolvedLocale,
|
||||
selectedCamera,
|
||||
selectedMicrophone,
|
||||
selectedSpeaker,
|
||||
selectedMicrophone: recomputedSelectedMicrophone,
|
||||
selectedSpeaker: recomputedSelectedSpeaker,
|
||||
sentMediaQualitySetting,
|
||||
themeSetting,
|
||||
universalExpireTimer: DurationInSeconds.fromSeconds(universalExpireTimer),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue