@@ -526,7 +526,7 @@ class AirPodsService : Service(), SharedPreferences.OnSharedPreferenceChangeList
526526
527527 initializeConfig()
528528
529- ancModeReceiver = object : BroadcastReceiver () {
529+ externalBroadcastReceiver = object : BroadcastReceiver () {
530530 override fun onReceive (context : Context ? , intent : Intent ? ) {
531531 if (intent?.action == " me.kavishdevar.librepods.SET_ANC_MODE" ) {
532532 if (intent.hasExtra(" mode" )) {
@@ -555,15 +555,23 @@ class AirPodsService : Service(), SharedPreferences.OnSharedPreferenceChangeList
555555 " Cycling ANC mode from $currentMode to $nextMode "
556556 )
557557 }
558+ } else if (intent?.action == " me.kavishdevar.librepods.CONVO_DETECT" ) {
559+ if (intent.hasExtra(" enabled" )) {
560+ val enabled = intent.getBooleanExtra(" enabled" , false )
561+ aacpManager.sendControlCommand(
562+ AACPManager .Companion .ControlCommandIdentifiers .CONVERSATION_DETECT_CONFIG .value,
563+ enabled
564+ )
565+ }
558566 }
559567 }
560568 }
561569
562570 if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .TIRAMISU ) {
563- registerReceiver(ancModeReceiver, ancModeFilter , RECEIVER_EXPORTED )
571+ registerReceiver(externalBroadcastReceiver, externalBroadcastFilter , RECEIVER_EXPORTED )
564572 } else {
565573 @Suppress(" UnspecifiedRegisterReceiverFlag" ) registerReceiver(
566- ancModeReceiver, ancModeFilter
574+ externalBroadcastReceiver, externalBroadcastFilter
567575 )
568576 }
569577 val audioManager = this @AirPodsService.getSystemService(AUDIO_SERVICE ) as AudioManager
@@ -2397,8 +2405,11 @@ class AirPodsService : Service(), SharedPreferences.OnSharedPreferenceChangeList
23972405 }
23982406 }
23992407
2400- val ancModeFilter = IntentFilter (" me.kavishdevar.librepods.SET_ANC_MODE" )
2401- var ancModeReceiver: BroadcastReceiver ? = null
2408+ val externalBroadcastFilter = IntentFilter ().apply {
2409+ addAction(" me.kavishdevar.librepods.SET_ANC_MODE" )
2410+ addAction(" me.kavishdevar.librepods.CONVO_DETECT" )
2411+ }
2412+ var externalBroadcastReceiver: BroadcastReceiver ? = null
24022413
24032414 @SuppressLint(" InlinedApi" , " MissingPermission" , " UnspecifiedRegisterReceiverFlag" )
24042415 override fun onStartCommand (intent : Intent ? , flags : Int , startId : Int ): Int {
@@ -3104,7 +3115,7 @@ class AirPodsService : Service(), SharedPreferences.OnSharedPreferenceChangeList
31043115 e.printStackTrace()
31053116 }
31063117 try {
3107- unregisterReceiver(ancModeReceiver )
3118+ unregisterReceiver(externalBroadcastReceiver )
31083119 } catch (e: Exception ) {
31093120 e.printStackTrace()
31103121 }
0 commit comments