Эх сурвалжийг харах

Fix room name empty in some ocassions

Signed-off-by: Mario Danic <mario@lovelyhq.com>
Mario Danic 6 жил өмнө
parent
commit
2f733c1431

+ 42 - 6
app/src/main/java/com/nextcloud/talk/controllers/ChatController.java

@@ -71,6 +71,7 @@ import com.nextcloud.talk.models.json.chat.ChatOverall;
 import com.nextcloud.talk.models.json.generic.GenericOverall;
 import com.nextcloud.talk.models.json.mention.Mention;
 import com.nextcloud.talk.models.json.rooms.Room;
+import com.nextcloud.talk.models.json.rooms.RoomOverall;
 import com.nextcloud.talk.models.json.rooms.RoomsOverall;
 import com.nextcloud.talk.presenters.MentionAutocompletePresenter;
 import com.nextcloud.talk.utils.ApiUtils;
@@ -202,6 +203,38 @@ public class ChatController extends BaseController implements MessagesListAdapte
         this.startCallFromNotification = args.getBoolean(BundleKeys.KEY_FROM_NOTIFICATION_START_CALL);
     }
 
+    private void getRoomInfo() {
+        ncApi.getRoom(credentials, ApiUtils.getRoom(baseUrl, roomToken))
+                .subscribeOn(Schedulers.newThread())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new Observer<RoomOverall>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+
+                    }
+
+                    @Override
+                    public void onNext(RoomOverall roomOverall) {
+                        conversationName = roomOverall.getOcs().getData().getDisplayName();
+                        setTitle();
+
+                        setupMentionAutocomplete();
+                        joinRoomWithPassword();
+
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
     private void handleFromNotification() {
         ncApi.getRooms(credentials, ApiUtils.getUrlForGetRooms(baseUrl))
                 .subscribeOn(Schedulers.newThread())
@@ -217,14 +250,18 @@ public class ChatController extends BaseController implements MessagesListAdapte
                         for (Room room : roomsOverall.getOcs().getData()) {
                             if (roomId.equals(room.getRoomId())) {
                                 roomToken = room.getToken();
-                                conversationName = room.getDisplayName();
-                                setTitle();
                                 break;
                             }
                         }
 
-                        setupMentionAutocomplete();
-                        joinRoomWithPassword();
+                        if (!TextUtils.isEmpty(roomToken)) {
+                            if (TextUtils.isEmpty(conversationName)) {
+                                getRoomInfo();
+                            } else {
+                                setupMentionAutocomplete();
+                                joinRoomWithPassword();
+                            }
+                        }
                     }
 
                     @Override
@@ -345,8 +382,7 @@ public class ChatController extends BaseController implements MessagesListAdapte
         });
 
         if (adapterWasNull && startCallFromNotification == null) {
-            setupMentionAutocomplete();
-            joinRoomWithPassword();
+            getRoomInfo();
         } else {
             handleFromNotification();
         }