mirror of
https://github.com/kavishdevar/librepods.git
synced 2026-05-09 22:25:59 +00:00
android: add convo detect broadcast
This commit is contained in:
@@ -526,7 +526,7 @@ class AirPodsService : Service(), SharedPreferences.OnSharedPreferenceChangeList
|
|||||||
|
|
||||||
initializeConfig()
|
initializeConfig()
|
||||||
|
|
||||||
ancModeReceiver = object : BroadcastReceiver() {
|
externalBroadcastReceiver = object : BroadcastReceiver() {
|
||||||
override fun onReceive(context: Context?, intent: Intent?) {
|
override fun onReceive(context: Context?, intent: Intent?) {
|
||||||
if (intent?.action == "me.kavishdevar.librepods.SET_ANC_MODE") {
|
if (intent?.action == "me.kavishdevar.librepods.SET_ANC_MODE") {
|
||||||
if (intent.hasExtra("mode")) {
|
if (intent.hasExtra("mode")) {
|
||||||
@@ -555,15 +555,23 @@ class AirPodsService : Service(), SharedPreferences.OnSharedPreferenceChangeList
|
|||||||
"Cycling ANC mode from $currentMode to $nextMode"
|
"Cycling ANC mode from $currentMode to $nextMode"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
} else if (intent?.action == "me.kavishdevar.librepods.CONVO_DETECT") {
|
||||||
|
if (intent.hasExtra("enabled")) {
|
||||||
|
val enabled = intent.getBooleanExtra("enabled", false)
|
||||||
|
aacpManager.sendControlCommand(
|
||||||
|
AACPManager.Companion.ControlCommandIdentifiers.CONVERSATION_DETECT_CONFIG.value,
|
||||||
|
enabled
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
registerReceiver(ancModeReceiver, ancModeFilter, RECEIVER_EXPORTED)
|
registerReceiver(externalBroadcastReceiver, externalBroadcastFilter, RECEIVER_EXPORTED)
|
||||||
} else {
|
} else {
|
||||||
@Suppress("UnspecifiedRegisterReceiverFlag") registerReceiver(
|
@Suppress("UnspecifiedRegisterReceiverFlag") registerReceiver(
|
||||||
ancModeReceiver, ancModeFilter
|
externalBroadcastReceiver, externalBroadcastFilter
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
val audioManager = this@AirPodsService.getSystemService(AUDIO_SERVICE) as AudioManager
|
val audioManager = this@AirPodsService.getSystemService(AUDIO_SERVICE) as AudioManager
|
||||||
@@ -2397,8 +2405,11 @@ class AirPodsService : Service(), SharedPreferences.OnSharedPreferenceChangeList
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val ancModeFilter = IntentFilter("me.kavishdevar.librepods.SET_ANC_MODE")
|
val externalBroadcastFilter = IntentFilter().apply {
|
||||||
var ancModeReceiver: BroadcastReceiver? = null
|
addAction("me.kavishdevar.librepods.SET_ANC_MODE")
|
||||||
|
addAction("me.kavishdevar.librepods.CONVO_DETECT")
|
||||||
|
}
|
||||||
|
var externalBroadcastReceiver: BroadcastReceiver? = null
|
||||||
|
|
||||||
@SuppressLint("InlinedApi", "MissingPermission", "UnspecifiedRegisterReceiverFlag")
|
@SuppressLint("InlinedApi", "MissingPermission", "UnspecifiedRegisterReceiverFlag")
|
||||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||||
@@ -3104,7 +3115,7 @@ class AirPodsService : Service(), SharedPreferences.OnSharedPreferenceChangeList
|
|||||||
e.printStackTrace()
|
e.printStackTrace()
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
unregisterReceiver(ancModeReceiver)
|
unregisterReceiver(externalBroadcastReceiver)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
e.printStackTrace()
|
e.printStackTrace()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user