From eb9d7ec0d72a8f4dccc25c5fc35eb4e68f11c913 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Wed, 15 Nov 2017 15:59:42 +0100 Subject: [PATCH] Some progress Signed-off-by: Mario Danic --- .../java/com/nextcloud/talk/activities/CallActivity.java | 9 +++++++-- app/src/main/java/com/nextcloud/talk/api/NcApi.java | 3 ++- .../talk/api/models/json/signaling/NCIceCandidate.java | 3 --- .../com/nextcloud/talk/webrtc/PeerConnectionWrapper.java | 5 +++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java index 241469d8c..933ef1c85 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -632,7 +632,7 @@ public class CallActivity extends AppCompatActivity { } @Subscribe(threadMode = ThreadMode.BACKGROUND) - public void onMessageEvent(SessionDescriptionSendEvent sessionDescriptionSend) { + public void onMessageEvent(SessionDescriptionSendEvent sessionDescriptionSend) throws IOException { Log.d("MARIO_123", "SENDING " + sessionDescriptionSend.getType()); String credentials = ApiHelper.getCredentials(userEntity.getUsername(), userEntity.getToken()); NCMessageWrapper ncMessageWrapper = new NCMessageWrapper(); @@ -656,8 +656,13 @@ public class CallActivity extends AppCompatActivity { ncSignalingMessage.setPayload(ncMessagePayload); ncMessageWrapper.setSignalingMessage(ncSignalingMessage); + List ncMessageWrappers = new ArrayList<>(); + ncMessageWrappers.add(ncMessageWrapper); + + Log.d("MARIO_123", LoganSquare.serialize(ncMessageWrappers)); + ncApi.sendSignalingMessages(credentials, ApiHelper.getUrlForSignaling(userEntity.getBaseUrl()), - ncMessageWrapper) + ncMessageWrappers) .subscribeOn(Schedulers.newThread()) .subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/nextcloud/talk/api/NcApi.java b/app/src/main/java/com/nextcloud/talk/api/NcApi.java index 46079dc67..9dd9b98a4 100644 --- a/app/src/main/java/com/nextcloud/talk/api/NcApi.java +++ b/app/src/main/java/com/nextcloud/talk/api/NcApi.java @@ -33,6 +33,7 @@ import com.nextcloud.talk.api.models.json.signaling.NCMessageWrapper; import com.nextcloud.talk.api.models.json.signaling.SignalingOverall; import com.nextcloud.talk.api.models.json.userprofile.UserProfileOverall; +import java.util.List; import java.util.Map; import io.reactivex.Observable; @@ -168,7 +169,7 @@ public interface NcApi { */ @POST Observable sendSignalingMessages(@Header("Authorization") String authorization, @Url String url, - @Body NCMessageWrapper ncMessageWrapper); + @Body List ncMessageWrapper); /* Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /signaling diff --git a/app/src/main/java/com/nextcloud/talk/api/models/json/signaling/NCIceCandidate.java b/app/src/main/java/com/nextcloud/talk/api/models/json/signaling/NCIceCandidate.java index 1db7dfc37..546d92fb5 100644 --- a/app/src/main/java/com/nextcloud/talk/api/models/json/signaling/NCIceCandidate.java +++ b/app/src/main/java/com/nextcloud/talk/api/models/json/signaling/NCIceCandidate.java @@ -36,7 +36,4 @@ public class NCIceCandidate { @JsonField(name = "candidate") String candidate; - - @JsonField(name = "type") - String type; } 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 fff9efecb..0b668ddb3 100644 --- a/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java +++ b/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java @@ -90,6 +90,9 @@ public class PeerConnectionWrapper { @Override public void onIceGatheringChange(PeerConnection.IceGatheringState iceGatheringState) { + if (iceGatheringState.equals(PeerConnection.IceGatheringState.COMPLETE)) { + sendLocalCandidates(); + } } @Override @@ -150,7 +153,6 @@ public class PeerConnectionWrapper { // We've just set our local SDP so time to send it, drain // remote and send local ICE candidates. Log.d("MARIO", "SENDING ANSWER FROM OBSERVER"); - sendLocalCandidates(); EventBus.getDefault().post(new SessionDescriptionSendEvent(peerConnection.getLocalDescription (), sessionId, @@ -162,7 +164,6 @@ public class PeerConnectionWrapper { public void onCreateSuccess(SessionDescription sessionDescription) { super.onCreateSuccess(sessionDescription); peerConnection.setLocalDescription(magicSdpObserver, sessionDescription); - sendLocalCandidates(); } }, mediaConstraints);