use of org.matrix.androidsdk.rest.model.RoomAliasDescription in project matrix-android-sdk by matrix-org.
the class MXDataHandler method roomIdByAlias.
/**
* Retrieve a room Id by its alias.
*
* @param roomAlias the room alias
* @param callback the asynchronous callback
*/
public void roomIdByAlias(final String roomAlias, final ApiCallback<String> callback) {
String roomId = null;
Collection<Room> rooms = getStore().getRooms();
for (Room room : rooms) {
if (TextUtils.equals(room.getState().alias, roomAlias)) {
roomId = room.getRoomId();
break;
} else {
// getAliases cannot be null
List<String> aliases = room.getState().getAliases();
for (String alias : aliases) {
if (TextUtils.equals(alias, roomAlias)) {
roomId = room.getRoomId();
break;
}
}
// find one matched room id.
if (null != roomId) {
break;
}
}
}
if (null != roomId) {
final String fRoomId = roomId;
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
callback.onSuccess(fRoomId);
}
});
} else {
mRoomsRestClient.getRoomIdByAlias(roomAlias, new ApiCallback<RoomAliasDescription>() {
@Override
public void onSuccess(RoomAliasDescription info) {
callback.onSuccess(info.room_id);
}
@Override
public void onNetworkError(Exception e) {
callback.onNetworkError(e);
}
@Override
public void onMatrixError(MatrixError e) {
callback.onMatrixError(e);
}
@Override
public void onUnexpectedError(Exception e) {
callback.onUnexpectedError(e);
}
});
}
}
use of org.matrix.androidsdk.rest.model.RoomAliasDescription in project matrix-android-sdk by matrix-org.
the class RoomsRestClient method setRoomIdByAlias.
/**
* Set the room ID corresponding to a room alias.
*
* @param roomId the room id.
* @param roomAlias the room alias.
* @param callback the operation callback
*/
public void setRoomIdByAlias(final String roomId, final String roomAlias, final ApiCallback<Void> callback) {
final String description = "setRoomIdByAlias : roomAlias " + roomAlias + " - roomId : " + roomId;
RoomAliasDescription roomAliasDescription = new RoomAliasDescription();
roomAliasDescription.room_id = roomId;
try {
mApi.setRoomIdByAlias(roomAlias, roomAliasDescription, new RestAdapterCallback<Void>(description, mUnsentEventsManager, callback, new RestAdapterCallback.RequestRetryCallBack() {
@Override
public void onRetry() {
setRoomIdByAlias(roomId, roomAlias, callback);
}
}));
} catch (Throwable t) {
callback.onUnexpectedError(new Exception(t));
}
}
Aggregations