From f7064b81f50625fa4085b0fc5728137764c0ef3e Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 16 Jun 2021 10:40:46 +0200 Subject: [PATCH] Fixed file sharing in newly created room --- .../org/linphone/activities/Navigation.kt | 12 +++++----- .../fragments/ChatRoomCreationFragment.kt | 22 ++++++++--------- .../main/chat/fragments/GroupInfoFragment.kt | 8 +++---- .../main/chat/fragments/ImdnFragment.kt | 6 ++--- .../chat/fragments/MasterChatRoomsFragment.kt | 21 +++------------- .../fragments/MasterContactsFragment.kt | 5 +--- .../fragments/MasterCallLogsFragment.kt | 5 +--- .../fragments/RecordingsFragment.kt | 6 ++--- .../main/java/org/linphone/utils/AppUtils.kt | 24 +++++++++++++++++++ 9 files changed, 52 insertions(+), 57 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/Navigation.kt b/app/src/main/java/org/linphone/activities/Navigation.kt index 3a118b404..ed36a6cf1 100644 --- a/app/src/main/java/org/linphone/activities/Navigation.kt +++ b/app/src/main/java/org/linphone/activities/Navigation.kt @@ -413,18 +413,18 @@ internal fun ChatRoomCreationFragment.navigateToGroupInfo() { } } -internal fun ChatRoomCreationFragment.navigateToChatRoom() { +internal fun ChatRoomCreationFragment.navigateToChatRoom(args: Bundle) { if (findNavController().currentDestination?.id == R.id.chatRoomCreationFragment) { if (!resources.getBoolean(R.bool.isTablet)) { findNavController().navigate( R.id.action_chatRoomCreationFragment_to_detailChatRoomFragment, - null, + args, getRightToLeftAnimationNavOptions() ) } else { findNavController().navigate( R.id.action_chatRoomCreationFragment_to_detailChatRoomFragment, - null, + args, getRightToLeftAnimationNavOptions(R.id.emptyFragment, true) ) } @@ -440,18 +440,18 @@ internal fun GroupInfoFragment.navigateToChatRoomCreation(args: Bundle?) { } } -internal fun GroupInfoFragment.navigateToChatRoom() { +internal fun GroupInfoFragment.navigateToChatRoom(args: Bundle?) { if (findNavController().currentDestination?.id == R.id.groupInfoFragment) { if (!resources.getBoolean(R.bool.isTablet)) { findNavController().navigate( R.id.action_groupInfoFragment_to_detailChatRoomFragment, - null, + args, getRightToLeftAnimationNavOptions() ) } else { findNavController().navigate( R.id.action_groupInfoFragment_to_detailChatRoomFragment, - null, + args, getRightToLeftAnimationNavOptions(R.id.emptyFragment, true) ) } 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 70df57761..46a526e03 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 @@ -24,7 +24,6 @@ import android.os.Bundle import android.view.View import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController -import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager import org.linphone.LinphoneApplication import org.linphone.R @@ -37,6 +36,7 @@ import org.linphone.activities.navigateToChatRoom import org.linphone.activities.navigateToGroupInfo import org.linphone.core.tools.Log import org.linphone.databinding.ChatRoomCreationFragmentBinding +import org.linphone.utils.AppUtils import org.linphone.utils.PermissionHelper class ChatRoomCreationFragment : SecureFragment() { @@ -73,9 +73,7 @@ class ChatRoomCreationFragment : SecureFragment binding.contactsList.layoutManager = layoutManager // Divider between items - val dividerItemDecoration = DividerItemDecoration(context, layoutManager.orientation) - dividerItemDecoration.setDrawable(resources.getDrawable(R.drawable.divider, null)) - binding.contactsList.addItemDecoration(dividerItemDecoration) + binding.contactsList.addItemDecoration(AppUtils.getDividerDecoration(requireContext(), layoutManager)) binding.setBackClickListener { findNavController().popBackStack() @@ -109,7 +107,7 @@ class ChatRoomCreationFragment : SecureFragment viewModel.chatRoomCreatedEvent.observe(viewLifecycleOwner, { it.consume { chatRoom -> sharedViewModel.selectedChatRoom.value = chatRoom - navigateToChatRoom() + navigateToChatRoom(AppUtils.createBundleWithSharedTextAndFiles(sharedViewModel)) } }) @@ -148,13 +146,6 @@ class ChatRoomCreationFragment : SecureFragment } } - private fun addParticipantsFromSharedViewModel() { - val participants = sharedViewModel.chatRoomParticipants.value - if (participants != null && participants.size > 0) { - viewModel.selectedAddresses.value = participants - } - } - override fun onRequestPermissionsResult( requestCode: Int, permissions: Array, @@ -171,4 +162,11 @@ class ChatRoomCreationFragment : SecureFragment } } } + + 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/GroupInfoFragment.kt b/app/src/main/java/org/linphone/activities/main/chat/fragments/GroupInfoFragment.kt index 6c0a7af01..5c876bacd 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/fragments/GroupInfoFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/fragments/GroupInfoFragment.kt @@ -24,7 +24,6 @@ import android.os.Bundle import android.view.View import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController -import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager import org.linphone.R import org.linphone.activities.main.MainActivity @@ -41,6 +40,7 @@ import org.linphone.core.Address import org.linphone.core.ChatRoom import org.linphone.core.ChatRoomCapabilities import org.linphone.databinding.ChatRoomGroupInfoFragmentBinding +import org.linphone.utils.AppUtils import org.linphone.utils.DialogUtils class GroupInfoFragment : SecureFragment() { @@ -81,9 +81,7 @@ class GroupInfoFragment : SecureFragment() { binding.participants.layoutManager = layoutManager // Divider between items - val dividerItemDecoration = DividerItemDecoration(context, layoutManager.orientation) - dividerItemDecoration.setDrawable(resources.getDrawable(R.drawable.divider, null)) - binding.participants.addItemDecoration(dividerItemDecoration) + binding.participants.addItemDecoration(AppUtils.getDividerDecoration(requireContext(), layoutManager)) viewModel.participants.observe(viewLifecycleOwner, { adapter.submitList(it) @@ -114,7 +112,7 @@ class GroupInfoFragment : SecureFragment() { viewModel.createdChatRoomEvent.observe(viewLifecycleOwner, { it.consume { chatRoom -> sharedViewModel.selectedChatRoom.value = chatRoom - navigateToChatRoom() + navigateToChatRoom(AppUtils.createBundleWithSharedTextAndFiles(sharedViewModel)) } }) diff --git a/app/src/main/java/org/linphone/activities/main/chat/fragments/ImdnFragment.kt b/app/src/main/java/org/linphone/activities/main/chat/fragments/ImdnFragment.kt index b3686a41f..fd9d34031 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/fragments/ImdnFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/fragments/ImdnFragment.kt @@ -23,7 +23,6 @@ import android.os.Bundle import android.view.View import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController -import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager import org.linphone.R import org.linphone.activities.main.MainActivity @@ -34,6 +33,7 @@ import org.linphone.activities.main.fragments.SecureFragment import org.linphone.activities.main.viewmodels.SharedMainViewModel import org.linphone.core.tools.Log import org.linphone.databinding.ChatRoomImdnFragmentBinding +import org.linphone.utils.AppUtils import org.linphone.utils.RecyclerViewHeaderDecoration class ImdnFragment : SecureFragment() { @@ -92,9 +92,7 @@ class ImdnFragment : SecureFragment() { binding.participantsList.layoutManager = layoutManager // Divider between items - val dividerItemDecoration = DividerItemDecoration(context, layoutManager.orientation) - dividerItemDecoration.setDrawable(resources.getDrawable(R.drawable.divider, null)) - binding.participantsList.addItemDecoration(dividerItemDecoration) + binding.participantsList.addItemDecoration(AppUtils.getDividerDecoration(requireContext(), layoutManager)) // Displays state header val headerItemDecoration = RecyclerViewHeaderDecoration(adapter) 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 b62f3e101..7a00b177b 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 @@ -24,7 +24,6 @@ import android.os.Bundle import android.view.View import androidx.core.content.ContextCompat import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -138,9 +137,7 @@ class MasterChatRoomsFragment : MasterFragment adapter.submitList(chatRooms) @@ -159,7 +156,7 @@ class MasterChatRoomsFragment : MasterFragment() { @@ -63,9 +63,7 @@ class RecordingsFragment : MasterFragment