Disable SDK's audio focus requests when telecom manager is enabled

This commit is contained in:
Sylvain Berfini 2021-10-22 10:22:51 +02:00
parent aae7470b61
commit d7d4ccd78f
4 changed files with 6 additions and 1 deletions

View file

@ -156,6 +156,7 @@ class CallSettingsFragment : GenericSettingFragment<SettingsCallFragmentBinding>
val account = TelecomHelper.get().findExistingAccount(requireContext())
TelecomHelper.get().updateAccount(account)
val enabled = TelecomHelper.get().isAccountEnabled()
Log.i("[Call Settings] Telecom Manager is ${if (enabled) "enabled" else "disabled"}")
viewModel.useTelecomManager.value = enabled
corePreferences.useTelecomManager = enabled
}

View file

@ -71,6 +71,7 @@ class CallSettingsViewModel : GenericSettingsViewModel() {
if (TelecomHelper.exists()) {
Log.i("[Call Settings] Removing Telecom Manager account & destroying singleton")
TelecomHelper.get().removeAccount()
TelecomHelper.get().destroy()
TelecomHelper.destroy()
}
prefs.useTelecomManager = newValue

View file

@ -313,7 +313,8 @@ class CoreContext(val context: Context, coreConfig: Config) {
// CoreContext listener must be added first!
if (Version.sdkAboveOrEqual(Version.API26_O_80) && corePreferences.useTelecomManager) {
Log.i("[Context] Creating telecom helper")
Log.i("[Context] Creating TelecomHelper, disabling audio focus requests in AudioHelper")
core.config.setBool("audio", "android_disable_audio_focus_requests", true)
TelecomHelper.create(context)
}

View file

@ -300,6 +300,8 @@ class CorePreferences constructor(private val context: Context) {
get() = config.getBool("app", "use_self_managed_telecom_manager", false)
set(value) {
config.setBool("app", "use_self_managed_telecom_manager", value)
// We need to disable audio focus requests when enabling telecom manager, otherwise it creates conflicts
config.setBool("audio", "android_disable_audio_focus_requests", value)
}
var fullScreenCallUI: Boolean