Search in sources :

Example 1 with RoomMediaMessage

use of org.matrix.androidsdk.data.RoomMediaMessage in project matrix-android-sdk by matrix-org.

the class MatrixMessageListFragment method resend.

/**
 * Resend an event.
 *
 * @param event the event to resend.
 */
protected void resend(final Event event) {
    // should never happen but got it in a GA issue
    if (null == event.eventId) {
        Log.e(LOG_TAG, "resend : got an event with a null eventId");
        return;
    }
    // check if the call is done in the right thread
    if (Looper.getMainLooper().getThread() != Thread.currentThread()) {
        Handler handler = new Handler(Looper.getMainLooper());
        handler.post(new Runnable() {

            @Override
            public void run() {
                resend(event);
            }
        });
        return;
    }
    // update the timestamp
    event.originServerTs = System.currentTimeMillis();
    // remove the event
    getSession().getDataHandler().deleteRoomEvent(event);
    mAdapter.removeEventById(event.eventId);
    mPendingRelaunchTimersByEventId.remove(event.eventId);
    // send it again
    final Message message = JsonUtils.toMessage(event.getContent());
    final RoomMediaMessage roomMediaMessage = new RoomMediaMessage(new Event(message, mSession.getMyUserId(), mRoom.getRoomId()));
    if (message instanceof MediaMessage) {
        sendMediaMessage(roomMediaMessage);
    } else {
        // default case : text / emote
        // skip the upload progress
        mRoom.sendMediaMessage(roomMediaMessage, getMaxThumbnailWidth(), getMaxThumbnailHeight(), mEventCreationListener);
    }
}
Also used : RoomMediaMessage(org.matrix.androidsdk.data.RoomMediaMessage) MediaMessage(org.matrix.androidsdk.rest.model.message.MediaMessage) RoomMediaMessage(org.matrix.androidsdk.data.RoomMediaMessage) Message(org.matrix.androidsdk.rest.model.message.Message) MediaMessage(org.matrix.androidsdk.rest.model.message.MediaMessage) Handler(android.os.Handler) MotionEvent(android.view.MotionEvent) Event(org.matrix.androidsdk.rest.model.Event) RoomMediaMessage(org.matrix.androidsdk.data.RoomMediaMessage)

Aggregations

Handler (android.os.Handler)1 MotionEvent (android.view.MotionEvent)1 RoomMediaMessage (org.matrix.androidsdk.data.RoomMediaMessage)1 Event (org.matrix.androidsdk.rest.model.Event)1 MediaMessage (org.matrix.androidsdk.rest.model.message.MediaMessage)1 Message (org.matrix.androidsdk.rest.model.message.Message)1