mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-19 19:49:33 +01:00
parent
bd15829b6a
commit
3d1f088674
@ -221,7 +221,9 @@ public class CallController extends BaseController {
|
|||||||
|
|
||||||
private boolean isMultiSession = false;
|
private boolean isMultiSession = false;
|
||||||
private boolean hasChatSupport = false;
|
private boolean hasChatSupport = false;
|
||||||
private boolean isVoiceOnlyCall = false;
|
private boolean needsPing = true;
|
||||||
|
|
||||||
|
private boolean isVoiceOnlyCall;
|
||||||
private boolean isFromNotification;
|
private boolean isFromNotification;
|
||||||
private Handler handler = new Handler();
|
private Handler handler = new Handler();
|
||||||
|
|
||||||
@ -946,6 +948,15 @@ public class CallController extends BaseController {
|
|||||||
.getCapabilities().getSpreedCapability()
|
.getCapabilities().getSpreedCapability()
|
||||||
.getFeatures().contains("chat-v2");
|
.getFeatures().contains("chat-v2");
|
||||||
|
|
||||||
|
needsPing = !(capabilitiesOverall.getOcs().getData()
|
||||||
|
.getCapabilities() != null && capabilitiesOverall.getOcs().getData()
|
||||||
|
.getCapabilities().getSpreedCapability() != null &&
|
||||||
|
capabilitiesOverall.getOcs().getData()
|
||||||
|
.getCapabilities().getSpreedCapability()
|
||||||
|
.getFeatures() != null && capabilitiesOverall.getOcs().getData()
|
||||||
|
.getCapabilities().getSpreedCapability()
|
||||||
|
.getFeatures().contains("no-ping"));
|
||||||
|
|
||||||
joinRoomAndCall();
|
joinRoomAndCall();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1026,33 +1037,35 @@ public class CallController extends BaseController {
|
|||||||
ApplicationWideCurrentRoomHolder.getInstance().setInCall(true);
|
ApplicationWideCurrentRoomHolder.getInstance().setInCall(true);
|
||||||
ApplicationWideCurrentRoomHolder.getInstance().setUserInRoom(userEntity);
|
ApplicationWideCurrentRoomHolder.getInstance().setUserInRoom(userEntity);
|
||||||
|
|
||||||
ncApi.pingCall(credentials, ApiUtils.getUrlForCallPing(baseUrl, roomToken))
|
if (needsPing) {
|
||||||
.subscribeOn(Schedulers.newThread())
|
ncApi.pingCall(credentials, ApiUtils.getUrlForCallPing(baseUrl, roomToken))
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.subscribeOn(Schedulers.newThread())
|
||||||
.repeatWhen(observable -> observable.delay(5000, TimeUnit.MILLISECONDS))
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.takeWhile(observable -> inCall)
|
.repeatWhen(observable -> observable.delay(5000, TimeUnit.MILLISECONDS))
|
||||||
.retry(3, observable -> inCall)
|
.takeWhile(observable -> inCall)
|
||||||
.subscribe(new Observer<GenericOverall>() {
|
.retry(3, observable -> inCall)
|
||||||
@Override
|
.subscribe(new Observer<GenericOverall>() {
|
||||||
public void onSubscribe(Disposable d) {
|
@Override
|
||||||
pingDisposable = d;
|
public void onSubscribe(Disposable d) {
|
||||||
}
|
pingDisposable = d;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNext(GenericOverall genericOverall) {
|
public void onNext(GenericOverall genericOverall) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(Throwable e) {
|
public void onError(Throwable e) {
|
||||||
dispose(pingDisposable);
|
dispose(pingDisposable);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onComplete() {
|
public void onComplete() {
|
||||||
dispose(pingDisposable);
|
dispose(pingDisposable);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Start pulling signaling messages
|
// Start pulling signaling messages
|
||||||
String urlToken = null;
|
String urlToken = null;
|
||||||
|
@ -214,6 +214,7 @@ public class ChatController extends BaseController implements MessagesListAdapte
|
|||||||
if (args.containsKey(BundleKeys.KEY_FROM_NOTIFICATION_START_CALL)) {
|
if (args.containsKey(BundleKeys.KEY_FROM_NOTIFICATION_START_CALL)) {
|
||||||
this.startCallFromNotification = args.getBoolean(BundleKeys.KEY_FROM_NOTIFICATION_START_CALL);
|
this.startCallFromNotification = args.getBoolean(BundleKeys.KEY_FROM_NOTIFICATION_START_CALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.voiceOnly = args.getBoolean(BundleKeys.KEY_CALL_VOICE_ONLY, false);
|
this.voiceOnly = args.getBoolean(BundleKeys.KEY_CALL_VOICE_ONLY, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -473,32 +474,33 @@ public class ChatController extends BaseController implements MessagesListAdapte
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void startPing() {
|
private void startPing() {
|
||||||
ncApi.pingCall(credentials, ApiUtils.getUrlForCallPing(baseUrl, roomToken))
|
if (!conversationUser.hasSpreedCapabilityWithName("no-ping")) {
|
||||||
.subscribeOn(Schedulers.newThread())
|
ncApi.pingCall(credentials, ApiUtils.getUrlForCallPing(baseUrl, roomToken))
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.subscribeOn(Schedulers.newThread())
|
||||||
.repeatWhen(observable -> observable.delay(5000, TimeUnit.MILLISECONDS))
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.takeWhile(observable -> inChat)
|
.repeatWhen(observable -> observable.delay(5000, TimeUnit.MILLISECONDS))
|
||||||
.retry(3, observable -> inChat)
|
.takeWhile(observable -> inChat)
|
||||||
.subscribe(new Observer<GenericOverall>() {
|
.retry(3, observable -> inChat)
|
||||||
@Override
|
.subscribe(new Observer<GenericOverall>() {
|
||||||
public void onSubscribe(Disposable d) {
|
@Override
|
||||||
disposableList.add(d);
|
public void onSubscribe(Disposable d) {
|
||||||
}
|
disposableList.add(d);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNext(GenericOverall genericOverall) {
|
public void onNext(GenericOverall genericOverall) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(Throwable e) {
|
public void onError(Throwable e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onComplete() {
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onComplete() {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@OnClick(R.id.emptyLayout)
|
@OnClick(R.id.emptyLayout)
|
||||||
|
Loading…
Reference in New Issue
Block a user