From 254d8619fe7d3ebc1b2d9805d2f7f447f82e49d6 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 29 Jan 2024 14:52:24 +0100 Subject: [PATCH] Make sure friend lists subscruptions are enabled for sip.linphone.org accounts and disabled for others --- .../assets/assistant_linphone_default_values | 3 --- .../main/java/org/linphone/core/CoreContext.kt | 18 ++++++++++++++++++ .../ui/main/viewmodel/MainViewModel.kt | 1 + 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/src/main/assets/assistant_linphone_default_values b/app/src/main/assets/assistant_linphone_default_values index f3723d7a9..474fdd310 100644 --- a/app/src/main/assets/assistant_linphone_default_values +++ b/app/src/main/assets/assistant_linphone_default_values @@ -30,7 +30,4 @@ zrtp 1 -
- 1 -
diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index 9910e2643..e21535a55 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -238,6 +238,8 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C core.videoCodecPriorityPolicy = CodecPriorityPolicy.Auto + updateFriendListsSubscriptionDependingOnDefaultAccount() + computeUserAgent() Log.i("$TAG Core has been created with user-agent [${core.userAgent}], starting it") core.start() @@ -473,6 +475,22 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C context.startActivity(intent) } + @WorkerThread + fun updateFriendListsSubscriptionDependingOnDefaultAccount() { + val account = core.defaultAccount + if (account != null) { + val enabled = account.params.domain == corePreferences.defaultDomain + if (enabled != core.isFriendListSubscriptionEnabled) { + core.isFriendListSubscriptionEnabled = enabled + Log.i( + "$TAG Friend list(s) subscription are now ${if (enabled) "enabled" else "disabled"}" + ) + } + } else { + Log.e("$TAG Default account is null, do not touch friend lists subscription") + } + } + @WorkerThread private fun computeUserAgent() { val deviceName = AppUtils.getDeviceName(context) diff --git a/app/src/main/java/org/linphone/ui/main/viewmodel/MainViewModel.kt b/app/src/main/java/org/linphone/ui/main/viewmodel/MainViewModel.kt index e42f13dce..46b56dff5 100644 --- a/app/src/main/java/org/linphone/ui/main/viewmodel/MainViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/viewmodel/MainViewModel.kt @@ -188,6 +188,7 @@ class MainViewModel @UiThread constructor() : ViewModel() { Log.i( "$TAG Default account changed, now is [${account.params.identityAddress?.asStringUriOnly()}]" ) + coreContext.updateFriendListsSubscriptionDependingOnDefaultAccount() if (defaultAccountRegistrationFailed && account.state != RegistrationState.Failed) { Log.i(