Fixed navigation issues + ensure friend is freed

This commit is contained in:
Sylvain Berfini 2022-03-08 11:36:01 +01:00
parent 4c616cc395
commit 465e41ae79
2 changed files with 10 additions and 4 deletions

View file

@ -979,7 +979,7 @@ internal fun CallActivity.navigateToOutgoingCall() {
findNavController(R.id.nav_host_fragment).navigate( findNavController(R.id.nav_host_fragment).navigate(
R.id.action_global_outgoingCallFragment, R.id.action_global_outgoingCallFragment,
null, null,
popupTo(R.id.singleCallFragment, true) popupTo(R.id.outgoingCallFragment, true)
) )
} }
@ -989,7 +989,7 @@ internal fun CallActivity.navigateToIncomingCall(earlyMediaVideoEnabled: Boolean
findNavController(R.id.nav_host_fragment).navigate( findNavController(R.id.nav_host_fragment).navigate(
R.id.action_global_incomingCallFragment, R.id.action_global_incomingCallFragment,
args, args,
popupTo(R.id.singleCallFragment, true) popupTo(R.id.incomingCallFragment, true)
) )
} }
@ -997,7 +997,7 @@ internal fun OutgoingCallFragment.navigateToActiveCall() {
findNavController().navigate( findNavController().navigate(
R.id.action_global_singleCallFragment, R.id.action_global_singleCallFragment,
null, null,
popupTo(R.id.outgoingCallFragment, true) popupTo(R.id.singleCallFragment, true)
) )
} }
@ -1005,7 +1005,7 @@ internal fun IncomingCallFragment.navigateToActiveCall() {
findNavController().navigate( findNavController().navigate(
R.id.action_global_singleCallFragment, R.id.action_global_singleCallFragment,
null, null,
popupTo(R.id.incomingCallFragment, true) popupTo(R.id.singleCallFragment, true)
) )
} }

View file

@ -173,6 +173,12 @@ class ContactsManager(private val context: Context) {
@Synchronized @Synchronized
fun updateContacts(all: ArrayList<Contact>) { fun updateContacts(all: ArrayList<Contact>) {
friendsMap.clear()
// Contact has a Friend field and Friend can have a Contact has userData
// Friend also keeps a ref on the Core, so we have to clean them
for (contact in contacts) {
contact.friend = null
}
contacts.clear() contacts.clear()
contacts.addAll(all) contacts.addAll(all)