Content scanner also checks for thumbnails (#5911)

* scan also thumbnails for medias

* pr suggestion
This commit is contained in:
Mauro
2026-07-22 16:43:08 +02:00
committed by GitHub
parent cff46137b9
commit 6967f99626
12 changed files with 155 additions and 17 deletions
@@ -22,7 +22,8 @@ struct FileRoomTimelineView: View {
trailingReservedSize: timelineItem.trailingReservedSize,
shouldBoost: timelineItem.shouldBoost,
contentScannerService: context?.contentScannerService,
mediaSource: timelineItem.content.source) {
mediaSource: timelineItem.content.source,
thumbnailSource: timelineItem.content.thumbnailSource) {
context?.send(viewAction: .mediaTapped(itemID: timelineItem.id))
}
.accessibilityLabel(L10n.commonFile)
@@ -42,6 +43,7 @@ struct MediaFileRoomTimelineContent: View {
var isAudioFile = false
var contentScannerService: ContentScannerServiceProtocol?
var mediaSource: MediaSourceProxy?
var thumbnailSource: MediaSourceProxy?
private var fileDescription: String {
var fileDescription = "\(filename.validatedFileExtension.uppercased())"
@@ -60,7 +62,8 @@ struct MediaFileRoomTimelineContent: View {
var body: some View {
VStack(alignment: .leading, spacing: 8) {
ContentScanningView(contentScannerService: contentScannerService,
mediaSource: mediaSource) {
mediaSource: mediaSource,
thumbnailSource: thumbnailSource) {
if let onMediaTap {
filePreview(isScanning: false)
.onTapGesture(perform: onMediaTap)
@@ -24,7 +24,8 @@ struct ImageRoomTimelineView: View {
// The caption sits 8pts below the content scanner failure placeholder, 4pts below the media.
VStack(alignment: .leading, spacing: contentScanningFailure == nil ? 4 : 8) {
ContentScanningView(contentScannerService: context?.contentScannerService,
mediaSource: timelineItem.content.imageInfo.source) {
mediaSource: timelineItem.content.imageInfo.source,
thumbnailSource: timelineItem.content.thumbnailInfo?.source) {
loadableImage
.accessibilityElement(children: .ignore)
.accessibilityLabel(L10n.commonImage)
@@ -24,7 +24,8 @@ struct VideoRoomTimelineView: View {
// The caption sits 8pts below the content scanner failure placeholder, 4pts below the media.
VStack(alignment: .leading, spacing: contentScanningFailure == nil ? 4 : 8) {
ContentScanningView(contentScannerService: context?.contentScannerService,
mediaSource: timelineItem.content.videoInfo.source) {
mediaSource: timelineItem.content.videoInfo.source,
thumbnailSource: timelineItem.content.thumbnailInfo?.source) {
thumbnail
.timelineMediaFrame(imageInfo: timelineItem.content.thumbnailInfo)
.accessibilityElement(children: .ignore)