From 28b9099e7671d1d7a19a69dab7efdcac080c226f Mon Sep 17 00:00:00 2001 From: Jesse Date: Tue, 21 May 2024 18:47:57 -0400 Subject: [PATCH] Add requested Voicing query parameters for https://github.com/phetsims/joist/issues/968 --- js/preferences/PreferencesModel.ts | 14 +++++++++----- js/toolbar/Toolbar.ts | 3 ++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/js/preferences/PreferencesModel.ts b/js/preferences/PreferencesModel.ts index 4f305bf2..1fa14b37 100644 --- a/js/preferences/PreferencesModel.ts +++ b/js/preferences/PreferencesModel.ts @@ -281,7 +281,8 @@ export default class PreferencesModel extends PhetioObject { voiceRateProperty: voicingManager.voiceRateProperty, voiceProperty: voicingManager.voiceProperty, - toolbarEnabledProperty: new BooleanProperty( true, { + // The toolbar is enabled by default, but can be initially disabled with a query parameter. + toolbarEnabledProperty: new BooleanProperty( !phet.chipper.queryParameters.voicingRemoveVoicingToolbar, { tandem: options.tandem.createTandem( AUDIO_MODEL_TANDEM ).createTandem( 'toolbarEnabledProperty' ), phetioState: false } ), @@ -358,11 +359,8 @@ export default class PreferencesModel extends PhetioObject { !enabled && voicingUtteranceQueue.clear(); } ); - // If initially enabled, then apply all responses on startup, can (and should) be overwritten by PreferencesStorage. + // If initially enabled, apply a prioritized default voice. if ( phet.chipper.queryParameters.voicingInitiallyEnabled ) { - responseCollector.objectResponsesEnabledProperty.value = true; - responseCollector.contextResponsesEnabledProperty.value = true; - responseCollector.hintResponsesEnabledProperty.value = true; // Set the first voice according to PhET's preferred english voices const voicesMultilink = Multilink.multilink( @@ -375,6 +373,12 @@ export default class PreferencesModel extends PhetioObject { } ); } + + // Feature specific query parameters set the initial state of the voicing features. These can (and should) be + // overwritten by PreferencesStorage. + responseCollector.objectResponsesEnabledProperty.value = !!phet.chipper.queryParameters.voicingAddObjectResponses; + responseCollector.contextResponsesEnabledProperty.value = !!phet.chipper.queryParameters.voicingAddContextResponses; + responseCollector.hintResponsesEnabledProperty.value = !!phet.chipper.queryParameters.voicingAddHintResponses; } if ( phet.chipper.queryParameters.printVoicingResponses ) { diff --git a/js/toolbar/Toolbar.ts b/js/toolbar/Toolbar.ts index 160d2822..eed1b8a3 100644 --- a/js/toolbar/Toolbar.ts +++ b/js/toolbar/Toolbar.ts @@ -113,7 +113,8 @@ class Toolbar extends Node { fill: lookAndFeel.navigationBarFillProperty } ); - this.openProperty = new BooleanProperty( true ); + // The Voicing toolbar is initially open unless explicitly collapsed because of a query parameter. + this.openProperty = new BooleanProperty( !phet.chipper.queryParameters.voicingCollapseVoicingToolbar ); this.isShowingProperty = DerivedProperty.and( [ this.isEnabledProperty,