Remove fallback code for "no-ping" not being available

The capability was introduces 2018 for Nextcloud 14

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2021-05-04 07:47:26 +02:00
parent 6434630709
commit 61a2d389b4
No known key found for this signature in database
GPG Key ID: 7076EA9751AACDDA
6 changed files with 6 additions and 114 deletions

View File

@ -194,12 +194,6 @@ public interface NcApi {
@DELETE @DELETE
Observable<GenericOverall> leaveCall(@Nullable @Header("Authorization") String authorization, @Url String url); Observable<GenericOverall> leaveCall(@Nullable @Header("Authorization") String authorization, @Url String url);
/*
Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /call/callToken/ping
*/
@POST
Observable<GenericOverall> pingCall(@Nullable @Header("Authorization") String authorization, @Url String url);
@GET @GET
Observable<SignalingSettingsOverall> getSignalingSettings(@Nullable @Header("Authorization") String authorization, Observable<SignalingSettingsOverall> getSignalingSettings(@Nullable @Header("Authorization") String authorization,
@Url String url); @Url String url);

View File

@ -244,7 +244,6 @@ public class CallController extends BaseController {
private VideoCapturer videoCapturer; private VideoCapturer videoCapturer;
private EglBase rootEglBase; private EglBase rootEglBase;
private Disposable signalingDisposable; private Disposable signalingDisposable;
private Disposable pingDisposable;
private List<PeerConnection.IceServer> iceServers; private List<PeerConnection.IceServer> iceServers;
private CameraEnumerator cameraEnumerator; private CameraEnumerator cameraEnumerator;
private String roomToken; private String roomToken;
@ -260,7 +259,6 @@ public class CallController extends BaseController {
private boolean audioOn = false; private boolean audioOn = false;
private boolean isMultiSession = false; private boolean isMultiSession = false;
private boolean needsPing = true;
private boolean isVoiceOnlyCall; private boolean isVoiceOnlyCall;
private boolean isIncomingCallFromNotification; private boolean isIncomingCallFromNotification;
@ -1207,15 +1205,6 @@ public class CallController extends BaseController {
.getCapabilities().getSpreedCapability() .getCapabilities().getSpreedCapability()
.getFeatures().contains("multi-room-users"); .getFeatures().contains("multi-room-users");
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"));
if (hasExternalSignalingServer) { if (hasExternalSignalingServer) {
setupAndInitiateWebSocketsConnection(); setupAndInitiateWebSocketsConnection();
} else { } else {
@ -1313,45 +1302,13 @@ public class CallController extends BaseController {
ApplicationWideCurrentRoomHolder.getInstance().setInCall(true); ApplicationWideCurrentRoomHolder.getInstance().setInCall(true);
if (needsPing) {
ncApi.pingCall(credentials, ApiUtils.getUrlForCallPing(baseUrl, roomToken))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.repeatWhen(observable -> observable.delay(5000, TimeUnit.MILLISECONDS))
.takeWhile(observable -> isConnectionEstablished())
.retry(3, observable -> isConnectionEstablished())
.subscribe(new Observer<GenericOverall>() {
@Override
public void onSubscribe(Disposable d) {
pingDisposable = d;
}
@Override
public void onNext(GenericOverall genericOverall) {
}
@Override
public void onError(Throwable e) {
dispose(pingDisposable);
}
@Override
public void onComplete() {
dispose(pingDisposable);
}
});
}
// Start pulling signaling messages // Start pulling signaling messages
String urlToken = null; String urlToken = null;
if (isMultiSession) { if (isMultiSession) {
urlToken = roomToken; urlToken = roomToken;
} }
if (!conversationUser.hasSpreedFeatureCapability("no-ping") && !TextUtils.isEmpty(roomId)) { if (!TextUtils.isEmpty(roomToken)) {
NotificationUtils.INSTANCE.cancelExistingNotificationsForRoom(getApplicationContext(), conversationUser, roomId);
} else if (!TextUtils.isEmpty(roomToken)) {
NotificationUtils.INSTANCE.cancelExistingNotificationsForRoom(getApplicationContext(), conversationUser, roomToken); NotificationUtils.INSTANCE.cancelExistingNotificationsForRoom(getApplicationContext(), conversationUser, roomToken);
} }
@ -1482,12 +1439,6 @@ public class CallController extends BaseController {
if (disposable != null && !disposable.isDisposed()) { if (disposable != null && !disposable.isDisposed()) {
disposable.dispose(); disposable.dispose();
} else if (disposable == null) { } else if (disposable == null) {
if (pingDisposable != null && !pingDisposable.isDisposed()) {
pingDisposable.dispose();
pingDisposable = null;
}
if (signalingDisposable != null && !signalingDisposable.isDisposed()) { if (signalingDisposable != null && !signalingDisposable.isDisposed()) {
signalingDisposable.dispose(); signalingDisposable.dispose();
signalingDisposable = null; signalingDisposable = null;

View File

@ -403,8 +403,7 @@ public class CallNotificationController extends BaseController {
.incoming_gradient)); .incoming_gradient));
} }
if ((AvatarStatusCodeHolder.getInstance().getStatusCode() == 200 || AvatarStatusCodeHolder.getInstance().getStatusCode() == 0) && if (AvatarStatusCodeHolder.getInstance().getStatusCode() == 200 || AvatarStatusCodeHolder.getInstance().getStatusCode() == 0) {
userBeingCalled.hasSpreedFeatureCapability("no-ping")) {
if (getActivity() != null) { if (getActivity() != null) {
Bitmap backgroundBitmap = bitmap.copy(bitmap.getConfig(), true); Bitmap backgroundBitmap = bitmap.copy(bitmap.getConfig(), true);
new BlurPostProcessor(5, getActivity()).process(backgroundBitmap); new BlurPostProcessor(5, getActivity()).process(backgroundBitmap);

View File

@ -844,7 +844,7 @@ class ChatController(args: Bundle) :
cancelNotificationsForCurrentConversation() cancelNotificationsForCurrentConversation()
if (inConversation) { if (inConversation) {
if (wasDetached && conversationUser?.hasSpreedFeatureCapability("no-ping") ?: false) { if (wasDetached) {
currentConversation?.sessionId = "0" currentConversation?.sessionId = "0"
wasDetached = false wasDetached = false
joinRoomWithPassword() joinRoomWithPassword()
@ -854,12 +854,7 @@ class ChatController(args: Bundle) :
private fun cancelNotificationsForCurrentConversation() { private fun cancelNotificationsForCurrentConversation() {
if (conversationUser != null) { if (conversationUser != null) {
if (!conversationUser.hasSpreedFeatureCapability("no-ping") && !TextUtils.isEmpty(roomId)) { if (!TextUtils.isEmpty(roomToken)) {
NotificationUtils.cancelExistingNotificationsForRoom(
applicationContext,
conversationUser, roomId
)
} else if (!TextUtils.isEmpty(roomToken)) {
NotificationUtils.cancelExistingNotificationsForRoom( NotificationUtils.cancelExistingNotificationsForRoom(
applicationContext, applicationContext,
conversationUser, roomToken!! conversationUser, roomToken!!
@ -882,7 +877,6 @@ class ChatController(args: Bundle) :
} }
if (conversationUser != null && if (conversationUser != null &&
conversationUser.hasSpreedFeatureCapability("no-ping") &&
activity != null && activity != null &&
!activity?.isChangingConfigurations!! && !activity?.isChangingConfigurations!! &&
!isLeavingForConversation !isLeavingForConversation
@ -927,35 +921,6 @@ class ChatController(args: Bundle) :
} }
} }
private fun startPing() {
if (conversationUser != null && !conversationUser.hasSpreedFeatureCapability("no-ping")) {
ncApi?.pingCall(
credentials,
ApiUtils.getUrlForCallPing(
conversationUser.baseUrl,
roomToken
)
)
?.subscribeOn(Schedulers.io())
?.observeOn(AndroidSchedulers.mainThread())
?.repeatWhen { observable -> observable.delay(5000, TimeUnit.MILLISECONDS) }
?.takeWhile { observable -> inConversation }
?.retry(3) { observable -> inConversation }
?.subscribe(object : Observer<GenericOverall> {
override fun onSubscribe(d: Disposable) {
disposableList.add(d)
}
override fun onNext(genericOverall: GenericOverall) {
}
override fun onError(e: Throwable) {}
override fun onComplete() {}
})
}
}
@OnClick(R.id.smileyButton) @OnClick(R.id.smileyButton)
internal fun onSmileyClick() { internal fun onSmileyClick() {
emojiPopup?.toggle() emojiPopup?.toggle()
@ -991,7 +956,6 @@ class ChatController(args: Bundle) :
ApplicationWideCurrentRoomHolder.getInstance().session = ApplicationWideCurrentRoomHolder.getInstance().session =
currentConversation?.sessionId currentConversation?.sessionId
startPing()
setupWebsocket() setupWebsocket()
checkLobbyState() checkLobbyState()
@ -1029,7 +993,6 @@ class ChatController(args: Bundle) :
currentConversation?.sessionId currentConversation?.sessionId
) )
} }
startPing()
if (isFirstMessagesProcessing) { if (isFirstMessagesProcessing) {
pullChatMessages(0) pullChatMessages(0)
} else { } else {

View File

@ -617,12 +617,7 @@ public class NotificationWorker extends Worker {
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
if (!signatureVerification.getUserEntity().hasSpreedFeatureCapability bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(), decryptedPushMessage.getId());
("no-ping")) {
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_ID(), decryptedPushMessage.getId());
} else {
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(), decryptedPushMessage.getId());
}
bundle.putParcelable(BundleKeys.INSTANCE.getKEY_USER_ENTITY(), signatureVerification.getUserEntity()); bundle.putParcelable(BundleKeys.INSTANCE.getKEY_USER_ENTITY(), signatureVerification.getUserEntity());
@ -633,9 +628,7 @@ public class NotificationWorker extends Worker {
switch (decryptedPushMessage.getType()) { switch (decryptedPushMessage.getType()) {
case "call": case "call":
if (!bundle.containsKey(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN())) { if (bundle.containsKey(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN())) {
context.startActivity(intent);
} else {
showNotificationForCallWithNoPing(intent); showNotificationForCallWithNoPing(intent);
} }
break; break;

View File

@ -295,14 +295,6 @@ public class ApiUtils {
return retrofitBucket; return retrofitBucket;
} }
/**
* @deprecated Method is only needed before Talk 4 which is from 2018 => todrop
*/
@Deprecated
public static String getUrlForCallPing(String baseUrl, String token) {
return getUrlForCall(1, baseUrl, token) + "/ping";
}
public static String getUrlForUserProfile(String baseUrl) { public static String getUrlForUserProfile(String baseUrl) {
return baseUrl + ocsApiVersion + "/cloud/user"; return baseUrl + ocsApiVersion + "/cloud/user";
} }