Pārlūkot izejas kodu

Merge pull request #2540 from nextcloud/fix-update-of-guest-avatars-in-call-participants

Fix update of guest avatars in call participants
Tim Krüger 2 gadi atpakaļ
vecāks
revīzija
3d89d6b22f

+ 2 - 13
app/src/main/java/com/nextcloud/talk/activities/CallActivity.java

@@ -2382,22 +2382,11 @@ public class CallActivity extends CallBaseActivity {
             }
         }
 
-        String urlForAvatar;
-        if (!TextUtils.isEmpty(userId4Usage)) {
-            urlForAvatar = ApiUtils.getUrlForAvatar(baseUrl,
-                                                    userId4Usage,
-                                                    true);
-        } else {
-            urlForAvatar = ApiUtils.getUrlForGuestAvatar(baseUrl,
-                                                         nick,
-                                                         true);
-        }
-
-        ParticipantDisplayItem participantDisplayItem = new ParticipantDisplayItem(userId4Usage,
+        ParticipantDisplayItem participantDisplayItem = new ParticipantDisplayItem(baseUrl,
+                                                                                   userId4Usage,
                                                                                    session,
                                                                                    connected,
                                                                                    nick,
-                                                                                   urlForAvatar,
                                                                                    mediaStream,
                                                                                    videoStreamType,
                                                                                    videoStreamEnabled,

+ 19 - 4
app/src/main/java/com/nextcloud/talk/adapters/ParticipantDisplayItem.java

@@ -1,9 +1,14 @@
 package com.nextcloud.talk.adapters;
 
+import android.text.TextUtils;
+
+import com.nextcloud.talk.utils.ApiUtils;
+
 import org.webrtc.EglBase;
 import org.webrtc.MediaStream;
 
 public class ParticipantDisplayItem {
+    private String baseUrl;
     private String userId;
     private String session;
     private boolean connected;
@@ -15,16 +20,18 @@ public class ParticipantDisplayItem {
     private EglBase rootEglBase;
     private boolean isAudioEnabled;
 
-    public ParticipantDisplayItem(String userId, String session, boolean connected, String nick, String urlForAvatar, MediaStream mediaStream, String streamType, boolean streamEnabled, EglBase rootEglBase) {
+    public ParticipantDisplayItem(String baseUrl, String userId, String session, boolean connected, String nick, MediaStream mediaStream, String streamType, boolean streamEnabled, EglBase rootEglBase) {
+        this.baseUrl = baseUrl;
         this.userId = userId;
         this.session = session;
         this.connected = connected;
         this.nick = nick;
-        this.urlForAvatar = urlForAvatar;
         this.mediaStream = mediaStream;
         this.streamType = streamType;
         this.streamEnabled = streamEnabled;
         this.rootEglBase = rootEglBase;
+
+        this.updateUrlForAvatar();
     }
 
     public String getUserId() {
@@ -33,6 +40,8 @@ public class ParticipantDisplayItem {
 
     public void setUserId(String userId) {
         this.userId = userId;
+
+        this.updateUrlForAvatar();
     }
 
     public String getSession() {
@@ -57,14 +66,20 @@ public class ParticipantDisplayItem {
 
     public void setNick(String nick) {
         this.nick = nick;
+
+        this.updateUrlForAvatar();
     }
 
     public String getUrlForAvatar() {
         return urlForAvatar;
     }
 
-    public void setUrlForAvatar(String urlForAvatar) {
-        this.urlForAvatar = urlForAvatar;
+    private void updateUrlForAvatar() {
+        if (!TextUtils.isEmpty(userId)) {
+            urlForAvatar = ApiUtils.getUrlForAvatar(baseUrl, userId, true);
+        } else {
+            urlForAvatar = ApiUtils.getUrlForGuestAvatar(baseUrl, nick, true);
+        }
     }
 
     public MediaStream getMediaStream() {