@@ -184,6 +184,17 @@ class AudioSensorManager @Inject constructor(
184184 entityCategory = SensorManager .ENTITY_CATEGORY_DIAGNOSTIC ,
185185 updateType = SensorManager .BasicSensor .UpdateType .INTENT ,
186186 )
187+
188+ @CatalogSensor
189+ val volAssistant = SensorManager .BasicSensor (
190+ " volume_assistant" ,
191+ " sensor" ,
192+ commonR.string.sensor_name_volume_assistant,
193+ commonR.string.sensor_description_volume_assistant,
194+ " mdi:assistant" ,
195+ entityCategory = SensorManager .ENTITY_CATEGORY_DIAGNOSTIC ,
196+ updateType = SensorManager .BasicSensor .UpdateType .INTENT ,
197+ )
187198 }
188199
189200 override fun docsLink (): String {
@@ -194,15 +205,20 @@ class AudioSensorManager @Inject constructor(
194205 get() = commonR.string.sensor_name_audio
195206
196207 override suspend fun getAvailableSensors (): List <SensorManager .BasicSensor > {
197- val allSupportedSensors = listOf (
198- audioSensor, audioState, headphoneState, micMuted, speakerphoneState,
199- musicActive, volAlarm, volCall, volMusic, volRing, volNotification, volSystem,
200- volDTMF,
201- )
202- return if (SdkVersion .isAtLeast(Build .VERSION_CODES .O )) {
203- allSupportedSensors.plus(volAccessibility)
204- } else {
205- allSupportedSensors
208+ return buildList {
209+ addAll(
210+ listOf (
211+ audioSensor, audioState, headphoneState, micMuted, speakerphoneState,
212+ musicActive, volAlarm, volCall, volMusic, volRing, volNotification, volSystem,
213+ volDTMF,
214+ ),
215+ )
216+ if (SdkVersion .isAtLeast(Build .VERSION_CODES .O )) {
217+ add(volAccessibility)
218+ }
219+ if (SdkVersion .isAtLeast(Build .VERSION_CODES .CINNAMON_BUN )) {
220+ add(volAssistant)
221+ }
206222 }
207223 }
208224
@@ -228,6 +244,9 @@ class AudioSensorManager @Inject constructor(
228244 if (SdkVersion .isAtLeast(Build .VERSION_CODES .O )) {
229245 updateVolumeAccessibility(audioManager)
230246 }
247+ if (SdkVersion .isAtLeast(Build .VERSION_CODES .CINNAMON_BUN )) {
248+ updateVolumeAssistant(audioManager)
249+ }
231250 }
232251
233252 private suspend fun updateAudioSensor (audioManager : AudioManager ) {
@@ -271,6 +290,7 @@ class AudioSensorManager @Inject constructor(
271290 AudioManager .MODE_CALL_SCREENING -> " call_screening"
272291 AudioManager .MODE_CALL_REDIRECT -> " call_redirect"
273292 AudioManager .MODE_COMMUNICATION_REDIRECT -> " communication_redirect"
293+ AudioManager .MODE_ASSISTANT_CONVERSATION -> " assistant_conversation"
274294 else -> STATE_UNKNOWN
275295 }
276296
@@ -282,6 +302,7 @@ class AudioSensorManager @Inject constructor(
282302 AudioManager .MODE_CALL_SCREENING -> " mdi:microphone-message"
283303 AudioManager .MODE_CALL_REDIRECT -> " mdi:phone"
284304 AudioManager .MODE_COMMUNICATION_REDIRECT -> " mdi:message-video"
305+ AudioManager .MODE_ASSISTANT_CONVERSATION -> " mdi:assistant"
285306 else -> " mdi:volume-low"
286307 }
287308
@@ -298,6 +319,7 @@ class AudioSensorManager @Inject constructor(
298319 " call_screening" ,
299320 " call_redirect" ,
300321 " communication_redirect" ,
322+ " assistant_conversation" ,
301323 ),
302324 ),
303325 )
@@ -415,6 +437,11 @@ class AudioSensorManager @Inject constructor(
415437 updateVolumeSensor(audioManager, volDTMF, AudioManager .STREAM_DTMF )
416438 }
417439
440+ @RequiresApi(Build .VERSION_CODES .CINNAMON_BUN )
441+ private suspend fun updateVolumeAssistant (audioManager : AudioManager ) {
442+ updateVolumeSensor(audioManager, volAssistant, AudioManager .STREAM_ASSISTANT )
443+ }
444+
418445 private suspend fun updateVolumeSensor (
419446 audioManager : AudioManager ,
420447 sensor : SensorManager .BasicSensor ,
0 commit comments