From fc8ac5fc56ae85479938943e85fdb5b51e6ce53d Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 17 May 2024 16:51:23 +0200 Subject: [PATCH] Only go to choose secure/interop mode after successfully connecting first sip.linphone.org account --- .../ui/assistant/fragment/LandingFragment.kt | 14 ++++++++++---- .../ui/assistant/fragment/LoginFragment.kt | 14 ++++++++++---- .../assistant/viewmodel/AccountLoginViewModel.kt | 2 +- .../ui/main/chat/fragment/ConversationFragment.kt | 3 +-- .../settings/fragment/AccountProfileFragment.kt | 9 --------- .../ui/main/viewmodel/SharedMainViewModel.kt | 4 ---- 6 files changed, 22 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/LandingFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/LandingFragment.kt index 6ced388cf..16f02166c 100644 --- a/app/src/main/java/org/linphone/ui/assistant/fragment/LandingFragment.kt +++ b/app/src/main/java/org/linphone/ui/assistant/fragment/LandingFragment.kt @@ -116,10 +116,16 @@ class LandingFragment : GenericFragment() { } viewModel.accountLoggedInEvent.observe(viewLifecycleOwner) { - it.consume { - Log.i("$TAG Account successfully logged-in, go to profile mode fragment") - val action = LandingFragmentDirections.actionLandingFragmentToProfileModeFragment() - findNavController().navigate(action) + it.consume { firstAccount -> + Log.i("$TAG Account successfully logged-in") + if (firstAccount) { + Log.i("$TAG First account, going to secure/interop mode chooser") + val action = LandingFragmentDirections.actionLandingFragmentToProfileModeFragment() + findNavController().navigate(action) + } else { + Log.i("$TAG Not first account, leaving assistant") + requireActivity().finish() + } } } diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/LoginFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/LoginFragment.kt index 6a13c8ca0..a97747747 100644 --- a/app/src/main/java/org/linphone/ui/assistant/fragment/LoginFragment.kt +++ b/app/src/main/java/org/linphone/ui/assistant/fragment/LoginFragment.kt @@ -98,10 +98,16 @@ class LoginFragment : GenericFragment() { } viewModel.accountLoggedInEvent.observe(viewLifecycleOwner) { - it.consume { - Log.i("$TAG Account successfully logged-in, go to profile mode fragment") - val action = LoginFragmentDirections.actionLoginFragmentToProfileModeFragment() - findNavController().navigate(action) + it.consume { firstAccount -> + Log.i("$TAG Account successfully logged-in") + if (firstAccount) { + Log.i("$TAG First account, going to secure/interop mode chooser") + val action = LoginFragmentDirections.actionLoginFragmentToProfileModeFragment() + findNavController().navigate(action) + } else { + Log.i("$TAG Not first account, leaving assistant") + requireActivity().finish() + } } } diff --git a/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountLoginViewModel.kt b/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountLoginViewModel.kt index b378fbfd9..6bdcb78dd 100644 --- a/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountLoginViewModel.kt +++ b/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountLoginViewModel.kt @@ -89,7 +89,7 @@ open class AccountLoginViewModel @UiThread constructor() : GenericViewModel() { // Set new account as default core.defaultAccount = newlyCreatedAccount - accountLoggedInEvent.postValue(Event(true)) + accountLoggedInEvent.postValue(Event(core.accountList.size == 1)) } else if (state == RegistrationState.Failed) { registrationInProgress.postValue(false) core.removeListener(this) diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt index f2093ef71..246bd426c 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt @@ -568,8 +568,7 @@ class ConversationFragment : SlidingPaneChildFragment() { Log.i( "$TAG Navigating to account profile mode fragment to let user change mode to interop" ) - sharedViewModel.goToAccountProfileModeEvent.value = Event(true) - sharedViewModel.goToAccountProfileEvent.value = Event(true) + // TODO FIXME: show bottom dialog like for encrypted conversation } sendMessageViewModel.emojiToAddEvent.observe(viewLifecycleOwner) { diff --git a/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt b/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt index f646c5a9b..0ebb1260d 100644 --- a/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt @@ -186,15 +186,6 @@ class AccountProfileFragment : GenericMainFragment() { (view.parent as? ViewGroup)?.doOnPreDraw { startPostponedEnterTransition() setupDialPlanPicker() - - sharedViewModel.goToAccountProfileModeEvent.observe(viewLifecycleOwner) { event -> - event.consume { - Log.i( - "$TAG Account was found, going directly to AccountProfileMode fragment" - ) - goToAccountProfileModeFragment() - } - } } } else { Log.e( diff --git a/app/src/main/java/org/linphone/ui/main/viewmodel/SharedMainViewModel.kt b/app/src/main/java/org/linphone/ui/main/viewmodel/SharedMainViewModel.kt index ee27dd051..4be75b3b2 100644 --- a/app/src/main/java/org/linphone/ui/main/viewmodel/SharedMainViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/viewmodel/SharedMainViewModel.kt @@ -81,10 +81,6 @@ class SharedMainViewModel @UiThread constructor() : ViewModel() { MutableLiveData>() } - val goToAccountProfileModeEvent: MutableLiveData> by lazy { - MutableLiveData>() - } - /* Contacts related */ var displayedFriend: Friend? = null // Prevents the need to go look for the friend