Fix room name empty in some ocassions

Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
Mario Danic 2018-06-12 10:12:24 +02:00
parent 01348f07ea
commit 2f733c1431

View File

@ -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,15 +250,19 @@ 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;
}
}
if (!TextUtils.isEmpty(roomToken)) {
if (TextUtils.isEmpty(conversationName)) {
getRoomInfo();
} else {
setupMentionAutocomplete();
joinRoomWithPassword();
}
}
}
@Override
public void onError(Throwable e) {
@ -345,8 +382,7 @@ public class ChatController extends BaseController implements MessagesListAdapte
});
if (adapterWasNull && startCallFromNotification == null) {
setupMentionAutocomplete();
joinRoomWithPassword();
getRoomInfo();
} else {
handleFromNotification();
}