From 288d1027807fe408d836099d3a8f4fef07141be6 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Mon, 4 Dec 2017 21:48:06 +0100 Subject: [PATCH] Leave room when exiting Signed-off-by: Mario Danic --- .../talk/activities/CallActivity.java | 35 ++++++++++++++++--- .../talk/api/helpers/api/ApiHelper.java | 2 +- 2 files changed, 31 insertions(+), 6 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 698cfde82..d59cf1126 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -298,7 +298,7 @@ public class CallActivity extends AppCompatActivity { sdpConstraints.optional.add(new MediaConstraints.KeyValuePair("internalSctpDataChannels", "true")); sdpConstraints.optional.add(new MediaConstraints.KeyValuePair("DtlsSrtpKeyAgreement", "true")); - ncApi.joinRoom(credentials, ApiHelper.getUrlForJoinRoom(userEntity.getBaseUrl(), roomToken)) + ncApi.joinRoom(credentials, ApiHelper.getUrlForRoom(userEntity.getBaseUrl(), roomToken)) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { @@ -554,19 +554,20 @@ public class CallActivity extends AppCompatActivity { private void hangup() { leavingCall = true; - dispose(null); for (MagicPeerConnectionWrapper magicPeerConnectionWrapper : magicPeerConnectionWrapperList) { - if (magicPeerConnectionWrapper.getPeerConnection() != null) { - magicPeerConnectionWrapper.getPeerConnection().close(); - } + endPeerConnection(magicPeerConnectionWrapper.getSessionId()); } if (videoCapturer != null) { videoCapturer.dispose(); } + localMediaStream.removeTrack(localMediaStream.videoTracks.get(0)); + localMediaStream.removeTrack(localMediaStream.audioTracks.get(0)); + localMediaStream = null; + pipVideoView.release(); String credentials = ApiHelper.getCredentials(userEntity.getUsername(), userEntity.getToken()); @@ -581,6 +582,30 @@ public class CallActivity extends AppCompatActivity { @Override public void onNext(GenericOverall genericOverall) { + ncApi.leaveRoom(credentials, ApiHelper.getUrlForRoom(userEntity.getBaseUrl(), roomToken)) + .subscribeOn(Schedulers.newThread()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(GenericOverall genericOverall) { + + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); } diff --git a/app/src/main/java/com/nextcloud/talk/api/helpers/api/ApiHelper.java b/app/src/main/java/com/nextcloud/talk/api/helpers/api/ApiHelper.java index ff66b1b8d..29571fc8d 100644 --- a/app/src/main/java/com/nextcloud/talk/api/helpers/api/ApiHelper.java +++ b/app/src/main/java/com/nextcloud/talk/api/helpers/api/ApiHelper.java @@ -57,7 +57,7 @@ public class ApiHelper { return retrofitBucket; } - public static String getUrlForJoinRoom(String baseUrl, String token) { + public static String getUrlForRoom(String baseUrl, String token) { return getRoom(baseUrl, token) + "/participants/active"; }