Search in sources :

Example 1 with RoomAliasDescription

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);
            }
        });
    }
}
Also used : RoomAliasDescription(org.matrix.androidsdk.rest.model.RoomAliasDescription) MXOsHandler(org.matrix.androidsdk.util.MXOsHandler) Handler(android.os.Handler) MatrixError(org.matrix.androidsdk.rest.model.MatrixError) Room(org.matrix.androidsdk.data.Room) MXDecryptionException(org.matrix.androidsdk.crypto.MXDecryptionException) UnrecognizedCertificateException(org.matrix.androidsdk.ssl.UnrecognizedCertificateException)

Example 2 with RoomAliasDescription

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));
    }
}
Also used : RoomAliasDescription(org.matrix.androidsdk.rest.model.RoomAliasDescription)

Aggregations

RoomAliasDescription (org.matrix.androidsdk.rest.model.RoomAliasDescription)2 Handler (android.os.Handler)1 MXDecryptionException (org.matrix.androidsdk.crypto.MXDecryptionException)1 Room (org.matrix.androidsdk.data.Room)1 MatrixError (org.matrix.androidsdk.rest.model.MatrixError)1 UnrecognizedCertificateException (org.matrix.androidsdk.ssl.UnrecognizedCertificateException)1 MXOsHandler (org.matrix.androidsdk.util.MXOsHandler)1