Index: webrtc/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java |
diff --git a/webrtc/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java b/webrtc/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java |
index eb4d95906795f37a0ceb999185b6b78994826185..ecd0da4c8606e2a707e25edba65bcf72d5339650 100644 |
--- a/webrtc/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java |
+++ b/webrtc/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java |
@@ -184,6 +184,11 @@ public class PeerConnectionClient { |
public void onIceCandidate(final IceCandidate candidate); |
/** |
+ * Callback fired once local ICE candidates are removed. |
+ */ |
+ public void onIceCandidatesRemoved(final IceCandidate[] candidates); |
+ |
+ /** |
* Callback fired once connection is established (IceConnectionState is |
* CONNECTED). |
*/ |
@@ -655,6 +660,21 @@ public class PeerConnectionClient { |
}); |
} |
+ public void removeRemoteIceCandidates(final IceCandidate[] candidates) { |
+ executor.execute(new Runnable() { |
+ @Override |
+ public void run() { |
+ if (peerConnection == null || isError) { |
+ return; |
+ } |
+ // Drain the queued remote candidates if there is any so that |
+ // they are processed in the proper order. |
+ drainCandidates(); |
+ peerConnection.removeIceCandidates(candidates); |
+ } |
+ }); |
+ } |
+ |
public void setRemoteDescription(final SessionDescription sdp) { |
executor.execute(new Runnable() { |
@Override |
@@ -924,6 +944,16 @@ public class PeerConnectionClient { |
} |
@Override |
+ public void onIceCandidatesRemoved(final IceCandidate[] candidates) { |
+ executor.execute(new Runnable() { |
+ @Override |
+ public void run() { |
+ events.onIceCandidatesRemoved(candidates); |
+ } |
+ }); |
+ } |
+ |
+ @Override |
public void onSignalingChange( |
PeerConnection.SignalingState newState) { |
Log.d(TAG, "SignalingState: " + newState); |