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);
}
}
Aggregations