From a6c0de10f0c15d225b1a10efc7440ef7f8217d69 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 26 Oct 2020 14:58:00 +0100 Subject: [PATCH] Improved smoothness of animations to fragments with recyclerviews --- .../main/chat/fragments/ChatRoomCreationFragment.kt | 9 +++++++++ .../main/chat/fragments/DetailChatRoomFragment.kt | 9 +++++++++ .../activities/main/chat/fragments/GroupInfoFragment.kt | 9 +++++++++ .../activities/main/chat/fragments/ImdnFragment.kt | 9 +++++++++ .../main/chat/fragments/MasterChatRoomsFragment.kt | 9 +++++++++ .../main/contact/fragments/MasterContactsFragment.kt | 9 +++++++++ .../main/history/fragments/MasterCallLogsFragment.kt | 9 +++++++++ .../main/recordings/fragments/RecordingsFragment.kt | 9 +++++++++ 8 files changed, 72 insertions(+) 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 f5f46aed9..9ea535e78 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 @@ -70,6 +70,15 @@ class ChatRoomCreationFragment : SecureFragment adapter.updateSecurity(viewModel.isEncrypted.value == true) binding.contactsList.adapter = adapter + // To ensure animation will be smooth + binding.contactsList.apply { + postponeEnterTransition() + viewTreeObserver.addOnPreDrawListener { + startPostponedEnterTransition() + true + } + } + val layoutManager = LinearLayoutManager(activity) binding.contactsList.layoutManager = layoutManager 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 2bae06f97..6a346502d 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 @@ -121,6 +121,15 @@ class DetailChatRoomFragment : MasterFragment() { ) binding.participants.adapter = adapter + // To ensure animation will be smooth + binding.participants.apply { + postponeEnterTransition() + viewTreeObserver.addOnPreDrawListener { + startPostponedEnterTransition() + true + } + } + val layoutManager = LinearLayoutManager(activity) binding.participants.layoutManager = layoutManager 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 c0f04f962..fd83b3adb 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 @@ -81,6 +81,15 @@ class ImdnFragment : SecureFragment() { adapter = ImdnAdapter(viewLifecycleOwner) binding.participantsList.adapter = adapter + // To ensure animation will be smooth + binding.participantsList.apply { + postponeEnterTransition() + viewTreeObserver.addOnPreDrawListener { + startPostponedEnterTransition() + true + } + } + val layoutManager = LinearLayoutManager(activity) binding.participantsList.layoutManager = layoutManager 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 5f7088718..0602bf885 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 @@ -89,6 +89,15 @@ class MasterChatRoomsFragment : MasterFragment