From 57acb1b7b7ac27ada4c31adb5a52a2f2d68ba06f Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 30 Aug 2022 16:06:02 +0200 Subject: [PATCH] Update side menu & dialer conference menu visibility when account registration state changes --- .../activities/main/dialer/viewmodels/DialerViewModel.kt | 9 +++++++++ .../main/sidemenu/viewmodels/SideMenuViewModel.kt | 8 ++++++-- app/src/main/java/org/linphone/utils/LinphoneUtils.kt | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/main/dialer/viewmodels/DialerViewModel.kt b/app/src/main/java/org/linphone/activities/main/dialer/viewmodels/DialerViewModel.kt index 45874eb05..f299bf73f 100644 --- a/app/src/main/java/org/linphone/activities/main/dialer/viewmodels/DialerViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/dialer/viewmodels/DialerViewModel.kt @@ -128,6 +128,15 @@ class DialerViewModel : LogsUploadViewModel() { } } } + + override fun onAccountRegistrationStateChanged( + core: Core, + account: Account, + state: RegistrationState?, + message: String + ) { + scheduleConferenceAvailable.value = LinphoneUtils.isRemoteConferencingAvailable() + } } init { diff --git a/app/src/main/java/org/linphone/activities/main/sidemenu/viewmodels/SideMenuViewModel.kt b/app/src/main/java/org/linphone/activities/main/sidemenu/viewmodels/SideMenuViewModel.kt index bc2f85593..288c8831f 100644 --- a/app/src/main/java/org/linphone/activities/main/sidemenu/viewmodels/SideMenuViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/sidemenu/viewmodels/SideMenuViewModel.kt @@ -33,8 +33,7 @@ class SideMenuViewModel : ViewModel() { val showAssistant: Boolean = corePreferences.showAssistantInSideMenu val showSettings: Boolean = corePreferences.showSettingsInSideMenu val showRecordings: Boolean = corePreferences.showRecordingsInSideMenu - val showScheduledConferences: Boolean = corePreferences.showScheduledConferencesInSideMenu && - LinphoneUtils.isRemoteConferencingAvailable() + val showScheduledConferences = MutableLiveData() val showAbout: Boolean = corePreferences.showAboutInSideMenu val showQuit: Boolean = corePreferences.showQuitInSideMenu @@ -66,6 +65,8 @@ class SideMenuViewModel : ViewModel() { init { defaultAccountFound.value = false defaultAccountAvatar.value = corePreferences.defaultAccountAvatarPath + showScheduledConferences.value = corePreferences.showScheduledConferencesInSideMenu && + LinphoneUtils.isRemoteConferencingAvailable() coreContext.core.addListener(listener) updateAccountsList() } @@ -107,6 +108,9 @@ class SideMenuViewModel : ViewModel() { } } accounts.value = list + + showScheduledConferences.value = corePreferences.showScheduledConferencesInSideMenu && + LinphoneUtils.isRemoteConferencingAvailable() } fun setPictureFromPath(picturePath: String) { diff --git a/app/src/main/java/org/linphone/utils/LinphoneUtils.kt b/app/src/main/java/org/linphone/utils/LinphoneUtils.kt index 0cc40e7cd..82620f9ea 100644 --- a/app/src/main/java/org/linphone/utils/LinphoneUtils.kt +++ b/app/src/main/java/org/linphone/utils/LinphoneUtils.kt @@ -118,7 +118,7 @@ class LinphoneUtils { fun isRemoteConferencingAvailable(): Boolean { val core = coreContext.core - return core.defaultAccount?.params?.audioVideoConferenceFactoryAddress != null || core.defaultAccount?.params?.conferenceFactoryUri != null + return core.defaultAccount?.params?.audioVideoConferenceFactoryAddress != null } fun createOneToOneChatRoom(participant: Address, isSecured: Boolean = false): ChatRoom? {