public void sendMessage(final String phoneNumber, final String body, final String type) { if (session != null && session.isAlive()) { Room room = getRoomByPhonenumber(phoneNumber); if (room == null) { if (!type.equals("m.notice")) { Log.e(TAG, "sendMessage: not found" ); session.createRoomDirectMessage(realUserid, new SimpleApiCallback<String>() { @Override public void onSuccess(String info) { super.onSuccess(info); session.getRoomsApiClient().updateTopic(info, phoneNumber, new SimpleApiCallback<Void>()); changeDisplayname(info, getContactName(phoneNumber, context)); Room room = store.getRoom(info); SendMesageToRoom(room, body, type); } }); } } else { changeDisplayname(room.getRoomId(), getContactName(phoneNumber, context)); SendMesageToRoom(room, body, type); } } else { Log.e(tag, "Error with sending message"); notSendMesages.add(new NotSendMesage(phoneNumber, body, type)); } }