From 1f4c25caa37824283aa14447ca76904448003c03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Thu, 5 Dec 2024 14:55:57 +0100 Subject: [PATCH] Include data channel label in log message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This implicitly fixes trying to send the initial state on the latest remote data channel found (which is the one stored in the "dataChannel" attribute of the "PeerConnectionWrapper") when any other existing data channel changes its status to open. Nevertheless, as all this will be reworked, no unit test was added for it. Signed-off-by: Daniel Calviño Sánchez --- .../talk/webrtc/PeerConnectionWrapper.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java b/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java index 34ea47eaa..2d033d08e 100644 --- a/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java +++ b/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java @@ -36,6 +36,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Objects; import androidx.annotation.Nullable; @@ -144,7 +145,7 @@ public class PeerConnectionWrapper { DataChannel.Init init = new DataChannel.Init(); init.negotiated = false; dataChannel = peerConnection.createDataChannel("status", init); - dataChannel.registerObserver(new DataChannelObserver()); + dataChannel.registerObserver(new DataChannelObserver(dataChannel)); if (isMCUPublisher) { peerConnection.createOffer(sdpObserver, mediaConstraints); } else if (hasMCU && "video".equals(this.videoStreamType)) { @@ -363,6 +364,12 @@ public class PeerConnectionWrapper { private class DataChannelObserver implements DataChannel.Observer { + private final DataChannel dataChannel; + + public DataChannelObserver(DataChannel dataChannel) { + this.dataChannel = Objects.requireNonNull(dataChannel); + } + @Override public void onBufferedAmountChange(long l) { @@ -370,8 +377,7 @@ public class PeerConnectionWrapper { @Override public void onStateChange() { - if (dataChannel != null && - dataChannel.state() == DataChannel.State.OPEN) { + if (dataChannel.state() == DataChannel.State.OPEN) { sendInitialMediaStatus(); } } @@ -379,7 +385,7 @@ public class PeerConnectionWrapper { @Override public void onMessage(DataChannel.Buffer buffer) { if (buffer.binary) { - Log.d(TAG, "Received binary data channel message over " + TAG + " " + sessionId); + Log.d(TAG, "Received binary data channel message over " + dataChannel.label() + " " + sessionId); return; } @@ -387,7 +393,7 @@ public class PeerConnectionWrapper { final byte[] bytes = new byte[data.capacity()]; data.get(bytes); String strData = new String(bytes); - Log.d(TAG, "Received data channel message (" + strData + ") over " + TAG + " " + sessionId); + Log.d(TAG, "Received data channel message (" + strData + ") over " + dataChannel.label() + " " + sessionId); DataChannelMessage dataChannelMessage; try { @@ -512,7 +518,7 @@ public class PeerConnectionWrapper { + " exists, but received onDataChannel event for DataChannel with label " + dataChannel.label()); } PeerConnectionWrapper.this.dataChannel = dataChannel; - PeerConnectionWrapper.this.dataChannel.registerObserver(new DataChannelObserver()); + PeerConnectionWrapper.this.dataChannel.registerObserver(new DataChannelObserver(dataChannel)); } @Override