Minor code improvement

This commit is contained in:
Sylvain Berfini 2020-10-26 15:18:46 +01:00
parent a6c0de10f0
commit 9a1651a8a9
14 changed files with 378 additions and 177 deletions

View file

@ -24,7 +24,6 @@ import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R import org.linphone.R
import org.linphone.activities.assistant.viewmodels.AccountLoginViewModel import org.linphone.activities.assistant.viewmodels.AccountLoginViewModel
@ -75,21 +74,17 @@ class AccountLoginFragment : AbstractPhoneFragment<AssistantAccountLoginFragment
viewModel.goToSmsValidationEvent.observe(viewLifecycleOwner, { viewModel.goToSmsValidationEvent.observe(viewLifecycleOwner, {
it.consume { it.consume {
if (findNavController().currentDestination?.id == R.id.accountLoginFragment) { val args = Bundle()
val args = Bundle() args.putBoolean("IsLogin", true)
args.putBoolean("IsLogin", true) args.putString("PhoneNumber", viewModel.accountCreator.phoneNumber)
args.putString("PhoneNumber", viewModel.accountCreator.phoneNumber) navigateToPhoneAccountValidation(args)
navigateToPhoneAccountValidation(args)
}
} }
}) })
viewModel.leaveAssistantEvent.observe(viewLifecycleOwner, { viewModel.leaveAssistantEvent.observe(viewLifecycleOwner, {
it.consume { it.consume {
if (coreContext.core.isEchoCancellerCalibrationRequired) { if (coreContext.core.isEchoCancellerCalibrationRequired) {
if (findNavController().currentDestination?.id == R.id.accountLoginFragment) { navigateToEchoCancellerCalibration()
navigateToEchoCancellerCalibration()
}
} else { } else {
requireActivity().finish() requireActivity().finish()
} }

View file

@ -21,7 +21,6 @@ package org.linphone.activities.assistant.fragments
import android.os.Bundle import android.os.Bundle
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.EmailAccountCreationViewModel import org.linphone.activities.assistant.viewmodels.EmailAccountCreationViewModel
@ -50,9 +49,7 @@ class EmailAccountCreationFragment : GenericFragment<AssistantEmailAccountCreati
viewModel.goToEmailValidationEvent.observe(viewLifecycleOwner, { viewModel.goToEmailValidationEvent.observe(viewLifecycleOwner, {
it.consume { it.consume {
if (findNavController().currentDestination?.id == R.id.emailAccountCreationFragment) { navigateToEmailAccountValidation()
navigateToEmailAccountValidation()
}
} }
}) })
} }

View file

@ -21,7 +21,6 @@ package org.linphone.activities.assistant.fragments
import android.os.Bundle import android.os.Bundle
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.* import org.linphone.activities.assistant.viewmodels.*
@ -48,13 +47,11 @@ class EmailAccountValidationFragment : GenericFragment<AssistantEmailAccountVali
viewModel.leaveAssistantEvent.observe(viewLifecycleOwner, { viewModel.leaveAssistantEvent.observe(viewLifecycleOwner, {
it.consume { it.consume {
if (findNavController().currentDestination?.id == R.id.emailAccountValidationFragment) { val args = Bundle()
val args = Bundle() args.putBoolean("AllowSkip", true)
args.putBoolean("AllowSkip", true) args.putString("Username", viewModel.accountCreator.username)
args.putString("Username", viewModel.accountCreator.username) args.putString("Password", viewModel.accountCreator.password)
args.putString("Password", viewModel.accountCreator.password) navigateToAccountLinking(args)
navigateToAccountLinking(args)
}
} }
}) })
} }

View file

@ -22,7 +22,6 @@ package org.linphone.activities.assistant.fragments
import android.app.Dialog import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment import org.linphone.activities.GenericFragment
@ -55,9 +54,7 @@ class GenericAccountLoginFragment : GenericFragment<AssistantGenericAccountLogin
viewModel.leaveAssistantEvent.observe(viewLifecycleOwner, { viewModel.leaveAssistantEvent.observe(viewLifecycleOwner, {
it.consume { it.consume {
if (coreContext.core.isEchoCancellerCalibrationRequired) { if (coreContext.core.isEchoCancellerCalibrationRequired) {
if (findNavController().currentDestination?.id == R.id.genericAccountLoginFragment) { navigateToEchoCancellerCalibration()
navigateToEchoCancellerCalibration()
}
} else { } else {
requireActivity().finish() requireActivity().finish()
} }

View file

@ -21,7 +21,6 @@ package org.linphone.activities.assistant.fragments
import android.os.Bundle import android.os.Bundle
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.assistant.viewmodels.PhoneAccountCreationViewModel import org.linphone.activities.assistant.viewmodels.PhoneAccountCreationViewModel
import org.linphone.activities.assistant.viewmodels.PhoneAccountCreationViewModelFactory import org.linphone.activities.assistant.viewmodels.PhoneAccountCreationViewModelFactory
@ -57,12 +56,10 @@ class PhoneAccountCreationFragment : AbstractPhoneFragment<AssistantPhoneAccount
viewModel.goToSmsValidationEvent.observe(viewLifecycleOwner, { viewModel.goToSmsValidationEvent.observe(viewLifecycleOwner, {
it.consume { it.consume {
if (findNavController().currentDestination?.id == R.id.phoneAccountCreationFragment) { val args = Bundle()
val args = Bundle() args.putBoolean("IsCreation", true)
args.putBoolean("IsCreation", true) args.putString("PhoneNumber", viewModel.accountCreator.phoneNumber)
args.putString("PhoneNumber", viewModel.accountCreator.phoneNumber) navigateToPhoneAccountValidation(args)
navigateToPhoneAccountValidation(args)
}
} }
}) })

View file

@ -21,7 +21,6 @@ package org.linphone.activities.assistant.fragments
import android.os.Bundle import android.os.Bundle
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication import org.linphone.LinphoneApplication
import org.linphone.R import org.linphone.R
import org.linphone.activities.assistant.viewmodels.* import org.linphone.activities.assistant.viewmodels.*
@ -72,25 +71,19 @@ class PhoneAccountLinkingFragment : AbstractPhoneFragment<AssistantPhoneAccountL
viewModel.goToSmsValidationEvent.observe(viewLifecycleOwner, { viewModel.goToSmsValidationEvent.observe(viewLifecycleOwner, {
it.consume { it.consume {
if (findNavController().currentDestination?.id == R.id.phoneAccountLinkingFragment) { val args = Bundle()
val args = Bundle() args.putBoolean("IsLinking", true)
args.putBoolean("IsLinking", true) args.putString("PhoneNumber", viewModel.accountCreator.phoneNumber)
args.putString("PhoneNumber", viewModel.accountCreator.phoneNumber) navigateToPhoneAccountValidation(args)
navigateToPhoneAccountValidation(args)
}
} }
}) })
viewModel.leaveAssistantEvent.observe(viewLifecycleOwner, { viewModel.leaveAssistantEvent.observe(viewLifecycleOwner, {
it.consume { it.consume {
if (findNavController().currentDestination?.id == R.id.phoneAccountLinkingFragment) { if (LinphoneApplication.coreContext.core.isEchoCancellerCalibrationRequired) {
if (LinphoneApplication.coreContext.core.isEchoCancellerCalibrationRequired) { navigateToEchoCancellerCalibration()
if (findNavController().currentDestination?.id == R.id.phoneAccountValidationFragment) { } else {
navigateToEchoCancellerCalibration() requireActivity().finish()
}
} else {
requireActivity().finish()
}
} }
} }
}) })

View file

@ -23,7 +23,6 @@ import android.content.ClipboardManager
import android.content.Context.CLIPBOARD_SERVICE import android.content.Context.CLIPBOARD_SERVICE
import android.os.Bundle import android.os.Bundle
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment import org.linphone.activities.GenericFragment
@ -62,19 +61,15 @@ class PhoneAccountValidationFragment : GenericFragment<AssistantPhoneAccountVali
when { when {
viewModel.isLogin.value == true || viewModel.isCreation.value == true -> { viewModel.isLogin.value == true || viewModel.isCreation.value == true -> {
if (coreContext.core.isEchoCancellerCalibrationRequired) { if (coreContext.core.isEchoCancellerCalibrationRequired) {
if (findNavController().currentDestination?.id == R.id.phoneAccountValidationFragment) { navigateToEchoCancellerCalibration()
navigateToEchoCancellerCalibration()
}
} else { } else {
requireActivity().finish() requireActivity().finish()
} }
} }
viewModel.isLinking.value == true -> { viewModel.isLinking.value == true -> {
if (findNavController().currentDestination?.id == R.id.phoneAccountValidationFragment) { val args = Bundle()
val args = Bundle() args.putString("Identity", "sip:${viewModel.accountCreator.username}@${viewModel.accountCreator.domain}")
args.putString("Identity", "sip:${viewModel.accountCreator.username}@${viewModel.accountCreator.domain}") navigateToAccountSettings(args)
navigateToAccountSettings(args)
}
} }
} }
} }

View file

@ -21,7 +21,6 @@ package org.linphone.activities.assistant.fragments
import android.os.Bundle import android.os.Bundle
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment import org.linphone.activities.GenericFragment
@ -51,18 +50,14 @@ class RemoteProvisioningFragment : GenericFragment<AssistantRemoteProvisioningFr
binding.viewModel = viewModel binding.viewModel = viewModel
binding.setQrCodeClickListener { binding.setQrCodeClickListener {
if (findNavController().currentDestination?.id == R.id.remoteProvisioningFragment) { navigateToQrCode()
navigateToQrCode()
}
} }
viewModel.fetchSuccessfulEvent.observe(viewLifecycleOwner, { viewModel.fetchSuccessfulEvent.observe(viewLifecycleOwner, {
it.consume { success -> it.consume { success ->
if (success) { if (success) {
if (coreContext.core.isEchoCancellerCalibrationRequired) { if (coreContext.core.isEchoCancellerCalibrationRequired) {
if (findNavController().currentDestination?.id == R.id.remoteProvisioningFragment) { navigateToEchoCancellerCalibration()
navigateToEchoCancellerCalibration()
}
} else { } else {
requireActivity().finish() requireActivity().finish()
} }

View file

@ -21,7 +21,6 @@ package org.linphone.activities.assistant.fragments
import android.os.Bundle import android.os.Bundle
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.WelcomeViewModel import org.linphone.activities.assistant.viewmodels.WelcomeViewModel
@ -46,31 +45,23 @@ class WelcomeFragment : GenericFragment<AssistantWelcomeFragmentBinding>() {
binding.viewModel = viewModel binding.viewModel = viewModel
binding.setCreateAccountClickListener { binding.setCreateAccountClickListener {
if (findNavController().currentDestination?.id == R.id.welcomeFragment) { if (resources.getBoolean(R.bool.isTablet)) {
if (resources.getBoolean(R.bool.isTablet)) { navigateToEmailAccountCreation()
navigateToEmailAccountCreation() } else {
} else { navigateToPhoneAccountCreation()
navigateToPhoneAccountCreation()
}
} }
} }
binding.setAccountLoginClickListener { binding.setAccountLoginClickListener {
if (findNavController().currentDestination?.id == R.id.welcomeFragment) { navigateToAccountLogin()
navigateToAccountLogin()
}
} }
binding.setGenericAccountLoginClickListener { binding.setGenericAccountLoginClickListener {
if (findNavController().currentDestination?.id == R.id.welcomeFragment) { navigateToGenericLogin()
navigateToGenericLogin()
}
} }
binding.setRemoteProvisioningClickListener { binding.setRemoteProvisioningClickListener {
if (findNavController().currentDestination?.id == R.id.welcomeFragment) { navigateToRemoteProvisioning()
navigateToRemoteProvisioning()
}
} }
} }
} }

View file

@ -100,33 +100,81 @@ internal fun MainActivity.navigateToDialer(args: Bundle?) {
internal fun TabsFragment.navigateToCallHistory() { internal fun TabsFragment.navigateToCallHistory() {
when (findNavController().currentDestination?.id) { when (findNavController().currentDestination?.id) {
R.id.masterContactsFragment -> findNavController().navigate(R.id.action_masterContactsFragment_to_masterCallLogsFragment, null, getLeftToRightNoPopAnimationNavOptions()) R.id.masterContactsFragment -> findNavController().navigate(
R.id.dialerFragment -> findNavController().navigate(R.id.action_dialerFragment_to_masterCallLogsFragment, null, getLeftToRightNoPopAnimationNavOptions()) R.id.action_masterContactsFragment_to_masterCallLogsFragment,
R.id.masterChatRoomsFragment -> findNavController().navigate(R.id.action_masterChatRoomsFragment_to_masterCallLogsFragment, null, getLeftToRightNoPopAnimationNavOptions()) null,
getLeftToRightNoPopAnimationNavOptions()
)
R.id.dialerFragment -> findNavController().navigate(
R.id.action_dialerFragment_to_masterCallLogsFragment,
null,
getLeftToRightNoPopAnimationNavOptions()
)
R.id.masterChatRoomsFragment -> findNavController().navigate(
R.id.action_masterChatRoomsFragment_to_masterCallLogsFragment,
null,
getLeftToRightNoPopAnimationNavOptions()
)
} }
} }
internal fun TabsFragment.navigateToContacts() { internal fun TabsFragment.navigateToContacts() {
when (findNavController().currentDestination?.id) { when (findNavController().currentDestination?.id) {
R.id.masterCallLogsFragment -> findNavController().navigate(R.id.action_masterCallLogsFragment_to_masterContactsFragment, null, getRightToLeftNoPopAnimationNavOptions()) R.id.masterCallLogsFragment -> findNavController().navigate(
R.id.dialerFragment -> findNavController().navigate(R.id.action_dialerFragment_to_masterContactsFragment, null, getLeftToRightNoPopAnimationNavOptions()) R.id.action_masterCallLogsFragment_to_masterContactsFragment,
R.id.masterChatRoomsFragment -> findNavController().navigate(R.id.action_masterChatRoomsFragment_to_masterContactsFragment, null, getLeftToRightNoPopAnimationNavOptions()) null,
getRightToLeftNoPopAnimationNavOptions()
)
R.id.dialerFragment -> findNavController().navigate(
R.id.action_dialerFragment_to_masterContactsFragment,
null,
getLeftToRightNoPopAnimationNavOptions()
)
R.id.masterChatRoomsFragment -> findNavController().navigate(
R.id.action_masterChatRoomsFragment_to_masterContactsFragment,
null,
getLeftToRightNoPopAnimationNavOptions()
)
} }
} }
internal fun TabsFragment.navigateToDialer() { internal fun TabsFragment.navigateToDialer() {
when (findNavController().currentDestination?.id) { when (findNavController().currentDestination?.id) {
R.id.masterCallLogsFragment -> findNavController().navigate(R.id.action_masterCallLogsFragment_to_dialerFragment, null, getRightToLeftNoPopAnimationNavOptions()) R.id.masterCallLogsFragment -> findNavController().navigate(
R.id.masterContactsFragment -> findNavController().navigate(R.id.action_masterContactsFragment_to_dialerFragment, null, getRightToLeftNoPopAnimationNavOptions()) R.id.action_masterCallLogsFragment_to_dialerFragment,
R.id.masterChatRoomsFragment -> findNavController().navigate(R.id.action_masterChatRoomsFragment_to_dialerFragment, null, getLeftToRightNoPopAnimationNavOptions()) null,
getRightToLeftNoPopAnimationNavOptions()
)
R.id.masterContactsFragment -> findNavController().navigate(
R.id.action_masterContactsFragment_to_dialerFragment,
null,
getRightToLeftNoPopAnimationNavOptions()
)
R.id.masterChatRoomsFragment -> findNavController().navigate(
R.id.action_masterChatRoomsFragment_to_dialerFragment,
null,
getLeftToRightNoPopAnimationNavOptions()
)
} }
} }
internal fun TabsFragment.navigateToChatRooms() { internal fun TabsFragment.navigateToChatRooms() {
when (findNavController().currentDestination?.id) { when (findNavController().currentDestination?.id) {
R.id.masterCallLogsFragment -> findNavController().navigate(R.id.action_masterCallLogsFragment_to_masterChatRoomsFragment, null, getRightToLeftNoPopAnimationNavOptions()) R.id.masterCallLogsFragment -> findNavController().navigate(
R.id.masterContactsFragment -> findNavController().navigate(R.id.action_masterContactsFragment_to_masterChatRoomsFragment, null, getRightToLeftNoPopAnimationNavOptions()) R.id.action_masterCallLogsFragment_to_masterChatRoomsFragment,
R.id.dialerFragment -> findNavController().navigate(R.id.action_dialerFragment_to_masterChatRoomsFragment, null, getRightToLeftNoPopAnimationNavOptions()) null,
getRightToLeftNoPopAnimationNavOptions()
)
R.id.masterContactsFragment -> findNavController().navigate(
R.id.action_masterContactsFragment_to_masterChatRoomsFragment,
null,
getRightToLeftNoPopAnimationNavOptions()
)
R.id.dialerFragment -> findNavController().navigate(
R.id.action_dialerFragment_to_masterChatRoomsFragment,
null,
getRightToLeftNoPopAnimationNavOptions()
)
} }
} }
@ -135,7 +183,11 @@ internal fun TabsFragment.navigateToChatRooms() {
internal fun MasterChatRoomsFragment.navigateToChatRoom() { internal fun MasterChatRoomsFragment.navigateToChatRoom() {
if (!resources.getBoolean(R.bool.isTablet)) { if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.masterChatRoomsFragment) { if (findNavController().currentDestination?.id == R.id.masterChatRoomsFragment) {
findNavController().navigate(R.id.action_masterChatRoomsFragment_to_detailChatRoomFragment, null, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_masterChatRoomsFragment_to_detailChatRoomFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
} else { } else {
val navHostFragment = val navHostFragment =
@ -174,42 +226,80 @@ internal fun DetailChatRoomFragment.navigateToChatRooms() {
} }
internal fun DetailChatRoomFragment.navigateToImdn(args: Bundle?) { internal fun DetailChatRoomFragment.navigateToImdn(args: Bundle?) {
findNavController().navigate(R.id.action_detailChatRoomFragment_to_imdnFragment, args, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.detailChatRoomFragment) {
findNavController().navigate(
R.id.action_detailChatRoomFragment_to_imdnFragment,
args,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun DetailChatRoomFragment.navigateToDevices() { internal fun DetailChatRoomFragment.navigateToDevices() {
findNavController().navigate(R.id.action_detailChatRoomFragment_to_devicesFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.detailChatRoomFragment) {
findNavController().navigate(
R.id.action_detailChatRoomFragment_to_devicesFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun DetailChatRoomFragment.navigateToGroupInfo() { internal fun DetailChatRoomFragment.navigateToGroupInfo() {
findNavController().navigate(R.id.action_detailChatRoomFragment_to_groupInfoFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.detailChatRoomFragment) {
findNavController().navigate(
R.id.action_detailChatRoomFragment_to_groupInfoFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun DetailChatRoomFragment.navigateToEphemeralInfo() { internal fun DetailChatRoomFragment.navigateToEphemeralInfo() {
findNavController().navigate(R.id.action_detailChatRoomFragment_to_ephemeralFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.detailChatRoomFragment) {
findNavController().navigate(
R.id.action_detailChatRoomFragment_to_ephemeralFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun ChatRoomCreationFragment.navigateToGroupInfo(args: Bundle?) { internal fun ChatRoomCreationFragment.navigateToGroupInfo(args: Bundle?) {
if (findNavController().currentDestination?.id == R.id.chatRoomCreationFragment) { if (findNavController().currentDestination?.id == R.id.chatRoomCreationFragment) {
findNavController().navigate(R.id.action_chatRoomCreationFragment_to_groupInfoFragment, args, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_chatRoomCreationFragment_to_groupInfoFragment,
args,
getRightToLeftAnimationNavOptions()
)
} }
} }
internal fun ChatRoomCreationFragment.navigateToChatRoom() { internal fun ChatRoomCreationFragment.navigateToChatRoom() {
if (findNavController().currentDestination?.id == R.id.chatRoomCreationFragment) { if (findNavController().currentDestination?.id == R.id.chatRoomCreationFragment) {
findNavController().navigate(R.id.action_chatRoomCreationFragment_to_detailChatRoomFragment, null, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_chatRoomCreationFragment_to_detailChatRoomFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
} }
internal fun GroupInfoFragment.navigateToChatRoomCreation(args: Bundle?) { internal fun GroupInfoFragment.navigateToChatRoomCreation(args: Bundle?) {
if (findNavController().currentDestination?.id == R.id.groupInfoFragment) { if (findNavController().currentDestination?.id == R.id.groupInfoFragment) {
findNavController().navigate(R.id.action_groupInfoFragment_to_chatRoomCreationFragment, args, getLeftToRightAnimationNavOptions()) findNavController().navigate(R.id.action_groupInfoFragment_to_chatRoomCreationFragment,
args,
getLeftToRightAnimationNavOptions()
)
} }
} }
internal fun GroupInfoFragment.navigateToChatRoom() { internal fun GroupInfoFragment.navigateToChatRoom() {
if (findNavController().currentDestination?.id == R.id.groupInfoFragment) { if (findNavController().currentDestination?.id == R.id.groupInfoFragment) {
findNavController().navigate(R.id.action_groupInfoFragment_to_detailChatRoomFragment, null, getRightToLeftAnimationNavOptions()) findNavController().navigate(R.id.action_groupInfoFragment_to_detailChatRoomFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
} }
@ -225,7 +315,11 @@ internal fun MasterContactsFragment.navigateToContact() {
} else { } else {
val navHostFragment = val navHostFragment =
childFragmentManager.findFragmentById(R.id.contacts_nav_container) as NavHostFragment childFragmentManager.findFragmentById(R.id.contacts_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_detailContactFragment, null, getRightToLeftAnimationNavOptions()) navHostFragment.navController.navigate(
R.id.action_global_detailContactFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
} }
@ -233,7 +327,11 @@ internal fun MasterContactsFragment.navigateToContactEditor(sipUriToAdd: String?
val bundle = if (sipUriToAdd != null) bundleOf("SipUri" to sipUriToAdd) else Bundle() val bundle = if (sipUriToAdd != null) bundleOf("SipUri" to sipUriToAdd) else Bundle()
if (!resources.getBoolean(R.bool.isTablet)) { if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.masterContactsFragment) { if (findNavController().currentDestination?.id == R.id.masterContactsFragment) {
findNavController().navigate(R.id.action_masterContactsFragment_to_contactEditorFragment, bundle, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_masterContactsFragment_to_contactEditorFragment,
bundle,
getRightToLeftAnimationNavOptions()
)
} }
} else { } else {
val navHostFragment = val navHostFragment =
@ -252,7 +350,11 @@ internal fun ContactEditorFragment.navigateToContact(contact: NativeContact) {
} }
internal fun DetailContactFragment.navigateToChatRooms(args: Bundle?) { internal fun DetailContactFragment.navigateToChatRooms(args: Bundle?) {
findNavController().navigate(R.id.action_global_masterChatRoomsFragment, args, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_global_masterChatRoomsFragment,
args,
getRightToLeftAnimationNavOptions()
)
} }
internal fun DetailContactFragment.navigateToDialer(args: Bundle?) { internal fun DetailContactFragment.navigateToDialer(args: Bundle?) {
@ -264,7 +366,13 @@ internal fun DetailContactFragment.navigateToDialer(args: Bundle?) {
} }
internal fun DetailContactFragment.navigateToContactEditor() { internal fun DetailContactFragment.navigateToContactEditor() {
findNavController().navigate(R.id.action_detailContactFragment_to_contactEditorFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.detailContactFragment) {
findNavController().navigate(
R.id.action_detailContactFragment_to_contactEditorFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
/* History related */ /* History related */
@ -307,7 +415,11 @@ internal fun DetailCallLogFragment.navigateToFriend(friendAddress: Address) {
} }
internal fun DetailCallLogFragment.navigateToChatRooms(args: Bundle?) { internal fun DetailCallLogFragment.navigateToChatRooms(args: Bundle?) {
findNavController().navigate(R.id.action_global_masterChatRoomsFragment, args, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_global_masterChatRoomsFragment,
args,
getRightToLeftAnimationNavOptions()
)
} }
internal fun DetailCallLogFragment.navigateToDialer(args: Bundle?) { internal fun DetailCallLogFragment.navigateToDialer(args: Bundle?) {
@ -340,7 +452,11 @@ internal fun SettingsFragment.navigateToAccountSettings(identity: String) {
internal fun SettingsFragment.navigateToTunnelSettings() { internal fun SettingsFragment.navigateToTunnelSettings() {
if (!resources.getBoolean(R.bool.isTablet)) { if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) { if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_tunnelSettingsFragment, null, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_settingsFragment_to_tunnelSettingsFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
} else { } else {
val navHostFragment = val navHostFragment =
@ -352,7 +468,11 @@ internal fun SettingsFragment.navigateToTunnelSettings() {
internal fun SettingsFragment.navigateToAudioSettings() { internal fun SettingsFragment.navigateToAudioSettings() {
if (!resources.getBoolean(R.bool.isTablet)) { if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) { if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_audioSettingsFragment, null, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_settingsFragment_to_audioSettingsFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
} else { } else {
val navHostFragment = val navHostFragment =
@ -364,7 +484,11 @@ internal fun SettingsFragment.navigateToAudioSettings() {
internal fun SettingsFragment.navigateToVideoSettings() { internal fun SettingsFragment.navigateToVideoSettings() {
if (!resources.getBoolean(R.bool.isTablet)) { if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) { if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_videoSettingsFragment, null, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_settingsFragment_to_videoSettingsFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
} else { } else {
val navHostFragment = val navHostFragment =
@ -376,7 +500,11 @@ internal fun SettingsFragment.navigateToVideoSettings() {
internal fun SettingsFragment.navigateToCallSettings() { internal fun SettingsFragment.navigateToCallSettings() {
if (!resources.getBoolean(R.bool.isTablet)) { if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) { if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_callSettingsFragment, null, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_settingsFragment_to_callSettingsFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
} else { } else {
val navHostFragment = val navHostFragment =
@ -388,7 +516,11 @@ internal fun SettingsFragment.navigateToCallSettings() {
internal fun SettingsFragment.navigateToChatSettings() { internal fun SettingsFragment.navigateToChatSettings() {
if (!resources.getBoolean(R.bool.isTablet)) { if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) { if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_chatSettingsFragment, null, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_settingsFragment_to_chatSettingsFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
} else { } else {
val navHostFragment = val navHostFragment =
@ -400,7 +532,11 @@ internal fun SettingsFragment.navigateToChatSettings() {
internal fun SettingsFragment.navigateToNetworkSettings() { internal fun SettingsFragment.navigateToNetworkSettings() {
if (!resources.getBoolean(R.bool.isTablet)) { if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) { if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_networkSettingsFragment, null, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_settingsFragment_to_networkSettingsFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
} else { } else {
val navHostFragment = val navHostFragment =
@ -412,7 +548,11 @@ internal fun SettingsFragment.navigateToNetworkSettings() {
internal fun SettingsFragment.navigateToContactsSettings() { internal fun SettingsFragment.navigateToContactsSettings() {
if (!resources.getBoolean(R.bool.isTablet)) { if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) { if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_contactsSettingsFragment, null, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_settingsFragment_to_contactsSettingsFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
} else { } else {
val navHostFragment = val navHostFragment =
@ -424,7 +564,11 @@ internal fun SettingsFragment.navigateToContactsSettings() {
internal fun SettingsFragment.navigateToAdvancedSettings() { internal fun SettingsFragment.navigateToAdvancedSettings() {
if (!resources.getBoolean(R.bool.isTablet)) { if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) { if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_advancedSettingsFragment, null, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_settingsFragment_to_advancedSettingsFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
} else { } else {
val navHostFragment = val navHostFragment =
@ -434,15 +578,23 @@ internal fun SettingsFragment.navigateToAdvancedSettings() {
} }
internal fun AccountSettingsFragment.navigateToPhoneLinking(args: Bundle?) { internal fun AccountSettingsFragment.navigateToPhoneLinking(args: Bundle?) {
findNavController().navigate( if (findNavController().currentDestination?.id == R.id.accountSettingsFragment) {
R.id.action_accountSettingsFragment_to_phoneAccountLinkingFragment, findNavController().navigate(
args, R.id.action_accountSettingsFragment_to_phoneAccountLinkingFragment,
getRightToLeftAnimationNavOptions() args,
) getRightToLeftAnimationNavOptions()
)
}
} }
internal fun PhoneAccountLinkingFragment.navigateToPhoneAccountValidation(args: Bundle?) { internal fun PhoneAccountLinkingFragment.navigateToPhoneAccountValidation(args: Bundle?) {
findNavController().navigate(R.id.action_phoneAccountLinkingFragment_to_phoneAccountValidationFragment, args, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.phoneAccountLinkingFragment) {
findNavController().navigate(
R.id.action_phoneAccountLinkingFragment_to_phoneAccountValidationFragment,
args,
getRightToLeftAnimationNavOptions()
)
}
} }
/* Side menu related */ /* Side menu related */
@ -460,79 +612,187 @@ internal fun SideMenuFragment.navigateToAccountSettings(identity: String) {
} }
internal fun SideMenuFragment.navigateToSettings() { internal fun SideMenuFragment.navigateToSettings() {
findNavController().navigate(R.id.action_global_settingsFragment, null, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_global_settingsFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
internal fun SideMenuFragment.navigateToAbout() { internal fun SideMenuFragment.navigateToAbout() {
findNavController().navigate(R.id.action_global_aboutFragment, null, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_global_aboutFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
internal fun SideMenuFragment.navigateToRecordings() { internal fun SideMenuFragment.navigateToRecordings() {
findNavController().navigate(R.id.action_global_recordingsFragment, null, getRightToLeftAnimationNavOptions()) findNavController().navigate(
R.id.action_global_recordingsFragment,
null,
getRightToLeftAnimationNavOptions()
)
} }
/* Assistant related */ /* Assistant related */
internal fun WelcomeFragment.navigateToEmailAccountCreation() { internal fun WelcomeFragment.navigateToEmailAccountCreation() {
findNavController().navigate(R.id.action_welcomeFragment_to_emailAccountCreationFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.welcomeFragment) {
findNavController().navigate(
R.id.action_welcomeFragment_to_emailAccountCreationFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun WelcomeFragment.navigateToPhoneAccountCreation() { internal fun WelcomeFragment.navigateToPhoneAccountCreation() {
findNavController().navigate(R.id.action_welcomeFragment_to_phoneAccountCreationFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.welcomeFragment) {
findNavController().navigate(
R.id.action_welcomeFragment_to_phoneAccountCreationFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun WelcomeFragment.navigateToAccountLogin() { internal fun WelcomeFragment.navigateToAccountLogin() {
findNavController().navigate(R.id.action_welcomeFragment_to_accountLoginFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.welcomeFragment) {
findNavController().navigate(
R.id.action_welcomeFragment_to_accountLoginFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun WelcomeFragment.navigateToGenericLogin() { internal fun WelcomeFragment.navigateToGenericLogin() {
findNavController().navigate(R.id.action_welcomeFragment_to_genericAccountLoginFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.welcomeFragment) {
findNavController().navigate(
R.id.action_welcomeFragment_to_genericAccountLoginFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun WelcomeFragment.navigateToRemoteProvisioning() { internal fun WelcomeFragment.navigateToRemoteProvisioning() {
findNavController().navigate(R.id.action_welcomeFragment_to_remoteProvisioningFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.welcomeFragment) {
findNavController().navigate(
R.id.action_welcomeFragment_to_remoteProvisioningFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun AccountLoginFragment.navigateToEchoCancellerCalibration() { internal fun AccountLoginFragment.navigateToEchoCancellerCalibration() {
findNavController().navigate(R.id.action_accountLoginFragment_to_echoCancellerCalibrationFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.accountLoginFragment) {
findNavController().navigate(
R.id.action_accountLoginFragment_to_echoCancellerCalibrationFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun AccountLoginFragment.navigateToPhoneAccountValidation(args: Bundle?) { internal fun AccountLoginFragment.navigateToPhoneAccountValidation(args: Bundle?) {
findNavController().navigate(R.id.action_accountLoginFragment_to_phoneAccountValidationFragment, args, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.accountLoginFragment) {
findNavController().navigate(
R.id.action_accountLoginFragment_to_phoneAccountValidationFragment,
args,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun GenericAccountLoginFragment.navigateToEchoCancellerCalibration() { internal fun GenericAccountLoginFragment.navigateToEchoCancellerCalibration() {
findNavController().navigate(R.id.action_genericAccountLoginFragment_to_echoCancellerCalibrationFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.genericAccountLoginFragment) {
findNavController().navigate(
R.id.action_genericAccountLoginFragment_to_echoCancellerCalibrationFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun RemoteProvisioningFragment.navigateToQrCode() { internal fun RemoteProvisioningFragment.navigateToQrCode() {
findNavController().navigate(R.id.action_remoteProvisioningFragment_to_qrCodeFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.remoteProvisioningFragment) {
findNavController().navigate(
R.id.action_remoteProvisioningFragment_to_qrCodeFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun RemoteProvisioningFragment.navigateToEchoCancellerCalibration() { internal fun RemoteProvisioningFragment.navigateToEchoCancellerCalibration() {
findNavController().navigate(R.id.action_remoteProvisioningFragment_to_echoCancellerCalibrationFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.remoteProvisioningFragment) {
findNavController().navigate(
R.id.action_remoteProvisioningFragment_to_echoCancellerCalibrationFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun EmailAccountCreationFragment.navigateToEmailAccountValidation() { internal fun EmailAccountCreationFragment.navigateToEmailAccountValidation() {
findNavController().navigate(R.id.action_emailAccountCreationFragment_to_emailAccountValidationFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.emailAccountCreationFragment) {
findNavController().navigate(
R.id.action_emailAccountCreationFragment_to_emailAccountValidationFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun EmailAccountValidationFragment.navigateToAccountLinking(args: Bundle?) { internal fun EmailAccountValidationFragment.navigateToAccountLinking(args: Bundle?) {
findNavController().navigate(R.id.action_emailAccountValidationFragment_to_phoneAccountLinkingFragment, args, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.emailAccountValidationFragment) {
findNavController().navigate(
R.id.action_emailAccountValidationFragment_to_phoneAccountLinkingFragment,
args,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun PhoneAccountCreationFragment.navigateToPhoneAccountValidation(args: Bundle?) { internal fun PhoneAccountCreationFragment.navigateToPhoneAccountValidation(args: Bundle?) {
findNavController().navigate(R.id.action_phoneAccountCreationFragment_to_phoneAccountValidationFragment, args, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.phoneAccountCreationFragment) {
findNavController().navigate(
R.id.action_phoneAccountCreationFragment_to_phoneAccountValidationFragment,
args,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun PhoneAccountValidationFragment.navigateToAccountSettings(args: Bundle?) { internal fun PhoneAccountValidationFragment.navigateToAccountSettings(args: Bundle?) {
findNavController().navigate(R.id.action_phoneAccountValidationFragment_to_accountSettingsFragment, args, getLeftToRightAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.phoneAccountValidationFragment) {
findNavController().navigate(
R.id.action_phoneAccountValidationFragment_to_accountSettingsFragment,
args,
getLeftToRightAnimationNavOptions()
)
}
} }
internal fun PhoneAccountValidationFragment.navigateToEchoCancellerCalibration() { internal fun PhoneAccountValidationFragment.navigateToEchoCancellerCalibration() {
findNavController().navigate(R.id.action_phoneAccountValidationFragment_to_echoCancellerCalibrationFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.phoneAccountValidationFragment) {
findNavController().navigate(
R.id.action_phoneAccountValidationFragment_to_echoCancellerCalibrationFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }
internal fun PhoneAccountLinkingFragment.navigateToEchoCancellerCalibration() { internal fun PhoneAccountLinkingFragment.navigateToEchoCancellerCalibration() {
findNavController().navigate(R.id.action_phoneAccountLinkingFragment_to_echoCancellerCalibrationFragment, null, getRightToLeftAnimationNavOptions()) if (findNavController().currentDestination?.id == R.id.phoneAccountLinkingFragment) {
findNavController().navigate(
R.id.action_phoneAccountLinkingFragment_to_echoCancellerCalibrationFragment,
null,
getRightToLeftAnimationNavOptions()
)
}
} }

View file

@ -353,9 +353,7 @@ class DetailChatRoomFragment : MasterFragment<ChatRoomDetailFragmentBinding, Cha
if (viewModel.oneParticipantOneDevice) { if (viewModel.oneParticipantOneDevice) {
coreContext.startCall(viewModel.onlyParticipantOnlyDeviceAddress, true) coreContext.startCall(viewModel.onlyParticipantOnlyDeviceAddress, true)
} else { } else {
if (findNavController().currentDestination?.id == R.id.detailChatRoomFragment) { navigateToDevices()
navigateToDevices()
}
} }
dialog.dismiss() dialog.dismiss()
@ -366,24 +364,18 @@ class DetailChatRoomFragment : MasterFragment<ChatRoomDetailFragmentBinding, Cha
if (viewModel.oneParticipantOneDevice) { if (viewModel.oneParticipantOneDevice) {
coreContext.startCall(viewModel.onlyParticipantOnlyDeviceAddress, true) coreContext.startCall(viewModel.onlyParticipantOnlyDeviceAddress, true)
} else { } else {
if (findNavController().currentDestination?.id == R.id.detailChatRoomFragment) { navigateToDevices()
navigateToDevices()
}
} }
} }
} }
private fun showGroupInfo(chatRoom: ChatRoom) { private fun showGroupInfo(chatRoom: ChatRoom) {
sharedViewModel.selectedGroupChatRoom.value = chatRoom sharedViewModel.selectedGroupChatRoom.value = chatRoom
if (findNavController().currentDestination?.id == R.id.detailChatRoomFragment) { navigateToGroupInfo()
navigateToGroupInfo()
}
} }
private fun showEphemeralMessages() { private fun showEphemeralMessages() {
if (findNavController().currentDestination?.id == R.id.detailChatRoomFragment) { navigateToEphemeralInfo()
navigateToEphemeralInfo()
}
} }
private fun showForwardConfirmationDialog(chatMessage: ChatMessage) { private fun showForwardConfirmationDialog(chatMessage: ChatMessage) {

View file

@ -88,12 +88,10 @@ class DetailContactFragment : GenericFragment<ContactDetailFragmentBinding>() {
viewModel.chatRoomCreatedEvent.observe(viewLifecycleOwner, { viewModel.chatRoomCreatedEvent.observe(viewLifecycleOwner, {
it.consume { chatRoom -> it.consume { chatRoom ->
if (findNavController().currentDestination?.id == R.id.detailContactFragment) { val args = Bundle()
val args = Bundle() args.putString("LocalSipUri", chatRoom.localAddress.asStringUriOnly())
args.putString("LocalSipUri", chatRoom.localAddress.asStringUriOnly()) args.putString("RemoteSipUri", chatRoom.peerAddress.asStringUriOnly())
args.putString("RemoteSipUri", chatRoom.peerAddress.asStringUriOnly()) navigateToChatRooms(args)
navigateToChatRooms(args)
}
} }
}) })
@ -103,9 +101,7 @@ class DetailContactFragment : GenericFragment<ContactDetailFragmentBinding>() {
binding.back.visibility = if (resources.getBoolean(R.bool.isTablet)) View.INVISIBLE else View.VISIBLE binding.back.visibility = if (resources.getBoolean(R.bool.isTablet)) View.INVISIBLE else View.VISIBLE
binding.setEditClickListener { binding.setEditClickListener {
if (findNavController().currentDestination?.id == R.id.detailContactFragment) { navigateToContactEditor()
navigateToContactEditor()
}
} }
binding.setDeleteClickListener { binding.setDeleteClickListener {

View file

@ -104,12 +104,10 @@ class DetailCallLogFragment : GenericFragment<HistoryDetailFragmentBinding>() {
viewModel.chatRoomCreatedEvent.observe(viewLifecycleOwner, { viewModel.chatRoomCreatedEvent.observe(viewLifecycleOwner, {
it.consume { chatRoom -> it.consume { chatRoom ->
if (findNavController().currentDestination?.id == R.id.detailCallLogFragment) { val args = Bundle()
val args = Bundle() args.putString("LocalSipUri", chatRoom.localAddress.asStringUriOnly())
args.putString("LocalSipUri", chatRoom.localAddress.asStringUriOnly()) args.putString("RemoteSipUri", chatRoom.peerAddress.asStringUriOnly())
args.putString("RemoteSipUri", chatRoom.peerAddress.asStringUriOnly()) navigateToChatRooms(args)
navigateToChatRooms(args)
}
} }
}) })

View file

@ -56,17 +56,15 @@ class AccountSettingsFragment : GenericFragment<SettingsAccountFragmentBinding>(
viewModel.linkPhoneNumberEvent.observe(viewLifecycleOwner, { viewModel.linkPhoneNumberEvent.observe(viewLifecycleOwner, {
it.consume { it.consume {
if (findNavController().currentDestination?.id == R.id.accountSettingsFragment) { val authInfo = viewModel.proxyConfig.findAuthInfo()
val authInfo = viewModel.proxyConfig.findAuthInfo() if (authInfo == null) {
if (authInfo == null) { Log.e("[Account Settings] Failed to find auth info for proxy config ${viewModel.proxyConfig}")
Log.e("[Account Settings] Failed to find auth info for proxy config ${viewModel.proxyConfig}") } else {
} else { val args = Bundle()
val args = Bundle() args.putString("Username", authInfo.username)
args.putString("Username", authInfo.username) args.putString("Password", authInfo.password)
args.putString("Password", authInfo.password) args.putString("HA1", authInfo.ha1)
args.putString("HA1", authInfo.ha1) navigateToPhoneLinking(args)
navigateToPhoneLinking(args)
}
} }
} }
}) })