Moved all fragments' transitions' animations out of navigation xml files and into Navigation.kt

This commit is contained in:
Sylvain Berfini 2020-10-26 14:03:50 +01:00
parent d216eaeef7
commit 1f13dbc193
25 changed files with 429 additions and 447 deletions

View file

@ -30,6 +30,8 @@ import org.linphone.R
import org.linphone.activities.assistant.viewmodels.AccountLoginViewModel
import org.linphone.activities.assistant.viewmodels.AccountLoginViewModelFactory
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.activities.main.navigateToEchoCancellerCalibration
import org.linphone.activities.main.navigateToPhoneAccountValidation
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.databinding.AssistantAccountLoginFragmentBinding
import org.linphone.utils.DialogUtils
@ -77,7 +79,7 @@ class AccountLoginFragment : AbstractPhoneFragment<AssistantAccountLoginFragment
val args = Bundle()
args.putBoolean("IsLogin", true)
args.putString("PhoneNumber", viewModel.accountCreator.phoneNumber)
findNavController().navigate(R.id.action_accountLoginFragment_to_phoneAccountValidationFragment, args)
navigateToPhoneAccountValidation(args)
}
}
})
@ -86,7 +88,7 @@ class AccountLoginFragment : AbstractPhoneFragment<AssistantAccountLoginFragment
it.consume {
if (coreContext.core.isEchoCancellerCalibrationRequired) {
if (findNavController().currentDestination?.id == R.id.accountLoginFragment) {
findNavController().navigate(R.id.action_accountLoginFragment_to_echoCancellerCalibrationFragment)
navigateToEchoCancellerCalibration()
}
} else {
requireActivity().finish()

View file

@ -27,6 +27,7 @@ import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.EmailAccountCreationViewModel
import org.linphone.activities.assistant.viewmodels.EmailAccountCreationViewModelFactory
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.activities.main.navigateToEmailAccountValidation
import org.linphone.databinding.AssistantEmailAccountCreationFragmentBinding
class EmailAccountCreationFragment : GenericFragment<AssistantEmailAccountCreationFragmentBinding>() {
@ -50,7 +51,7 @@ class EmailAccountCreationFragment : GenericFragment<AssistantEmailAccountCreati
viewModel.goToEmailValidationEvent.observe(viewLifecycleOwner, {
it.consume {
if (findNavController().currentDestination?.id == R.id.emailAccountCreationFragment) {
findNavController().navigate(R.id.action_emailAccountCreationFragment_to_emailAccountValidationFragment)
navigateToEmailAccountValidation()
}
}
})

View file

@ -25,6 +25,7 @@ import androidx.navigation.fragment.findNavController
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.*
import org.linphone.activities.main.navigateToAccountLinking
import org.linphone.databinding.AssistantEmailAccountValidationFragmentBinding
class EmailAccountValidationFragment : GenericFragment<AssistantEmailAccountValidationFragmentBinding>() {
@ -52,7 +53,7 @@ class EmailAccountValidationFragment : GenericFragment<AssistantEmailAccountVali
args.putBoolean("AllowSkip", true)
args.putString("Username", viewModel.accountCreator.username)
args.putString("Password", viewModel.accountCreator.password)
findNavController().navigate(R.id.action_emailAccountValidationFragment_to_phoneAccountLinkingFragment, args)
navigateToAccountLinking(args)
}
}
})

View file

@ -29,6 +29,7 @@ import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.GenericLoginViewModel
import org.linphone.activities.assistant.viewmodels.GenericLoginViewModelFactory
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.activities.main.navigateToEchoCancellerCalibration
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.databinding.AssistantGenericAccountLoginFragmentBinding
import org.linphone.utils.DialogUtils
@ -55,7 +56,7 @@ class GenericAccountLoginFragment : GenericFragment<AssistantGenericAccountLogin
it.consume {
if (coreContext.core.isEchoCancellerCalibrationRequired) {
if (findNavController().currentDestination?.id == R.id.genericAccountLoginFragment) {
findNavController().navigate(R.id.action_genericAccountLoginFragment_to_echoCancellerCalibrationFragment)
navigateToEchoCancellerCalibration()
}
} else {
requireActivity().finish()

View file

@ -26,6 +26,7 @@ import org.linphone.R
import org.linphone.activities.assistant.viewmodels.PhoneAccountCreationViewModel
import org.linphone.activities.assistant.viewmodels.PhoneAccountCreationViewModelFactory
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.activities.main.navigateToPhoneAccountValidation
import org.linphone.databinding.AssistantPhoneAccountCreationFragmentBinding
class PhoneAccountCreationFragment : AbstractPhoneFragment<AssistantPhoneAccountCreationFragmentBinding>() {
@ -60,7 +61,7 @@ class PhoneAccountCreationFragment : AbstractPhoneFragment<AssistantPhoneAccount
val args = Bundle()
args.putBoolean("IsCreation", true)
args.putString("PhoneNumber", viewModel.accountCreator.phoneNumber)
findNavController().navigate(R.id.action_phoneAccountCreationFragment_to_phoneAccountValidationFragment, args)
navigateToPhoneAccountValidation(args)
}
}
})

View file

