From 2f733c14315c6c1007af64b875da77d8df7ea206 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Tue, 12 Jun 2018 10:12:24 +0200 Subject: [PATCH] Fix room name empty in some ocassions Signed-off-by: Mario Danic --- .../talk/controllers/ChatController.java | 48 ++++++++++++++++--- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java index 41ce67cab..9f5affe5c 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java +++ b/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() { + @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(); }