diff --git a/app/src/main/java/org/linphone/activities/Navigation.kt b/app/src/main/java/org/linphone/activities/Navigation.kt index f58dec43b..0bf8df5db 100644 --- a/app/src/main/java/org/linphone/activities/Navigation.kt +++ b/app/src/main/java/org/linphone/activities/Navigation.kt @@ -348,11 +348,11 @@ internal fun DetailChatRoomFragment.navigateToEphemeralInfo() { } } -internal fun ChatRoomCreationFragment.navigateToGroupInfo(args: Bundle?) { +internal fun ChatRoomCreationFragment.navigateToGroupInfo() { if (findNavController().currentDestination?.id == R.id.chatRoomCreationFragment) { findNavController().navigate( R.id.action_chatRoomCreationFragment_to_groupInfoFragment, - args, + null, getRightToLeftAnimationNavOptions() ) } diff --git a/app/src/main/java/org/linphone/activities/main/chat/fragments/ChatRoomCreationFragment.kt b/app/src/main/java/org/linphone/activities/main/chat/fragments/ChatRoomCreationFragment.kt index 3171a6d79..b5e148a83 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/fragments/ChatRoomCreationFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/fragments/ChatRoomCreationFragment.kt @@ -35,7 +35,6 @@ 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 import org.linphone.databinding.ChatRoomCreationFragmentBinding import org.linphone.utils.PermissionHelper @@ -128,14 +127,13 @@ class ChatRoomCreationFragment : SecureFragment } }) - addParticipantsFromBundle() + addParticipantsFromSharedViewModel() // Next button is only used to go to group chat info fragment binding.setNextClickListener { sharedViewModel.createEncryptedChatRoom = viewModel.isEncrypted.value == true - val args = Bundle() - args.putSerializable("participants", viewModel.selectedAddresses.value) - navigateToGroupInfo(args) + sharedViewModel.chatRoomParticipants.value = viewModel.selectedAddresses.value + navigateToGroupInfo() } viewModel.onErrorEvent.observe(viewLifecycleOwner, { @@ -150,9 +148,8 @@ class ChatRoomCreationFragment : SecureFragment } } - @Suppress("UNCHECKED_CAST") - private fun addParticipantsFromBundle() { - val participants = arguments?.getSerializable("participants") as? ArrayList
+ private fun addParticipantsFromSharedViewModel() { + val participants = sharedViewModel.chatRoomParticipants.value if (participants != null && participants.size > 0) { viewModel.selectedAddresses.value = participants } diff --git a/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt b/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt index 73111abbc..66a44f9aa 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt @@ -398,6 +398,7 @@ class DetailChatRoomFragment : MasterFragment() { } }) - addParticipantsFromBundle() + addParticipantsFromSharedViewModel() binding.setBackClickListener { findNavController().popBackStack() @@ -128,13 +128,14 @@ class GroupInfoFragment : SecureFragment() { binding.setParticipantsClickListener { sharedViewModel.createEncryptedChatRoom = viewModel.isEncrypted.value == true - val args = Bundle() - args.putBoolean("createGroup", true) val list = arrayListOf
() for (participant in viewModel.participants.value.orEmpty()) { list.add(participant.address) } - args.putSerializable("participants", list) + sharedViewModel.chatRoomParticipants.value = list + + val args = Bundle() + args.putBoolean("createGroup", true) navigateToChatRoomCreation(args) } @@ -161,9 +162,8 @@ class GroupInfoFragment : SecureFragment() { }) } - @Suppress("UNCHECKED_CAST") - private fun addParticipantsFromBundle() { - val participants = arguments?.getSerializable("participants") as? ArrayList
+ private fun addParticipantsFromSharedViewModel() { + val participants = sharedViewModel.chatRoomParticipants.value if (participants != null && participants.size > 0) { val list = arrayListOf() diff --git a/app/src/main/java/org/linphone/activities/main/chat/fragments/MasterChatRoomsFragment.kt b/app/src/main/java/org/linphone/activities/main/chat/fragments/MasterChatRoomsFragment.kt index 9305974d8..bc6fafbce 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/fragments/MasterChatRoomsFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/fragments/MasterChatRoomsFragment.kt @@ -157,11 +157,13 @@ class MasterChatRoomsFragment : MasterFragment>() + /* Contacts */ val selectedContact = MutableLiveData()