Fix issues

This commit is contained in:
meganrogge
2024-02-12 12:02:26 -06:00
parent 8fe3c2dabb
commit f24957e5d2
2 changed files with 36 additions and 40 deletions
@@ -178,9 +178,9 @@ export class AccessibilitySignalService extends Disposable implements IAccessibi
private readonly isSoundEnabledCache = new Cache((event: { readonly signal: AccessibilitySignal; readonly userGesture?: boolean }) => {
const settingObservable = observableFromEvent(
Event.filter(this.configurationService.onDidChangeConfiguration, (e) =>
e.affectsConfiguration(event.signal.settingsKey) || e.affectsConfiguration(event.signal.settingsKey)
e.affectsConfiguration(event.signal.legacySoundSettingsKey) || e.affectsConfiguration(event.signal.settingsKey)
),
() => this.configurationService.getValue<'on' | 'off' | 'auto' | 'userGesture' | 'always' | 'never'>(event.signal.settingsKey + '.audioCue')
() => this.configurationService.getValue<'on' | 'off' | 'auto' | 'userGesture' | 'always' | 'never'>(event.signal.settingsKey + '.sound')
);
return derived(reader => {
/** @description sound enabled */
@@ -211,7 +211,7 @@ export class AccessibilitySignalService extends Disposable implements IAccessibi
Event.filter(this.configurationService.onDidChangeConfiguration, (e) =>
e.affectsConfiguration(event.signal.legacyAnnouncementSettingsKey!) || e.affectsConfiguration(event.signal.settingsKey)
),
() => event.signal.announcementMessage ? this.configurationService.getValue<true | false | 'userGesture' | 'always' | 'never'>(event.signal.settingsKey + '.announcement') : false
() => event.signal.announcementMessage ? this.configurationService.getValue<'auto' | 'off' | 'userGesture' | 'always' | 'never'>(event.signal.settingsKey + '.announcement') : false
);
return derived(reader => {
/** @description alert enabled */
@@ -221,23 +221,23 @@ export class AccessibilitySignalService extends Disposable implements IAccessibi
) {
return false;
}
return setting === true || setting === 'always' || setting === 'userGesture' && event.userGesture;
return setting === 'auto' || setting === 'always' || setting === 'userGesture' && event.userGesture;
});
}, JSON.stringify);
public isAnnouncementEnabled(cue: AccessibilitySignal, userGesture?: boolean): boolean {
if (!cue.announcementMessage) {
public isAnnouncementEnabled(signal: AccessibilitySignal, userGesture?: boolean): boolean {
if (!signal.announcementMessage) {
return false;
}
return this.isAnnouncementEnabledCache.get({ signal: cue, userGesture }).get() ?? false;
return this.isAnnouncementEnabledCache.get({ signal, userGesture }).get() ?? false;
}
public isSoundEnabled(cue: AccessibilitySignal, userGesture?: boolean): boolean {
return this.isSoundEnabledCache.get({ signal: cue, userGesture }).get() ?? false;
public isSoundEnabled(signal: AccessibilitySignal, userGesture?: boolean): boolean {
return this.isSoundEnabledCache.get({ signal, userGesture }).get() ?? false;
}
public onSoundEnabledChanged(cue: AccessibilitySignal): Event<void> {
return Event.fromObservableLight(this.isSoundEnabledCache.get({ signal: cue }));
public onSoundEnabledChanged(signal: AccessibilitySignal): Event<void> {
return Event.fromObservableLight(this.isSoundEnabledCache.get({ signal }));
}
public onAnnouncementEnabledChanged(cue: AccessibilitySignal): Event<void> {
@@ -41,28 +41,26 @@ export class ShowSignalSoundHelp extends Action2 {
}));
const qp = quickInputService.createQuickPick<IQuickPickItem & { signal: AccessibilitySignal }>();
qp.items = items;
qp.selectedItems = items.filter(i => accessibilitySignalService.isSoundEnabled(i.signal));
qp.selectedItems = items.filter(i => accessibilitySignalService.isSoundEnabled(i.signal) || configurationService.getValue(i.signal.settingsKey + '.sound') !== 'never');
qp.onDidAccept(() => {
const enabledCues = qp.selectedItems.map(i => i.signal);
const disabledCues = AccessibilitySignal.allAccessibilitySignals.filter(cue => !enabledCues.includes(cue));
for (const cue of enabledCues) {
if (!userGestureSignals.includes(cue)) {
let { sound, announcement } = configurationService.getValue<{ sound: string; announcement?: string }>(cue.settingsKey);
sound = accessibilityService.isScreenReaderOptimized() ? 'auto' : 'on';
if (announcement) {
configurationService.updateValue(cue.settingsKey, { sound, announcement });
} else {
configurationService.updateValue(cue.settingsKey, { sound });
}
const enabledSounds = qp.selectedItems.map(i => i.signal);
const disabledSounds = qp.items.map(i => (i as any).signal).filter(i => !enabledSounds.includes(i));
for (const signal of enabledSounds) {
let { sound, announcement } = configurationService.getValue<{ sound: string; announcement?: string }>(signal.settingsKey);
sound = userGestureSignals.includes(signal) ? 'userGesture' : accessibilityService.isScreenReaderOptimized() ? 'auto' : 'on';
if (announcement) {
configurationService.updateValue(signal.settingsKey, { sound, announcement });
} else {
configurationService.updateValue(signal.settingsKey, { sound });
}
}
for (const cue of disabledCues) {
const announcement = cue.announcementMessage ? configurationService.getValue(cue.settingsKey + '.announcement') : undefined;
const sound = userGestureSignals.includes(cue) ? 'never' : 'off';
for (const signal of disabledSounds) {
let { sound, announcement } = configurationService.getValue<{ sound: string; announcement?: string }>(signal.settingsKey);
sound = userGestureSignals.includes(signal) ? 'never' : 'off';
if (announcement) {
configurationService.updateValue(cue.settingsKey, { sound, announcement });
configurationService.updateValue(signal.settingsKey, { sound, announcement });
} else {
configurationService.updateValue(cue.settingsKey, { sound });
configurationService.updateValue(signal.settingsKey, { sound });
}
}
qp.hide();
@@ -104,23 +102,21 @@ export class ShowAccessibilityAnnouncementHelp extends Action2 {
}));
const qp = quickInputService.createQuickPick<IQuickPickItem & { signal: AccessibilitySignal }>();
qp.items = items;
qp.selectedItems = items.filter(i => accessibilitySignalService.isAnnouncementEnabled(i.signal));
qp.selectedItems = items.filter(i => accessibilitySignalService.isAnnouncementEnabled(i.signal) || configurationService.getValue(i.signal.settingsKey + '.announcement') !== 'never');
qp.onDidAccept(() => {
const enabledAnnouncements = qp.selectedItems.map(i => i.signal);
const disabledAnnouncements = AccessibilitySignal.allAccessibilitySignals.filter(cue => !enabledAnnouncements.includes(cue));
for (const cue of enabledAnnouncements) {
if (!userGestureSignals.includes(cue)) {
let { sound, announcement } = configurationService.getValue<{ sound: string; announcement?: string }>(cue.settingsKey);
announcement = cue.announcementMessage && accessibilityService.isScreenReaderOptimized() ? 'auto' : undefined;
if (announcement) {
configurationService.updateValue(cue.settingsKey, { sound, announcement });
}
for (const signal of enabledAnnouncements) {
let { sound, announcement } = configurationService.getValue<{ sound: string; announcement?: string }>(signal.settingsKey);
announcement = userGestureSignals.includes(signal) ? 'userGesture' : signal.announcementMessage && accessibilityService.isScreenReaderOptimized() ? 'auto' : undefined;
if (announcement) {
configurationService.updateValue(signal.settingsKey, { sound, announcement });
}
}
for (const cue of disabledAnnouncements) {
const announcement = userGestureSignals.includes(cue) ? 'never' : 'off';
const sound = configurationService.getValue(cue.settingsKey + '.sound');
configurationService.updateValue(cue.settingsKey, { sound, announcement });
for (const signal of disabledAnnouncements) {
const announcement = userGestureSignals.includes(signal) ? 'never' : 'off';
const sound = configurationService.getValue(signal.settingsKey + '.sound');
configurationService.updateValue(signal.settingsKey, { sound, announcement });
}
qp.hide();
});