@ -25,6 +25,8 @@ import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication
import org.linphone.R
import org.linphone.activities.assistant.viewmodels.*
import org.linphone.activities.main.navigateToEchoCancellerCalibration
import org.linphone.activities.main.navigateToPhoneAccountValidation
import org.linphone.core.tools.Log
import org.linphone.databinding.AssistantPhoneAccountLinkingFragmentBinding
@ -74,7 +76,7 @@ class PhoneAccountLinkingFragment : AbstractPhoneFragment<AssistantPhoneAccountL
val args = Bundle()
args.putBoolean("IsLinking", true)
args.putString("PhoneNumber", viewModel.accountCreator.phoneNumber)
findNavController().navigate(R.id.action_phoneAccountLinkingFragment_to_phoneAccountValidationFragment, args)
navigateToPhoneAccountValidation(args)
}
}
})
@ -84,7 +86,7 @@ class PhoneAccountLinkingFragment : AbstractPhoneFragment<AssistantPhoneAccountL
if (findNavController().currentDestination?.id == R.id.phoneAccountLinkingFragment) {
if (LinphoneApplication.coreContext.core.isEchoCancellerCalibrationRequired) {
if (findNavController().currentDestination?.id == R.id.phoneAccountValidationFragment) {
findNavController().navigate(R.id.action_phoneAccountLinkingFragment_to_echoCancellerCalibrationFragment)
navigateToEchoCancellerCalibration()
}
} else {
requireActivity().finish()

View file

@ -30,6 +30,8 @@ import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.PhoneAccountValidationViewModel
import org.linphone.activities.assistant.viewmodels.PhoneAccountValidationViewModelFactory
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.activities.main.navigateToAccountSettings
import org.linphone.activities.main.navigateToEchoCancellerCalibration
import org.linphone.databinding.AssistantPhoneAccountValidationFragmentBinding
class PhoneAccountValidationFragment : GenericFragment<AssistantPhoneAccountValidationFragmentBinding>() {
@ -61,7 +63,7 @@ class PhoneAccountValidationFragment : GenericFragment<AssistantPhoneAccountVali
viewModel.isLogin.value == true || viewModel.isCreation.value == true -> {
if (coreContext.core.isEchoCancellerCalibrationRequired) {
if (findNavController().currentDestination?.id == R.id.phoneAccountValidationFragment) {
findNavController().navigate(R.id.action_phoneAccountValidationFragment_to_echoCancellerCalibrationFragment)
navigateToEchoCancellerCalibration()
}
} else {
requireActivity().finish()
@ -71,7 +73,7 @@ class PhoneAccountValidationFragment : GenericFragment<AssistantPhoneAccountVali
if (findNavController().currentDestination?.id == R.id.phoneAccountValidationFragment) {
val args = Bundle()
args.putString("Identity", "sip:${viewModel.accountCreator.username}@${viewModel.accountCreator.domain}")
findNavController().navigate(R.id.action_phoneAccountValidationFragment_to_accountSettingsFragment, args)
navigateToAccountSettings(args)
}
}
}

View file

@ -28,6 +28,8 @@ import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.AssistantActivity
import org.linphone.activities.assistant.viewmodels.RemoteProvisioningViewModel
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.activities.main.navigateToEchoCancellerCalibration
import org.linphone.activities.main.navigateToQrCode
import org.linphone.databinding.AssistantRemoteProvisioningFragmentBinding
class RemoteProvisioningFragment : GenericFragment<AssistantRemoteProvisioningFragmentBinding>() {
@ -50,7 +52,7 @@ class RemoteProvisioningFragment : GenericFragment<AssistantRemoteProvisioningFr
binding.setQrCodeClickListener {
if (findNavController().currentDestination?.id == R.id.remoteProvisioningFragment) {
findNavController().navigate(R.id.action_remoteProvisioningFragment_to_qrCodeFragment)
navigateToQrCode()
}
}
@ -59,7 +61,7 @@ class RemoteProvisioningFragment : GenericFragment<AssistantRemoteProvisioningFr
if (success) {
if (coreContext.core.isEchoCancellerCalibrationRequired) {
if (findNavController().currentDestination?.id == R.id.remoteProvisioningFragment) {
findNavController().navigate(R.id.action_remoteProvisioningFragment_to_echoCancellerCalibrationFragment)
navigateToEchoCancellerCalibration()
}
} else {
requireActivity().finish()

View file

@ -25,6 +25,11 @@ import androidx.navigation.fragment.findNavController
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.WelcomeViewModel
import org.linphone.activities.main.*
import org.linphone.activities.main.navigateToAccountLogin
import org.linphone.activities.main.navigateToEmailAccountCreation
import org.linphone.activities.main.navigateToGenericLogin
import org.linphone.activities.main.navigateToRemoteProvisioning
import org.linphone.databinding.AssistantWelcomeFragmentBinding
class WelcomeFragment : GenericFragment<AssistantWelcomeFragmentBinding>() {
@ -43,28 +48,28 @@ class WelcomeFragment : GenericFragment<AssistantWelcomeFragmentBinding>() {
binding.setCreateAccountClickListener {
if (findNavController().currentDestination?.id == R.id.welcomeFragment) {
if (resources.getBoolean(R.bool.isTablet)) {
findNavController().navigate(R.id.action_welcomeFragment_to_emailAccountCreationFragment)
navigateToEmailAccountCreation()
} else {
findNavController().navigate(R.id.action_welcomeFragment_to_phoneAccountCreationFragment)
navigateToPhoneAccountCreation()
}
}
}
binding.setAccountLoginClickListener {
if (findNavController().currentDestination?.id == R.id.welcomeFragment) {
findNavController().navigate(R.id.action_welcomeFragment_to_accountLoginFragment)
navigateToAccountLogin()
}
}
binding.setGenericAccountLoginClickListener {
if (findNavController().currentDestination?.id == R.id.welcomeFragment) {
findNavController().navigate(R.id.action_welcomeFragment_to_genericAccountLoginFragment)
navigateToGenericLogin()
}
}
binding.setRemoteProvisioningClickListener {
if (findNavController().currentDestination?.id == R.id.welcomeFragment) {
findNavController().navigate(R.id.action_welcomeFragment_to_remoteProvisioningFragment)
navigateToRemoteProvisioning()
}
}
}

View file

@ -207,10 +207,7 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin
Log.i("[Main Activity] Starting dialer with pre-filled URI $addressToCall")
val args = Bundle()
args.putString("URI", addressToCall)
findNavController(R.id.nav_host_fragment).navigate(
R.id.action_global_dialerFragment,
args
)
navigateToDialer(args)
}
}
else -> {
@ -237,10 +234,7 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin
Log.i("[Main Activity] Found dialer intent extra, go to dialer")
val args = Bundle()
args.putBoolean("Transfer", intent.getBooleanExtra("Transfer", false))
findNavController(R.id.nav_host_fragment).navigate(
R.id.action_global_dialerFragment,
args
)
navigateToDialer(args)
}
}
}

View file

@ -25,15 +25,22 @@ import androidx.core.os.bundleOf
import androidx.fragment.app.Fragment
import androidx.navigation.NavController
import androidx.navigation.NavOptions
import androidx.navigation.findNavController
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.fragment.findNavController
import org.linphone.R
import org.linphone.activities.assistant.fragments.*
import org.linphone.activities.main.chat.fragments.ChatRoomCreationFragment
import org.linphone.activities.main.chat.fragments.DetailChatRoomFragment
import org.linphone.activities.main.chat.fragments.GroupInfoFragment
import org.linphone.activities.main.chat.fragments.MasterChatRoomsFragment
import org.linphone.activities.main.contact.fragments.ContactEditorFragment
import org.linphone.activities.main.contact.fragments.DetailContactFragment
import org.linphone.activities.main.contact.fragments.MasterContactsFragment
import org.linphone.activities.main.fragments.TabsFragment
import org.linphone.activities.main.history.fragments.DetailCallLogFragment
import org.linphone.activities.main.history.fragments.MasterCallLogsFragment
import org.linphone.activities.main.settings.fragments.AccountSettingsFragment
import org.linphone.activities.main.settings.fragments.SettingsFragment
import org.linphone.activities.main.sidemenu.fragments.SideMenuFragment
import org.linphone.contact.NativeContact
@ -65,12 +72,70 @@ fun getLeftToRightAnimationNavOptions(): NavOptions {
.build()
}
fun getRightToLeftNoPopAnimationNavOptions(): NavOptions {
return NavOptions.Builder()
.setEnterAnim(R.anim.enter_right)
.setExitAnim(R.anim.exit_left)
.build()
}
fun getLeftToRightNoPopAnimationNavOptions(): NavOptions {
return NavOptions.Builder()
.setEnterAnim(R.anim.enter_left)
.setExitAnim(R.anim.exit_right)
.build()
}
/* Main activity related */
internal fun MainActivity.navigateToDialer(args: Bundle?) {
findNavController(R.id.nav_host_fragment).navigate(
R.id.action_global_dialerFragment,
args,
getRightToLeftAnimationNavOptions()
)
}
/* Tabs fragment related */
internal fun TabsFragment.navigateToCallHistory() {
when (findNavController().currentDestination?.id) {
R.id.masterContactsFragment -> findNavController().navigate(R.id.action_masterContactsFragment_to_masterCallLogsFragment, 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() {
when (findNavController().currentDestination?.id) {
R.id.masterCallLogsFragment -> findNavController().navigate(R.id.action_masterCallLogsFragment_to_masterContactsFragment, 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() {
when (findNavController().currentDestination?.id) {
R.id.masterCallLogsFragment -> findNavController().navigate(R.id.action_masterCallLogsFragment_to_dialerFragment, 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() {
when (findNavController().currentDestination?.id) {
R.id.masterCallLogsFragment -> findNavController().navigate(R.id.action_masterCallLogsFragment_to_masterChatRoomsFragment, 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())
}
}
/* Chat related */
internal fun MasterChatRoomsFragment.navigateToChatRoom() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.masterChatRoomsFragment) {
findNavController().navigate(R.id.action_masterChatRoomsFragment_to_detailChatRoomFragment)
findNavController().navigate(R.id.action_masterChatRoomsFragment_to_detailChatRoomFragment, null, getRightToLeftAnimationNavOptions())
}
} else {
val navHostFragment =
@ -87,7 +152,8 @@ internal fun MasterChatRoomsFragment.navigateToChatRoomCreation(
if (findNavController().currentDestination?.id == R.id.masterChatRoomsFragment) {
findNavController().navigate(
R.id.action_masterChatRoomsFragment_to_chatRoomCreationFragment,
bundle
bundle,
getRightToLeftAnimationNavOptions()
)
}
} else {
@ -107,17 +173,59 @@ internal fun DetailChatRoomFragment.navigateToChatRooms() {
findMasterNavController().navigate(Uri.parse(deepLink), getLeftToRightAnimationNavOptions())
}
internal fun DetailChatRoomFragment.navigateToImdn(args: Bundle?) {
findNavController().navigate(R.id.action_detailChatRoomFragment_to_imdnFragment, args, getRightToLeftAnimationNavOptions())
}
internal fun DetailChatRoomFragment.navigateToDevices() {
findNavController().navigate(R.id.action_detailChatRoomFragment_to_devicesFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun DetailChatRoomFragment.navigateToGroupInfo() {
findNavController().navigate(R.id.action_detailChatRoomFragment_to_groupInfoFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun DetailChatRoomFragment.navigateToEphemeralInfo() {
findNavController().navigate(R.id.action_detailChatRoomFragment_to_ephemeralFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun ChatRoomCreationFragment.navigateToGroupInfo(args: Bundle?) {
if (findNavController().currentDestination?.id == R.id.chatRoomCreationFragment) {
findNavController().navigate(R.id.action_chatRoomCreationFragment_to_groupInfoFragment, args, getRightToLeftAnimationNavOptions())
}
}
internal fun ChatRoomCreationFragment.navigateToChatRoom() {
if (findNavController().currentDestination?.id == R.id.chatRoomCreationFragment) {
findNavController().navigate(R.id.action_chatRoomCreationFragment_to_detailChatRoomFragment, null, getRightToLeftAnimationNavOptions())
}
}
internal fun GroupInfoFragment.navigateToChatRoomCreation(args: Bundle?) {
if (findNavController().currentDestination?.id == R.id.groupInfoFragment) {
findNavController().navigate(R.id.action_groupInfoFragment_to_chatRoomCreationFragment, args, getLeftToRightAnimationNavOptions())
}
}
internal fun GroupInfoFragment.navigateToChatRoom() {
if (findNavController().currentDestination?.id == R.id.groupInfoFragment) {
findNavController().navigate(R.id.action_groupInfoFragment_to_detailChatRoomFragment, null, getRightToLeftAnimationNavOptions())
}
}
/* Contacts related */
internal fun MasterContactsFragment.navigateToContact() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.masterContactsFragment) {
findNavController().navigate(R.id.action_masterContactsFragment_to_detailContactFragment)
findNavController().navigate(R.id.action_masterContactsFragment_to_detailContactFragment,
null,
getRightToLeftAnimationNavOptions())
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.contacts_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_detailContactFragment)
navHostFragment.navController.navigate(R.id.action_global_detailContactFragment, null, getRightToLeftAnimationNavOptions())
}
}
@ -125,7 +233,7 @@ internal fun MasterContactsFragment.navigateToContactEditor(sipUriToAdd: String?
val bundle = if (sipUriToAdd != null) bundleOf("SipUri" to sipUriToAdd) else Bundle()
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.masterContactsFragment) {
findNavController().navigate(R.id.action_masterContactsFragment_to_contactEditorFragment, bundle)
findNavController().navigate(R.id.action_masterContactsFragment_to_contactEditorFragment, bundle, getRightToLeftAnimationNavOptions())
}
} else {
val navHostFragment =
@ -143,12 +251,30 @@ internal fun ContactEditorFragment.navigateToContact(contact: NativeContact) {
}
}
internal fun DetailContactFragment.navigateToChatRooms(args: Bundle?) {
findNavController().navigate(R.id.action_global_masterChatRoomsFragment, args, getRightToLeftAnimationNavOptions())
}
internal fun DetailContactFragment.navigateToDialer(args: Bundle?) {
findNavController().navigate(
R.id.action_global_dialerFragment,
args,
getRightToLeftAnimationNavOptions()
)
}
internal fun DetailContactFragment.navigateToContactEditor() {
findNavController().navigate(R.id.action_detailContactFragment_to_contactEditorFragment, null, getRightToLeftAnimationNavOptions())
}
/* History related */
internal fun MasterCallLogsFragment.navigateToCallHistory() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.masterCallLogsFragment) {
findNavController().navigate(R.id.action_masterCallLogsFragment_to_detailCallLogFragment)
findNavController().navigate(R.id.action_masterCallLogsFragment_to_detailCallLogFragment,
null,
getRightToLeftAnimationNavOptions())
}
} else {
val navHostFragment =
@ -157,6 +283,14 @@ internal fun MasterCallLogsFragment.navigateToCallHistory() {
}
}
internal fun MasterCallLogsFragment.navigateToDialer(args: Bundle?) {
findNavController().navigate(
R.id.action_global_dialerFragment,
args,
getRightToLeftAnimationNavOptions()
)
}
internal fun DetailCallLogFragment.navigateToContacts(sipUriToAdd: String) {
val deepLink = "linphone-android://contact/new/$sipUriToAdd"
findMasterNavController().navigate(Uri.parse(deepLink), getRightToLeftAnimationNavOptions())
@ -172,8 +306,147 @@ internal fun DetailCallLogFragment.navigateToFriend(friendAddress: Address) {
findMasterNavController().navigate(Uri.parse(deepLink), getRightToLeftAnimationNavOptions())
}
internal fun DetailCallLogFragment.navigateToChatRooms(args: Bundle?) {
findNavController().navigate(R.id.action_global_masterChatRoomsFragment, args, getRightToLeftAnimationNavOptions())
}
internal fun DetailCallLogFragment.navigateToDialer(args: Bundle?) {
findNavController().navigate(
R.id.action_global_dialerFragment,
args,
getRightToLeftAnimationNavOptions()
)
}
/* Settings related */
internal fun SettingsFragment.navigateToAccountSettings(identity: String) {
val bundle = bundleOf("Identity" to identity)
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(
R.id.action_settingsFragment_to_accountSettingsFragment,
bundle,
getRightToLeftAnimationNavOptions()
)
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_accountSettingsFragment, bundle)
}
}
internal fun SettingsFragment.navigateToTunnelSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_tunnelSettingsFragment, null, getRightToLeftAnimationNavOptions())
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_tunnelSettingsFragment)
}
}
internal fun SettingsFragment.navigateToAudioSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_audioSettingsFragment, null, getRightToLeftAnimationNavOptions())
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_audioSettingsFragment)
}
}
internal fun SettingsFragment.navigateToVideoSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_videoSettingsFragment, null, getRightToLeftAnimationNavOptions())
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_videoSettingsFragment)
}
}
internal fun SettingsFragment.navigateToCallSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_callSettingsFragment, null, getRightToLeftAnimationNavOptions())
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_callSettingsFragment)
}
}
internal fun SettingsFragment.navigateToChatSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_chatSettingsFragment, null, getRightToLeftAnimationNavOptions())
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_chatSettingsFragment)
}
}
internal fun SettingsFragment.navigateToNetworkSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_networkSettingsFragment, null, getRightToLeftAnimationNavOptions())
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_networkSettingsFragment)
}
}
internal fun SettingsFragment.navigateToContactsSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_contactsSettingsFragment, null, getRightToLeftAnimationNavOptions())
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_contactsSettingsFragment)
}
}
internal fun SettingsFragment.navigateToAdvancedSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_advancedSettingsFragment, null, getRightToLeftAnimationNavOptions())
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_advancedSettingsFragment)
}
}
internal fun AccountSettingsFragment.navigateToPhoneLinking(args: Bundle?) {
findNavController().navigate(
R.id.action_accountSettingsFragment_to_phoneAccountLinkingFragment,
args,
getRightToLeftAnimationNavOptions()
)
}
internal fun PhoneAccountLinkingFragment.navigateToPhoneAccountValidation(args: Bundle?) {
findNavController().navigate(R.id.action_phoneAccountLinkingFragment_to_phoneAccountValidationFragment, args, getRightToLeftAnimationNavOptions())
}
/* Side menu related */
internal fun SideMenuFragment.navigateToAccountSettings(identity: String) {
if (!resources.getBoolean(R.bool.isTablet)) {
// If not a tablet, navigate directly to account settings fragment
@ -186,114 +459,80 @@ internal fun SideMenuFragment.navigateToAccountSettings(identity: String) {
}
}
internal fun SettingsFragment.navigateToAccountSettings(identity: String) {
val bundle = bundleOf("Identity" to identity)
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(
R.id.action_settingsFragment_to_accountSettingsFragment,
bundle
)
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_accountSettingsFragment, bundle)
}
internal fun SideMenuFragment.navigateToSettings() {
findNavController().navigate(R.id.action_global_settingsFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun SettingsFragment.navigateToTunnelSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_tunnelSettingsFragment)
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_tunnelSettingsFragment)
}
internal fun SideMenuFragment.navigateToAbout() {
findNavController().navigate(R.id.action_global_aboutFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun SettingsFragment.navigateToAudioSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_audioSettingsFragment)
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_audioSettingsFragment)
}
internal fun SideMenuFragment.navigateToRecordings() {
findNavController().navigate(R.id.action_global_recordingsFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun SettingsFragment.navigateToVideoSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_videoSettingsFragment)
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_videoSettingsFragment)
}
/* Assistant related */
internal fun WelcomeFragment.navigateToEmailAccountCreation() {
findNavController().navigate(R.id.action_welcomeFragment_to_emailAccountCreationFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun SettingsFragment.navigateToCallSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_callSettingsFragment)
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_callSettingsFragment)
}
internal fun WelcomeFragment.navigateToPhoneAccountCreation() {
findNavController().navigate(R.id.action_welcomeFragment_to_phoneAccountCreationFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun SettingsFragment.navigateToChatSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_chatSettingsFragment)
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_chatSettingsFragment)
}
internal fun WelcomeFragment.navigateToAccountLogin() {
findNavController().navigate(R.id.action_welcomeFragment_to_accountLoginFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun SettingsFragment.navigateToNetworkSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_networkSettingsFragment)
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_networkSettingsFragment)
}
internal fun WelcomeFragment.navigateToGenericLogin() {
findNavController().navigate(R.id.action_welcomeFragment_to_genericAccountLoginFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun SettingsFragment.navigateToContactsSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_contactsSettingsFragment)
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_contactsSettingsFragment)
}
internal fun WelcomeFragment.navigateToRemoteProvisioning() {
findNavController().navigate(R.id.action_welcomeFragment_to_remoteProvisioningFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun SettingsFragment.navigateToAdvancedSettings() {
if (!resources.getBoolean(R.bool.isTablet)) {
if (findNavController().currentDestination?.id == R.id.settingsFragment) {
findNavController().navigate(R.id.action_settingsFragment_to_advancedSettingsFragment)
internal fun AccountLoginFragment.navigateToEchoCancellerCalibration() {
findNavController().navigate(R.id.action_accountLoginFragment_to_echoCancellerCalibrationFragment, null, getRightToLeftAnimationNavOptions())
}
} else {
val navHostFragment =
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
navHostFragment.navController.navigate(R.id.action_global_advancedSettingsFragment)
internal fun AccountLoginFragment.navigateToPhoneAccountValidation(args: Bundle?) {
findNavController().navigate(R.id.action_accountLoginFragment_to_phoneAccountValidationFragment, args, getRightToLeftAnimationNavOptions())
}
internal fun GenericAccountLoginFragment.navigateToEchoCancellerCalibration() {
findNavController().navigate(R.id.action_genericAccountLoginFragment_to_echoCancellerCalibrationFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun RemoteProvisioningFragment.navigateToQrCode() {
findNavController().navigate(R.id.action_remoteProvisioningFragment_to_qrCodeFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun RemoteProvisioningFragment.navigateToEchoCancellerCalibration() {
findNavController().navigate(R.id.action_remoteProvisioningFragment_to_echoCancellerCalibrationFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun EmailAccountCreationFragment.navigateToEmailAccountValidation() {
findNavController().navigate(R.id.action_emailAccountCreationFragment_to_emailAccountValidationFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun EmailAccountValidationFragment.navigateToAccountLinking(args: Bundle?) {
findNavController().navigate(R.id.action_emailAccountValidationFragment_to_phoneAccountLinkingFragment, args, getRightToLeftAnimationNavOptions())
}
internal fun PhoneAccountCreationFragment.navigateToPhoneAccountValidation(args: Bundle?) {
findNavController().navigate(R.id.action_phoneAccountCreationFragment_to_phoneAccountValidationFragment, args, getRightToLeftAnimationNavOptions())
}
internal fun PhoneAccountValidationFragment.navigateToAccountSettings(args: Bundle?) {
findNavController().navigate(R.id.action_phoneAccountValidationFragment_to_accountSettingsFragment, args, getLeftToRightAnimationNavOptions())
}
internal fun PhoneAccountValidationFragment.navigateToEchoCancellerCalibration() {
findNavController().navigate(R.id.action_phoneAccountValidationFragment_to_echoCancellerCalibrationFragment, null, getRightToLeftAnimationNavOptions())
}
internal fun PhoneAccountLinkingFragment.navigateToEchoCancellerCalibration() {
findNavController().navigate(R.id.action_phoneAccountLinkingFragment_to_echoCancellerCalibrationFragment, null, getRightToLeftAnimationNavOptions())
}

View file

@ -32,6 +32,8 @@ import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.chat.adapters.ChatRoomCreationContactsAdapter
import org.linphone.activities.main.chat.viewmodels.ChatRoomCreationViewModel
import org.linphone.activities.main.fragments.SecureFragment
import org.linphone.activities.main.navigateToChatRoom
import org.linphone.activities.main.navigateToGroupInfo
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.core.Address
import org.linphone.core.tools.Log
@ -108,9 +110,7 @@ class ChatRoomCreationFragment : SecureFragment<ChatRoomCreationFragmentBinding>
viewModel.chatRoomCreatedEvent.observe(viewLifecycleOwner, {
it.consume { chatRoom ->
sharedViewModel.selectedChatRoom.value = chatRoom
if (findNavController().currentDestination?.id == R.id.chatRoomCreationFragment) {
findNavController().navigate(R.id.action_chatRoomCreationFragment_to_detailChatRoomFragment)
}
navigateToChatRoom()
}
})
@ -133,12 +133,9 @@ class ChatRoomCreationFragment : SecureFragment<ChatRoomCreationFragmentBinding>
// Next button is only used to go to group chat info fragment
binding.setNextClickListener {
sharedViewModel.createEncryptedChatRoom = viewModel.isEncrypted.value == true
if (findNavController().currentDestination?.id == R.id.chatRoomCreationFragment) {
val args = Bundle()
args.putSerializable("participants", viewModel.selectedAddresses.value)
findNavController().navigate(R.id.action_chatRoomCreationFragment_to_groupInfoFragment, args)
}
navigateToGroupInfo(args)
}
viewModel.onErrorEvent.observe(viewLifecycleOwner, {

View file

@ -41,13 +41,14 @@ import kotlinx.coroutines.launch
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.LinphoneApplication.Companion.corePreferences
import org.linphone.R
import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.*
import org.linphone.activities.main.chat.ChatScrollListener
import org.linphone.activities.main.chat.adapters.ChatMessagesListAdapter
import org.linphone.activities.main.chat.viewmodels.*
import org.linphone.activities.main.fragments.MasterFragment
import org.linphone.activities.main.navigateToChatRooms
import org.linphone.activities.main.navigateToContacts
import org.linphone.activities.main.navigateToImdn
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.core.*
@ -184,7 +185,7 @@ class DetailChatRoomFragment : MasterFragment<ChatRoomDetailFragmentBinding, Cha
it.consume { chatMessage ->
val args = Bundle()
args.putString("MessageId", chatMessage.messageId)
findNavController().navigate(R.id.action_detailChatRoomFragment_to_imdnFragment, args)
navigateToImdn(args)
}
})
@ -344,7 +345,7 @@ class DetailChatRoomFragment : MasterFragment<ChatRoomDetailFragmentBinding, Cha
coreContext.startCall(viewModel.onlyParticipantOnlyDeviceAddress, true)
} else {
if (findNavController().currentDestination?.id == R.id.detailChatRoomFragment) {
findNavController().navigate(R.id.action_detailChatRoomFragment_to_devicesFragment)
navigateToDevices()
}
}
@ -357,7 +358,7 @@ class DetailChatRoomFragment : MasterFragment<ChatRoomDetailFragmentBinding, Cha
coreContext.startCall(viewModel.onlyParticipantOnlyDeviceAddress, true)
} else {
if (findNavController().currentDestination?.id == R.id.detailChatRoomFragment) {
findNavController().navigate(R.id.action_detailChatRoomFragment_to_devicesFragment)
navigateToDevices()
}
}
}
@ -366,13 +367,13 @@ class DetailChatRoomFragment : MasterFragment<ChatRoomDetailFragmentBinding, Cha
private fun showGroupInfo(chatRoom: ChatRoom) {
sharedViewModel.selectedGroupChatRoom.value = chatRoom
if (findNavController().currentDestination?.id == R.id.detailChatRoomFragment) {
findNavController().navigate(R.id.action_detailChatRoomFragment_to_groupInfoFragment)
navigateToGroupInfo()
}
}
private fun showEphemeralMessages() {
if (findNavController().currentDestination?.id == R.id.detailChatRoomFragment) {
findNavController().navigate(R.id.action_detailChatRoomFragment_to_ephemeralFragment)
navigateToEphemeralInfo()
}
}

View file

@ -32,6 +32,8 @@ import org.linphone.activities.main.chat.adapters.GroupInfoParticipantsAdapter
import org.linphone.activities.main.chat.viewmodels.GroupInfoViewModel
import org.linphone.activities.main.chat.viewmodels.GroupInfoViewModelFactory
import org.linphone.activities.main.fragments.SecureFragment
import org.linphone.activities.main.navigateToChatRoom
import org.linphone.activities.main.navigateToChatRoomCreation
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.core.Address
@ -111,7 +113,7 @@ class GroupInfoFragment : SecureFragment<ChatRoomGroupInfoFragmentBinding>() {
viewModel.createdChatRoomEvent.observe(viewLifecycleOwner, {
it.consume { chatRoom ->
sharedViewModel.selectedChatRoom.value = chatRoom
goToChatRoom()
navigateToChatRoom()
}
})
@ -126,18 +128,14 @@ class GroupInfoFragment : SecureFragment<ChatRoomGroupInfoFragmentBinding>() {
binding.setParticipantsClickListener {
sharedViewModel.createEncryptedChatRoom = viewModel.isEncrypted.value == true
if (findNavController().currentDestination?.id == R.id.groupInfoFragment) {
val args = Bundle()
args.putBoolean("createGroup", true)
val list = arrayListOf<Address>()
for (participant in viewModel.participants.value.orEmpty()) {
list.add(participant.address)
}
args.putSerializable("participants", list)
findNavController().navigate(R.id.action_groupInfoFragment_to_chatRoomCreationFragment, args)
}
navigateToChatRoomCreation(args)
}
binding.setLeaveClickListener {
@ -185,12 +183,6 @@ class GroupInfoFragment : SecureFragment<ChatRoomGroupInfoFragmentBinding>() {
}
}
private fun goToChatRoom() {
if (findNavController().currentDestination?.id == R.id.groupInfoFragment) {
findNavController().navigate(R.id.action_groupInfoFragment_to_detailChatRoomFragment)
}
}
private fun showMeAdminStateChanged(isMeAdmin: Boolean) {
meAdminStatusChangedDialog?.dismiss()

View file

@ -32,6 +32,9 @@ import org.linphone.activities.GenericFragment
import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.contact.viewmodels.ContactViewModel
import org.linphone.activities.main.contact.viewmodels.ContactViewModelFactory
import org.linphone.activities.main.navigateToChatRooms
import org.linphone.activities.main.navigateToContactEditor
import org.linphone.activities.main.navigateToDialer
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.core.tools.Log
@ -76,10 +79,7 @@ class DetailContactFragment : GenericFragment<ContactDetailFragmentBinding>() {
args.putString("URI", address.asStringUriOnly())
args.putBoolean("Transfer", sharedViewModel.pendingCallTransfer)
args.putBoolean("SkipAutoCallStart", true) // If auto start call setting is enabled, ignore it
findNavController().navigate(
R.id.action_global_dialerFragment,
args
)
navigateToDialer(args)
} else {
coreContext.startCall(address)
}
@ -92,7 +92,7 @@ class DetailContactFragment : GenericFragment<ContactDetailFragmentBinding>() {
val args = Bundle()
args.putString("LocalSipUri", chatRoom.localAddress.asStringUriOnly())
args.putString("RemoteSipUri", chatRoom.peerAddress.asStringUriOnly())
findNavController().navigate(R.id.action_global_masterChatRoomsFragment, args)
navigateToChatRooms(args)
}
}
})
@ -104,7 +104,7 @@ class DetailContactFragment : GenericFragment<ContactDetailFragmentBinding>() {
binding.setEditClickListener {
if (findNavController().currentDestination?.id == R.id.detailContactFragment) {
findNavController().navigate(R.id.action_detailContactFragment_to_contactEditorFragment)
navigateToContactEditor()
}
}

View file

@ -28,6 +28,10 @@ import androidx.navigation.NavDestination
import androidx.navigation.fragment.findNavController
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.navigateToCallHistory
import org.linphone.activities.main.navigateToChatRooms
import org.linphone.activities.main.navigateToContacts
import org.linphone.activities.main.navigateToDialer
import org.linphone.activities.main.viewmodels.TabsViewModel
import org.linphone.databinding.TabsFragmentBinding
@ -51,35 +55,19 @@ class TabsFragment : GenericFragment<TabsFragmentBinding>(), NavController.OnDes
binding.viewModel = viewModel
binding.setHistoryClickListener {
when (findNavController().currentDestination?.id) {
R.id.masterContactsFragment -> findNavController().navigate(R.id.action_masterContactsFragment_to_masterCallLogsFragment)
R.id.dialerFragment -> findNavController().navigate(R.id.action_dialerFragment_to_masterCallLogsFragment)
R.id.masterChatRoomsFragment -> findNavController().navigate(R.id.action_masterChatRoomsFragment_to_masterCallLogsFragment)
}
navigateToCallHistory()
}
binding.setContactsClickListener {
when (findNavController().currentDestination?.id) {
R.id.masterCallLogsFragment -> findNavController().navigate(R.id.action_masterCallLogsFragment_to_masterContactsFragment)
R.id.dialerFragment -> findNavController().navigate(R.id.action_dialerFragment_to_masterContactsFragment)
R.id.masterChatRoomsFragment -> findNavController().navigate(R.id.action_masterChatRoomsFragment_to_masterContactsFragment)
}
navigateToContacts()
}
binding.setDialerClickListener {
when (findNavController().currentDestination?.id) {
R.id.masterCallLogsFragment -> findNavController().navigate(R.id.action_masterCallLogsFragment_to_dialerFragment)
R.id.masterContactsFragment -> findNavController().navigate(R.id.action_masterContactsFragment_to_dialerFragment)
R.id.masterChatRoomsFragment -> findNavController().navigate(R.id.action_masterChatRoomsFragment_to_dialerFragment)
}
navigateToDialer()
}
binding.setChatClickListener {
when (findNavController().currentDestination?.id) {
R.id.masterCallLogsFragment -> findNavController().navigate(R.id.action_masterCallLogsFragment_to_masterChatRoomsFragment)
R.id.masterContactsFragment -> findNavController().navigate(R.id.action_masterContactsFragment_to_masterChatRoomsFragment)
R.id.dialerFragment -> findNavController().navigate(R.id.action_dialerFragment_to_masterChatRoomsFragment)
}
navigateToChatRooms()
}
bounceAnimator.addUpdateListener {

View file

@ -26,7 +26,7 @@ import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.*
import org.linphone.activities.main.history.viewmodels.CallLogViewModel
import org.linphone.activities.main.history.viewmodels.CallLogViewModelFactory
import org.linphone.activities.main.navigateToContact
@ -95,10 +95,7 @@ class DetailCallLogFragment : GenericFragment<HistoryDetailFragmentBinding>() {
args.putString("URI", address.asStringUriOnly())
args.putBoolean("Transfer", sharedViewModel.pendingCallTransfer)
args.putBoolean("SkipAutoCallStart", true) // If auto start call setting is enabled, ignore it
findNavController().navigate(
R.id.action_global_dialerFragment,
args
)
navigateToDialer(args)
} else {
coreContext.startCall(address)
}
@ -111,7 +108,7 @@ class DetailCallLogFragment : GenericFragment<HistoryDetailFragmentBinding>() {
val args = Bundle()
args.putString("LocalSipUri", chatRoom.localAddress.asStringUriOnly())
args.putString("RemoteSipUri", chatRoom.peerAddress.asStringUriOnly())
findNavController().navigate(R.id.action_global_masterChatRoomsFragment, args)
navigateToChatRooms(args)
}
}
})

View file

@ -23,7 +23,6 @@ import android.app.Dialog
import android.os.Bundle
import androidx.core.content.ContextCompat
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.LinearLayoutManager
@ -35,6 +34,7 @@ import org.linphone.activities.main.history.adapters.CallLogsListAdapter
import org.linphone.activities.main.history.viewmodels.CallLogsListViewModel
import org.linphone.activities.main.history.viewmodels.GroupedCallLogViewModel
import org.linphone.activities.main.navigateToCallHistory
import org.linphone.activities.main.navigateToDialer
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.main.viewmodels.TabsViewModel
@ -166,10 +166,7 @@ class MasterCallLogsFragment : MasterFragment<HistoryMasterFragmentBinding, Call
args.putString("URI", address.asStringUriOnly())
args.putBoolean("Transfer", sharedViewModel.pendingCallTransfer)
args.putBoolean("SkipAutoCallStart", true) // If auto start call setting is enabled, ignore it
findNavController().navigate(
R.id.action_global_dialerFragment,
args
)
navigateToDialer(args)
} else {
coreContext.startCall(address)
}

View file

@ -25,6 +25,7 @@ import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.navigateToPhoneLinking
import org.linphone.activities.main.settings.viewmodels.AccountSettingsViewModel
import org.linphone.activities.main.settings.viewmodels.AccountSettingsViewModelFactory
import org.linphone.activities.main.viewmodels.SharedMainViewModel
@ -64,10 +65,7 @@ class AccountSettingsFragment : GenericFragment<SettingsAccountFragmentBinding>(
args.putString("Username", authInfo.username)
args.putString("Password", authInfo.password)
args.putString("HA1", authInfo.ha1)
findNavController().navigate(
R.id.action_accountSettingsFragment_to_phoneAccountLinkingFragment,
args
)
navigateToPhoneLinking(args)
}
}
}

View file

@ -27,14 +27,16 @@ import android.os.Parcelable
import android.provider.MediaStore
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import java.io.File
import kotlinx.coroutines.launch
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.AssistantActivity
import org.linphone.activities.main.navigateToAbout
import org.linphone.activities.main.navigateToAccountSettings
import org.linphone.activities.main.navigateToRecordings
import org.linphone.activities.main.navigateToSettings
import org.linphone.activities.main.settings.SettingListenerStub
import org.linphone.activities.main.sidemenu.viewmodels.SideMenuViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
@ -91,17 +93,17 @@ class SideMenuFragment : GenericFragment<SideMenuFragmentBinding>() {
binding.setSettingsClickListener {
sharedViewModel.toggleDrawerEvent.value = Event(true)
findNavController().navigate(R.id.action_global_settingsFragment)
navigateToSettings()
}
binding.setRecordingsClickListener {
sharedViewModel.toggleDrawerEvent.value = Event(true)
findNavController().navigate(R.id.action_global_recordingsFragment)
navigateToRecordings()
}
binding.setAboutClickListener {
sharedViewModel.toggleDrawerEvent.value = Event(true)
findNavController().navigate(R.id.action_global_aboutFragment)
navigateToAbout()
}
binding.setQuitClickListener {

View file

@ -12,38 +12,18 @@
android:label="WelcomeFragment" >
<action
android:id="@+id/action_welcomeFragment_to_accountLoginFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/accountLoginFragment" />
<action
android:id="@+id/action_welcomeFragment_to_emailAccountCreationFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/emailAccountCreationFragment" />
<action
android:id="@+id/action_welcomeFragment_to_phoneAccountCreationFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/phoneAccountCreationFragment" />
<action
android:id="@+id/action_welcomeFragment_to_genericAccountLoginFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/genericAccountLoginFragment" />
<action
android:id="@+id/action_welcomeFragment_to_remoteProvisioningFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/remoteProvisioningFragment" />
</fragment>
<fragment
@ -53,17 +33,9 @@
android:label="AccountLoginFragment" >
<action
android:id="@+id/action_accountLoginFragment_to_echoCancellerCalibrationFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/echoCancellerCalibrationFragment" />
<action
android:id="@+id/action_accountLoginFragment_to_phoneAccountValidationFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/phoneAccountValidationFragment" />
</fragment>
<fragment
@ -73,10 +45,6 @@
android:label="GenericAccountLoginFragment" >
<action
android:id="@+id/action_genericAccountLoginFragment_to_echoCancellerCalibrationFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/echoCancellerCalibrationFragment" />
</fragment>
<fragment
@ -86,17 +54,9 @@
android:label="RemoteProvisioningFragment" >
<action
android:id="@+id/action_remoteProvisioningFragment_to_qrCodeFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/qrCodeFragment" />
<action
android:id="@+id/action_remoteProvisioningFragment_to_echoCancellerCalibrationFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/echoCancellerCalibrationFragment" />
</fragment>
<fragment
@ -106,10 +66,6 @@
android:label="EmailAccountCreationFragment" >
<action
android:id="@+id/action_emailAccountCreationFragment_to_emailAccountValidationFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/emailAccountValidationFragment" />
</fragment>
<fragment
@ -119,10 +75,6 @@
android:label="EmailAccountValidationFragment" >
<action
android:id="@+id/action_emailAccountValidationFragment_to_phoneAccountLinkingFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/phoneAccountLinkingFragment" />
</fragment>
<fragment
@ -132,10 +84,6 @@
android:label="PhoneAccountCreationFragment" >
<action
android:id="@+id/action_phoneAccountCreationFragment_to_phoneAccountValidationFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/phoneAccountValidationFragment" />
</fragment>
<fragment
@ -145,10 +93,6 @@
android:label="PhoneAccountValidationFragment" >
<action
android:id="@+id/action_phoneAccountValidationFragment_to_echoCancellerCalibrationFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/echoCancellerCalibrationFragment" />
<argument
android:name="PhoneNumber"
@ -191,10 +135,6 @@
app:nullable="true" />
<action
android:id="@+id/action_phoneAccountLinkingFragment_to_phoneAccountValidationFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/phoneAccountValidationFragment" >
<argument
android:name="IsCreation"
@ -212,10 +152,6 @@
android:defaultValue="false" />
<action
android:id="@+id/action_phoneAccountLinkingFragment_to_echoCancellerCalibrationFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/echoCancellerCalibrationFragment" />
</fragment>
</navigation>

View file

@ -12,31 +12,15 @@
android:label="DetailChatRoomFragment" >
<action
android:id="@+id/action_detailChatRoomFragment_to_imdnFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/imdnFragment" />
<action
android:id="@+id/action_detailChatRoomFragment_to_devicesFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/devicesFragment" />
<action
android:id="@+id/action_detailChatRoomFragment_to_groupInfoFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/groupInfoFragment" />
<action
android:id="@+id/action_detailChatRoomFragment_to_ephemeralFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/ephemeralFragment"
app:launchSingleTop="true"
app:popUpTo="@+id/ephemeralFragment"
@ -54,17 +38,9 @@
android:defaultValue="false" />
<action
android:id="@+id/action_chatRoomCreationFragment_to_groupInfoFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/groupInfoFragment" />
<action
android:id="@+id/action_chatRoomCreationFragment_to_detailChatRoomFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/detailChatRoomFragment"
app:launchSingleTop="true"
app:popUpTo="@+id/masterChatRoomsFragment"
@ -82,20 +58,12 @@
android:label="GroupInfoFragment" >
<action
android:id="@+id/action_groupInfoFragment_to_chatRoomCreationFragment"
app:enterAnim="@anim/enter_left"
app:exitAnim="@anim/exit_right"
app:popEnterAnim="@anim/enter_right"
app:popExitAnim="@anim/exit_left"
app:destination="@id/chatRoomCreationFragment"
app:launchSingleTop="true"
app:popUpTo="@+id/chatRoomCreationFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_groupInfoFragment_to_detailChatRoomFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/detailChatRoomFragment"
app:launchSingleTop="true"
app:popUpTo="@+id/masterChatRoomsFragment"

View file

@ -12,10 +12,6 @@
android:label="DetailContactFragment" >
<action
android:id="@+id/action_detailContactFragment_to_contactEditorFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/contactEditorFragment" />
</fragment>
<fragment
@ -25,10 +21,6 @@
android:label="ContactEditorFragment" />
<action
android:id="@+id/action_global_detailContactFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/detailContactFragment"
app:launchSingleTop="true" />

View file

@ -12,39 +12,25 @@
tools:layout="@layout/chat_room_master_fragment" >
<action
android:id="@+id/action_masterChatRoomsFragment_to_dialerFragment"
app:enterAnim="@anim/enter_left"
app:exitAnim="@anim/exit_right"
app:destination="@id/dialerFragment"
app:popUpTo="@+id/dialerFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_masterChatRoomsFragment_to_masterCallLogsFragment"
app:enterAnim="@anim/enter_left"
app:exitAnim="@anim/exit_right"
app:destination="@id/masterCallLogsFragment"
app:popUpTo="@+id/masterCallLogsFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_masterChatRoomsFragment_to_masterContactsFragment"
app:enterAnim="@anim/enter_left"
app:exitAnim="@anim/exit_right"
app:destination="@id/masterContactsFragment"
app:popUpTo="@+id/masterContactsFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_masterChatRoomsFragment_to_detailChatRoomFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/chat_nav_graph.xml"
app:launchSingleTop="true" />
<action
android:id="@+id/action_masterChatRoomsFragment_to_chatRoomCreationFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/chatRoomCreationFragment" />
<argument
android:name="LocalSipUri"
@ -70,39 +56,25 @@
tools:layout="@layout/contact_master_fragment" >
<action
android:id="@+id/action_masterContactsFragment_to_masterCallLogsFragment"
app:enterAnim="@anim/enter_left"
app:exitAnim="@anim/exit_right"
app:destination="@id/masterCallLogsFragment"
app:popUpTo="@+id/masterCallLogsFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_masterContactsFragment_to_dialerFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:destination="@id/dialerFragment"
app:popUpTo="@+id/dialerFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_masterContactsFragment_to_masterChatRoomsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:destination="@id/masterChatRoomsFragment"
app:popUpTo="@+id/masterChatRoomsFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_masterContactsFragment_to_detailContactFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/contacts_nav_graph.xml"
app:launchSingleTop="true" />
<action
android:id="@+id/action_masterContactsFragment_to_contactEditorFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/contactEditorFragment"
app:launchSingleTop="false" />
<argument
@ -130,31 +102,21 @@
tools:layout="@layout/history_master_fragment" >
<action
android:id="@+id/action_masterCallLogsFragment_to_dialerFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:destination="@id/dialerFragment"
app:popUpTo="@+id/dialerFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_masterCallLogsFragment_to_masterContactsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:destination="@id/masterContactsFragment"
app:popUpTo="@+id/masterContactsFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_masterCallLogsFragment_to_masterChatRoomsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:destination="@id/masterChatRoomsFragment"
app:popUpTo="@+id/masterChatRoomsFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_masterCallLogsFragment_to_detailCallLogFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/history_nav_graph.xml" />
</fragment>
<fragment
@ -164,22 +126,16 @@
tools:layout="@layout/dialer_fragment" >
<action
android:id="@+id/action_dialerFragment_to_masterCallLogsFragment"
app:enterAnim="@anim/enter_left"
app:exitAnim="@anim/exit_right"
app:destination="@id/masterCallLogsFragment"
app:popUpTo="@id/masterCallLogsFragment"
app:popUpToInclusive="true"/>
<action
android:id="@+id/action_dialerFragment_to_masterContactsFragment"
app:enterAnim="@anim/enter_left"
app:exitAnim="@anim/exit_right"
app:destination="@id/masterContactsFragment"
app:popUpTo="@+id/masterContactsFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_dialerFragment_to_masterChatRoomsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:destination="@id/masterChatRoomsFragment"
app:popUpTo="@+id/masterChatRoomsFragment"
app:popUpToInclusive="true" />
@ -211,20 +167,12 @@
android:defaultValue="false" />
<action
android:id="@+id/action_chatRoomCreationFragment_to_groupInfoFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/groupInfoFragment"
app:launchSingleTop="true"
app:popUpTo="@+id/groupInfoFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_chatRoomCreationFragment_to_detailChatRoomFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/chat_nav_graph.xml"
app:launchSingleTop="true"
app:popUpTo="@+id/masterChatRoomsFragment"
@ -237,20 +185,12 @@
android:label="GroupInfoFragment" >
<action
android:id="@+id/action_groupInfoFragment_to_detailChatRoomFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/chat_nav_graph.xml"
app:launchSingleTop="true"
app:popUpTo="@+id/masterChatRoomsFragment"
app:popUpToInclusive="false" />
<action
android:id="@+id/action_groupInfoFragment_to_chatRoomCreationFragment"
app:enterAnim="@anim/enter_left"
app:exitAnim="@anim/exit_right"
app:popEnterAnim="@anim/enter_right"
app:popExitAnim="@anim/exit_left"
app:destination="@id/chatRoomCreationFragment"
app:launchSingleTop="true"
app:popUpTo="@+id/chatRoomCreationFragment"
@ -263,10 +203,6 @@
android:label="AboutFragment" />
<action
android:id="@+id/action_global_aboutFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/aboutFragment"
app:launchSingleTop="true"
app:popUpTo="@+id/aboutFragment"
@ -278,10 +214,6 @@
android:label="RecordingsFragment" />
<action
android:id="@+id/action_global_recordingsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/recordingsFragment"
app:launchSingleTop="true"
app:popUpTo="@+id/recordingsFragment"
@ -293,83 +225,47 @@
android:label="SettingsFragment" >
<action
android:id="@+id/action_settingsFragment_to_chatSettingsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/chatSettingsFragment"
app:popUpTo="@+id/settingsFragment"
app:popUpToInclusive="false" />
<action
android:id="@+id/action_settingsFragment_to_callSettingsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/callSettingsFragment"
app:popUpTo="@+id/settingsFragment"
app:popUpToInclusive="false" />
<action
android:id="@+id/action_settingsFragment_to_advancedSettingsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/advancedSettingsFragment"
app:popUpTo="@+id/settingsFragment"
app:popUpToInclusive="false" />
<action
android:id="@+id/action_settingsFragment_to_accountSettingsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/accountSettingsFragment"
app:launchSingleTop="true"
app:popUpTo="@+id/accountSettingsFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_settingsFragment_to_audioSettingsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/audioSettingsFragment"
app:popUpTo="@+id/settingsFragment"
app:popUpToInclusive="false" />
<action
android:id="@+id/action_settingsFragment_to_contactsSettingsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/contactsSettingsFragment"
app:popUpTo="@+id/settingsFragment"
app:popUpToInclusive="false" />
<action
android:id="@+id/action_settingsFragment_to_videoSettingsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/videoSettingsFragment"
app:popUpTo="@+id/settingsFragment"
app:popUpToInclusive="false" />
<action
android:id="@+id/action_settingsFragment_to_networkSettingsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/networkSettingsFragment"
app:popUpTo="@+id/settingsFragment"
app:popUpToInclusive="false" />
<action
android:id="@+id/action_settingsFragment_to_tunnelSettingsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/tunnelSettingsFragment"
app:popUpTo="@+id/settingsFragment"
app:popUpToInclusive="false" />
@ -380,10 +276,6 @@
</fragment>
<action
android:id="@+id/action_global_settingsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/settingsFragment"
app:launchSingleTop="true"
app:popUpTo="@+id/settingsFragment"
@ -399,10 +291,6 @@
app:argType="string" />
<action
android:id="@+id/action_accountSettingsFragment_to_phoneAccountLinkingFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/phoneAccountLinkingFragment" />
<deepLink
android:id="@+id/accountSettingsDeepLink"
@ -451,20 +339,12 @@
android:label="TunnelSettingsFragment" />
<action
android:id="@+id/action_global_masterChatRoomsFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/masterChatRoomsFragment"
app:launchSingleTop="true"
app:popUpTo="@+id/masterChatRoomsFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_global_dialerFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/dialerFragment"
app:launchSingleTop="true"
app:popUpTo="@+id/dialerFragment"
@ -476,10 +356,6 @@
android:label="PhoneAccountLinkingFragment" >
<action
android:id="@+id/action_phoneAccountLinkingFragment_to_phoneAccountValidationFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/phoneAccountValidationFragment" />
<argument
android:name="Username"

View file

@ -19,10 +19,6 @@
app:argType="string" />
<action
android:id="@+id/action_accountSettingsFragment_to_phoneAccountLinkingFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/phoneAccountLinkingFragment" />
</fragment>
<fragment
@ -108,10 +104,6 @@
android:label="PhoneAccountLinkingFragment" >
<action
android:id="@+id/action_phoneAccountLinkingFragment_to_phoneAccountValidationFragment"
app:enterAnim="@anim/enter_right"
app:exitAnim="@anim/exit_left"
app:popEnterAnim="@anim/enter_left"
app:popExitAnim="@anim/exit_right"
app:destination="@id/phoneAccountValidationFragment" />
<argument
android:name="Username"
@ -132,10 +124,6 @@
android:label="PhoneAccountValidationFragment" >
<action
android:id="@+id/action_phoneAccountValidationFragment_to_accountSettingsFragment"
app:enterAnim="@anim/enter_left"
app:exitAnim="@anim/exit_right"
app:popEnterAnim="@anim/enter_right"
app:popExitAnim="@anim/exit_left"
app:destination="@id/accountSettingsFragment"
app:launchSingleTop="true"
app:popUpTo="@id/accountSettingsFragment"