Bläddra i källkod

add method to update external signaling information

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Andy Scherzinger 2 år sedan
förälder
incheckning
cbe4658632

+ 6 - 20
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);
                         }

+ 8 - 0
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<Int> {
+        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,