diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt index 9d51256c7..9ea387264 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt @@ -309,7 +309,7 @@ class ConversationsListFragment : AbstractTopBarFragment() { override fun onResume() { super.onResume() - if (listViewModel.hideMeetings.value == true) { + if (listViewModel.hideConversations.value == true) { Log.w( "$TAG Resuming fragment that should no longer be accessible, going to contacts list instead" ) diff --git a/app/src/main/java/org/linphone/ui/main/fragment/AbstractTopBarFragment.kt b/app/src/main/java/org/linphone/ui/main/fragment/AbstractTopBarFragment.kt index 2125ec120..91932676d 100644 --- a/app/src/main/java/org/linphone/ui/main/fragment/AbstractTopBarFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/fragment/AbstractTopBarFragment.kt @@ -20,7 +20,6 @@ package org.linphone.ui.main.fragment import android.content.res.Configuration -import android.os.Bundle import android.view.View import androidx.annotation.IdRes import androidx.annotation.UiThread @@ -52,10 +51,6 @@ abstract class AbstractTopBarFragment : GenericFragment() { abstract fun onDefaultAccountChanged() - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - } - fun initSlidingPane(slidingPane: SlidingPaneLayout) { val slidingPaneBackPressedCallback = SlidingPaneBackPressedCallback(slidingPane) requireActivity().onBackPressedDispatcher.addCallback( diff --git a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt index ca14b18fe..be7800d8f 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt @@ -57,10 +57,12 @@ class MeetingsListFragment : AbstractTopBarFragment() { private var bottomSheetDialog: BottomSheetDialogFragment? = null override fun onDefaultAccountChanged() { - Log.i( - "$TAG Default account changed, updating avatar in top bar & re-computing meetings list" - ) - listViewModel.applyFilter() + if (!goToContactsIfMeetingsAreDisabledForCurrentlyDefaultAccount()) { + Log.i( + "$TAG Default account changed, updating avatar in top bar & re-computing meetings list" + ) + listViewModel.applyFilter() + } } override fun onCreateAnimation(transit: Int, enter: Boolean, nextAnim: Int): Animation? { @@ -223,12 +225,18 @@ class MeetingsListFragment : AbstractTopBarFragment() { override fun onResume() { super.onResume() + goToContactsIfMeetingsAreDisabledForCurrentlyDefaultAccount() + } + + private fun goToContactsIfMeetingsAreDisabledForCurrentlyDefaultAccount(): Boolean { if (listViewModel.hideMeetings.value == true) { Log.w( "$TAG Resuming fragment that should no longer be accessible, going to contacts list instead" ) sharedViewModel.navigateToContactsEvent.value = Event(true) + return true } + return false } private fun scrollToToday() { diff --git a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountProfileViewModel.kt b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountProfileViewModel.kt index 84410642a..3677a073d 100644 --- a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountProfileViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountProfileViewModel.kt @@ -34,6 +34,8 @@ class AccountProfileViewModel @UiThread constructor() : ViewModel() { val registerEnabled = MutableLiveData() + val showModeSelection = MutableLiveData() + val isCurrentlySelectedModeSecure = MutableLiveData() val devices = MutableLiveData>() @@ -93,28 +95,18 @@ class AccountProfileViewModel @UiThread constructor() : ViewModel() { sipAddress.postValue(account.params.identityAddress?.asStringUriOnly()) displayName.postValue(account.params.identityAddress?.displayName) + val limeServerUrl = account.params.limeServerUrl + val conferenceFactoryUri = account.params.conferenceFactoryUri + val showMode = limeServerUrl.orEmpty().isNotEmpty() && conferenceFactoryUri.orEmpty().isNotEmpty() + if (!showMode) { + Log.i( + "$TAG Either LIME server URL or conference factory URI isn't set, hiding end-to-end encrypted/interop mode selection" + ) + } + showModeSelection.postValue(showMode) + val devicesList = arrayListOf() // TODO FIXME: use real devices list from API - devicesList.add( - AccountDeviceModel("Pixel 6 Pro de Sylvain", "03/10/2023", "9h25") { - } - ) - devicesList.add( - AccountDeviceModel( - "Sylvain Galaxy Tab S9 Pro+ Ultra", - "03/10/2023", - "9h25" - ) { - } - ) - devicesList.add( - AccountDeviceModel("MacBook Pro de Marcel", "03/10/2023", "9h25") { - } - ) - devicesList.add( - AccountDeviceModel("sylvain@fedora-linux-38", "03/10/2023", "9h25") { - } - ) devices.postValue(devicesList) val prefix = account.params.internationalPrefix diff --git a/app/src/main/java/org/linphone/ui/main/viewmodel/AbstractTopBarViewModel.kt b/app/src/main/java/org/linphone/ui/main/viewmodel/AbstractTopBarViewModel.kt index bc32f6c97..6026b8516 100644 --- a/app/src/main/java/org/linphone/ui/main/viewmodel/AbstractTopBarViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/viewmodel/AbstractTopBarViewModel.kt @@ -142,11 +142,11 @@ open class AbstractTopBarViewModel @UiThread constructor() : ViewModel() { account.postValue(AccountModel(defaultAccount)) } - defaultAccountChangedEvent.postValue(Event(true)) - updateUnreadMessagesCount() updateMissedCallsCount() updateAvailableMenus() + + defaultAccountChangedEvent.postValue(Event(true)) } } diff --git a/app/src/main/res/layout/account_profile_fragment.xml b/app/src/main/res/layout/account_profile_fragment.xml index c812474d7..9cf9c7200 100644 --- a/app/src/main/res/layout/account_profile_fragment.xml +++ b/app/src/main/res/layout/account_profile_fragment.xml @@ -87,6 +87,12 @@ app:constraint_referenced_ids="details_background, sip_address, sip_address_label, display_name, display_name_label, prefix, prefix_caret, prefix_label, prefix_label_tooltip, push_notifications_switch, push_notifications_title" android:visibility="@{viewModel.expandDetails ? View.VISIBLE : View.GONE}" /> + +