From f8b39a2902e73422259965e724a44c56f49ce103 Mon Sep 17 00:00:00 2001 From: Anuj Solanki Date: Thu, 17 Oct 2024 22:12:56 +0530 Subject: Make Voice Assistant Toggle Conditional - Removed the Voice Assistant toggle button from the settings page when agl-offline-voice-agent feature is not enabled. Bug-AGL: SPEC-5265 Change-Id: I65aa011cffe90663106a0d8e4fab021972f51e87 Signed-off-by: Anuj Solanki --- lib/core/constants/constants.dart | 1 + lib/data/data_providers/app_config_provider.dart | 18 +++++++++++++++--- lib/data/data_providers/voice_agent_client.dart | 2 +- .../screens/settings/widgets/settings_content.dart | 1 + 4 files changed, 18 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/core/constants/constants.dart b/lib/core/constants/constants.dart index edee874..7bb8e75 100644 --- a/lib/core/constants/constants.dart +++ b/lib/core/constants/constants.dart @@ -9,6 +9,7 @@ final GlobalKey homeScaffoldKey = GlobalKey(); const debugDisplay = bool.fromEnvironment('DEBUG_DISPLAY'); const disableBkgAnimationDefault = bool.fromEnvironment('DISABLE_BKG_ANIMATION'); const randomHybridAnimationDefault = bool.fromEnvironment('RANDOM_HYBRID_ANIMATION'); +const enableVoiceAssistantDefault = bool.fromEnvironment('ENABLE_VOICE_ASSISTANT'); diff --git a/lib/data/data_providers/app_config_provider.dart b/lib/data/data_providers/app_config_provider.dart index 9e187a9..4052164 100644 --- a/lib/data/data_providers/app_config_provider.dart +++ b/lib/data/data_providers/app_config_provider.dart @@ -112,6 +112,7 @@ class AppConfig { final StorageConfig storageConfig; final MpdConfig mpdConfig; final VoiceAgentConfig voiceAgentConfig; + final bool enableVoiceAssistant; static String configFilePath = '/etc/xdg/AGL/ics-homescreen.yaml'; @@ -123,7 +124,8 @@ class AppConfig { required this.radioConfig, required this.storageConfig, required this.mpdConfig, - required this.voiceAgentConfig}); + required this.voiceAgentConfig, + required this.enableVoiceAssistant}); static KuksaConfig parseKuksaConfig(YamlMap kuksaMap) { try { @@ -324,6 +326,14 @@ final appConfigProvider = Provider((ref) { voiceAgentConfig = VoiceAgentConfig.defaultConfig(); } + bool enableVoiceAssistant = enableVoiceAssistantDefault; + if (yamlMap.containsKey('enable-voice-assistant')) { + var value = yamlMap['enable-voice-assistant']; + if (value is bool) { + enableVoiceAssistant = value; + } + } + bool disableBkgAnimation = disableBkgAnimationDefault; if (yamlMap.containsKey('disable-bg-animation')) { var value = yamlMap['disable-bg-animation']; @@ -356,7 +366,8 @@ final appConfigProvider = Provider((ref) { radioConfig: radioConfig, storageConfig: storageConfig, mpdConfig: mpdConfig, - voiceAgentConfig: voiceAgentConfig); + voiceAgentConfig: voiceAgentConfig, + enableVoiceAssistant: enableVoiceAssistant); } catch (_) { return AppConfig( disableBkgAnimation: false, @@ -366,6 +377,7 @@ final appConfigProvider = Provider((ref) { radioConfig: RadioConfig.defaultConfig(), storageConfig: StorageConfig.defaultConfig(), mpdConfig: MpdConfig.defaultConfig(), - voiceAgentConfig: VoiceAgentConfig.defaultConfig()); + voiceAgentConfig: VoiceAgentConfig.defaultConfig(), + enableVoiceAssistant: false); } }); diff --git a/lib/data/data_providers/voice_agent_client.dart b/lib/data/data_providers/voice_agent_client.dart index 295e138..903a5d0 100644 --- a/lib/data/data_providers/voice_agent_client.dart +++ b/lib/data/data_providers/voice_agent_client.dart @@ -13,6 +13,7 @@ class VoiceAgentClient { VoiceAgentClient({required this.config,required this.ref}) { // Initialize the client channel without connecting immediately + debugPrint("Connecting to Voice Assistant at ${config.hostname}:${config.port}"); String host = config.hostname; int port = config.port; _channel = ClientChannel( @@ -22,7 +23,6 @@ class VoiceAgentClient { credentials: ChannelCredentials.insecure(), ), ); - debugPrint("Connecting to Voice Assistant"); _client = VoiceAgentServiceClient(_channel); } diff --git a/lib/presentation/screens/settings/widgets/settings_content.dart b/lib/presentation/screens/settings/widgets/settings_content.dart index 458677c..b43c07b 100644 --- a/lib/presentation/screens/settings/widgets/settings_content.dart +++ b/lib/presentation/screens/settings/widgets/settings_content.dart @@ -56,6 +56,7 @@ class Settings extends ConsumerWidget { voidCallback: () { ref.read(appProvider.notifier).update(AppState.audioSettings); }), + if(ref.watch(appConfigProvider).enableVoiceAssistant) VoiceAssistantSettingsTile( icon: Icons.keyboard_voice_outlined, title: "Voice Assistant", -- cgit 1.2.3-korg