From 40bf7a021a5c26455f7b4e0fe90268b970d7d2de Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 15 Oct 2024 13:12:22 -0300 Subject: [PATCH] Fix issue where call name would not update. --- .../java/org/thoughtcrime/securesms/WebRtcCallActivity.java | 2 +- .../securesms/components/webrtc/WebRtcCallView.java | 5 +++-- .../securesms/components/webrtc/WebRtcCallViewModel.java | 4 ++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java b/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java index b5d63b0b35..32898c6e31 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java @@ -518,6 +518,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan viewModel.getEvents().observe(this, this::handleViewModelEvent); lifecycleDisposable.add(viewModel.getInCallstatus().subscribe(this::handleInCallStatus)); + lifecycleDisposable.add(viewModel.getRecipientFlowable().subscribe(callScreen::setRecipient)); boolean isStartedFromCallLink = getCallIntent().isStartedFromCallLink(); LiveDataUtil.combineLatest(LiveDataReactiveStreams.fromPublisher(viewModel.getCallParticipantsState().toFlowable(BackpressureStrategy.LATEST)), @@ -922,7 +923,6 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan previousEvent = event; viewModel.setRecipient(event.getRecipient()); - callScreen.setRecipient(event.getRecipient()); controlsAndInfoViewModel.setRecipient(event.getRecipient()); switch (event.getState()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallView.java b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallView.java index 038d0b8ae0..296f237709 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallView.java @@ -622,14 +622,15 @@ public class WebRtcCallView extends InsetAwareConstraintLayout { } public void setRecipient(@NonNull Recipient recipient) { + collapsedToolbar.setTitle(recipient.getDisplayName(getContext())); + recipientName.setText(recipient.getDisplayName(getContext())); + if (recipient.getId() == recipientId) { return; } recipientId = recipient.getId(); largeHeaderAvatar.setRecipient(recipient, false); - collapsedToolbar.setTitle(recipient.getDisplayName(getContext())); - recipientName.setText(recipient.getDisplayName(getContext())); } public void setStatus(@Nullable String status) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallViewModel.java index 4d15cd6f73..2ed97cc02c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallViewModel.java @@ -116,6 +116,10 @@ public class WebRtcCallViewModel extends ViewModel { return liveRecipient.getValue(); } + public Flowable getRecipientFlowable() { + return recipientId.switchMap(id -> Recipient.observable(id).toFlowable(BackpressureStrategy.LATEST)).observeOn(AndroidSchedulers.mainThread()); + } + public void setRecipient(@NonNull Recipient recipient) { recipientId.onNext(recipient.getId()); liveRecipient.setValue(recipient.live());