diff --git a/src/domain/session/room/timeline/tiles/BaseMediaTile.js b/src/domain/session/room/timeline/tiles/BaseMediaTile.js index 9cd3222d..ea3812d7 100644 --- a/src/domain/session/room/timeline/tiles/BaseMediaTile.js +++ b/src/domain/session/room/timeline/tiles/BaseMediaTile.js @@ -72,7 +72,7 @@ export class BaseMediaTile extends MessageTile { const attachment = this._entry.pendingEvent.getAttachment("info.thumbnail_url"); return attachment && attachment.localPreview.url; } - if (this.mimeType?.startsWith("image/")) { + if (this._isMainResourceImage()) { if (this._decryptedFile) { return this._decryptedFile.url; } else { @@ -111,7 +111,6 @@ export class BaseMediaTile extends MessageTile { return null; } - async _loadEncryptedFile(file) { const blob = await this._mediaRepository.downloadEncryptedFile(file, true); if (this.isDisposed) { @@ -128,7 +127,7 @@ export class BaseMediaTile extends MessageTile { if (thumbnailFile) { this._decryptedThumbnail = await this._loadEncryptedFile(thumbnailFile); this.emitChange("thumbnailUrl"); - } else if (file && this.mimeType?.startsWith("image/")) { // is the main resource an image? then try that for a thumbnail + } else if (file && this._isMainResourceImage()) { // is the main resource an image? then try that for a thumbnail this._decryptedFile = await this._loadEncryptedFile(file); this.emitChange("thumbnailUrl"); } @@ -146,4 +145,8 @@ export class BaseMediaTile extends MessageTile { // we should not upscale images, so limit scale factor to 1 upwards return Math.min(scaleWidthFactor, scaleHeightFactor, 1); } + + _isMainResourceImage() { + return true; // overwritten in VideoTile + } } diff --git a/src/domain/session/room/timeline/tiles/VideoTile.js b/src/domain/session/room/timeline/tiles/VideoTile.js index 13ed68f9..fbcf26c6 100644 --- a/src/domain/session/room/timeline/tiles/VideoTile.js +++ b/src/domain/session/room/timeline/tiles/VideoTile.js @@ -40,4 +40,8 @@ export class VideoTile extends BaseMediaTile { get shape() { return "video"; } + + _isMainResourceImage() { + return false; + } }