From cbe465863228681d8e02539d1b1fb0a1dead8c97 Mon Sep 17 00:00:00 2001 From: Andy Scherzinger Date: Sat, 16 Jul 2022 14:33:19 +0200 Subject: [PATCH] add method to update external signaling information Signed-off-by: Andy Scherzinger --- .../talk/activities/CallActivity.java | 26 +++++-------------- .../com/nextcloud/talk/users/UserManager.kt | 8 ++++++ 2 files changed, 14 insertions(+), 20 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 836e02879..e1ae1a25e 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -1208,26 +1208,12 @@ public class CallActivity extends CallBaseActivity { } Log.d(TAG, " hasExternalSignalingServer: " + hasExternalSignalingServer); - if (!"?".equals(conversationUser.getUserId())) { - try { - userManager.createOrUpdateUser( - null, - new UserManager.UserAttributes( - conversationUser.getId(), - null, - null, - null, - null, - null, - null, - null, - null, - LoganSquare.serialize(externalSignalingServer))) - .subscribeOn(Schedulers.io()) - .subscribe(); - } catch (IOException exception) { - Log.e(TAG, "Failed to serialize external signaling server", exception); - } + if (!"?".equals(conversationUser.getUserId()) && conversationUser.getId() != null) { + Log.d(TAG, "Update externalSignalingServer for: " + conversationUser.getId() + + " / " + conversationUser.getUserId()); + userManager.updateExternalSignalingServer(conversationUser.getId(), externalSignalingServer) + .subscribeOn(Schedulers.io()) + .subscribe(); } else { conversationUser.setExternalSignalingServer(externalSignalingServer); } diff --git a/app/src/main/java/com/nextcloud/talk/users/UserManager.kt b/app/src/main/java/com/nextcloud/talk/users/UserManager.kt index 467742af9..cfd83b88b 100644 --- a/app/src/main/java/com/nextcloud/talk/users/UserManager.kt +++ b/app/src/main/java/com/nextcloud/talk/users/UserManager.kt @@ -116,6 +116,14 @@ class UserManager internal constructor(private val userRepository: UsersReposito }.map { TRUE } } + fun updateExternalSignalingServer(id: Long, externalSignalingServer: ExternalSignalingServer): Single { + return userRepository.getUserWithId(id).map { user -> + user.externalSignalingServer = externalSignalingServer + userRepository.updateUser(user) + }.toSingle() + } + + @Deprecated("Only available for migration, use updateExternalSignalingServer or create new methods") fun createOrUpdateUser( username: String?, userAttributes: UserAttributes,