From 2dd034cfbd5f306bc084706bcf3b26c17738e09b Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 21 Jan 2021 15:52:33 +0100 Subject: [PATCH] Fixed crash when animations are disabled + crash when creating 1-1 encrypted chat room --- .../main/chat/viewmodels/ChatRoomViewModel.kt | 4 +++- .../main/fragments/MasterFragment.kt | 19 ++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt index c93433af2..092181294 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt @@ -91,7 +91,9 @@ class ChatRoomViewModel(val chatRoom: ChatRoom) : ViewModel(), ContactViewModelI get() = chatRoom.hasCapability(ChatRoomCapabilities.Basic.toInt()) val peerSipUri: String - get() = if (oneToOneChatRoom && !basicChatRoom) chatRoom.participants.first().address.asStringUriOnly() + get() = if (oneToOneChatRoom && !basicChatRoom) + chatRoom.participants.firstOrNull()?.address?.asStringUriOnly() + ?: chatRoom.peerAddress.asStringUriOnly() else chatRoom.peerAddress.asStringUriOnly() val oneParticipantOneDevice: Boolean diff --git a/app/src/main/java/org/linphone/activities/main/fragments/MasterFragment.kt b/app/src/main/java/org/linphone/activities/main/fragments/MasterFragment.kt index 9c5968492..3c0e8b914 100644 --- a/app/src/main/java/org/linphone/activities/main/fragments/MasterFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/fragments/MasterFragment.kt @@ -26,6 +26,7 @@ import androidx.core.view.doOnPreDraw import androidx.databinding.ViewDataBinding import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController +import org.linphone.LinphoneApplication import org.linphone.R import org.linphone.activities.main.viewmodels.DialogViewModel import org.linphone.activities.main.viewmodels.ListTopBarViewModel @@ -91,13 +92,17 @@ abstract class MasterFragment("resume")?.value ?: false - if (!resume) { - findNavController().currentBackStackEntry?.savedStateHandle?.set("resume", true) - // To ensure animation will be smooth, - // wait until the adapter is loaded to display the fragment - postponeEnterTransition() - view.doOnPreDraw { startPostponedEnterTransition() } + if (LinphoneApplication.corePreferences.enableAnimations) { + val resume = + findNavController().currentBackStackEntry?.savedStateHandle?.getLiveData("resume")?.value + ?: false + if (!resume) { + findNavController().currentBackStackEntry?.savedStateHandle?.set("resume", true) + // To ensure animation will be smooth, + // wait until the adapter is loaded to display the fragment + postponeEnterTransition() + view.doOnPreDraw { startPostponedEnterTransition() } + } } super.onViewCreated(view, savedInstanceState)