Skip to content

Content scanner: scan timeline events for unsafe content#7159

Draft
jmartinesp wants to merge 26 commits into
developfrom
feat/content-scanner-manual-scan-timeline
Draft

Content scanner: scan timeline events for unsafe content#7159
jmartinesp wants to merge 26 commits into
developfrom
feat/content-scanner-manual-scan-timeline

Conversation

@jmartinesp

Copy link
Copy Markdown
Member

Content

Second iteration of content scanner: scan timeline events and display errors for dangerous ones.

Based on #7139

Motivation and context

Screenshots / GIFs

Tests

  • Step 1
  • Step 2
  • Step ...

Tested devices

  • Physical
  • Emulator
  • OS version(s):

Checklist

  • I am aware of the etiquette.
  • This PR was made with the help of AI:
    • Yes. In this case, please request a review by Copilot.
    • No.
  • Changes have been tested on an Android device or Android emulator with API 24
  • UI change has been tested on both light and dark themes
  • Accessibility has been taken into account. See https://github.com/element-hq/element-x-android/blob/develop/CONTRIBUTING.md#accessibility
  • Pull request is based on the develop branch
  • Pull request title will be used in the release note, it clearly defines what will change for the user
  • Pull request includes screenshots or videos if containing UI changes
  • You've made a self review of your PR

@jmartinesp jmartinesp added the PR-Wip For anything that isn't ready to ship and will be enabled at a later date label Jul 6, 2026
@jmartinesp jmartinesp changed the title Use MockWebServer in DefaultWellknownRetrieverTest Content scanner: scan timeline events for unsafe content Jul 6, 2026
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

📱 Scan the QR code below to install the build (arm64 only) for this PR.
QR code
If you can't scan the QR code you can install the build via this link: https://i.diawi.com/qjDX1h

@jmartinesp jmartinesp added the Record-Screenshots Runs the 'Record Screenshots' CI job and adds a commit with any new screenshots found. label Jul 7, 2026
@github-actions github-actions Bot removed the Record-Screenshots Runs the 'Record Screenshots' CI job and adds a commit with any new screenshots found. label Jul 7, 2026
@codecov

codecov Bot commented Jul 7, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 75.21815% with 142 lines in your changes missing coverage. Please review.
✅ Project coverage is 80.52%. Comparing base (904d95d) to head (1cb9996).
⚠️ Report is 3 commits behind head on feat/content-scanner-integration.

Files with missing lines Patch % Lines
...ontentscanner/impl/DefaultContentScannerService.kt 0.00% 39 Missing ⚠️
...timeline/components/event/TimelineItemVoiceView.kt 80.30% 7 Missing and 6 partials ⚠️
...timeline/components/event/TimelineItemVideoView.kt 83.33% 5 Missing and 5 partials ⚠️
...timeline/components/event/TimelineItemImageView.kt 82.97% 5 Missing and 3 partials ⚠️
...res/contentscanner/impl/di/ContentScannerModule.kt 0.00% 7 Missing ⚠️
...meline/components/event/TimelineItemStickerView.kt 88.88% 4 Missing and 2 partials ⚠️
...android/libraries/textcomposer/ComposerModeView.kt 66.66% 2 Missing and 4 partials ⚠️
...s/impl/timeline/components/TimelineItemEventRow.kt 85.29% 1 Missing and 4 partials ⚠️
...l/timeline/model/event/TimelineItemEventContent.kt 16.66% 5 Missing ⚠️
...tentvalidation/LocalEventContentValidationState.kt 75.00% 1 Missing and 4 partials ⚠️
... and 14 more
Additional details and impacted files
@@                         Coverage Diff                          @@
##           feat/content-scanner-integration    #7159      +/-   ##
====================================================================
- Coverage                             80.58%   80.52%   -0.07%     
====================================================================
  Files                                  2694     2703       +9     
  Lines                                 76518    76848     +330     
  Branches                              10303    10373      +70     
====================================================================
+ Hits                                  61662    61880     +218     
- Misses                                10915    11010      +95     
- Partials                               3941     3958      +17     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@sonarqubecloud

sonarqubecloud Bot commented Jul 7, 2026

Copy link
Copy Markdown

@jmartinesp jmartinesp force-pushed the feat/content-scanner-integration branch from 0271e0c to 2ada023 Compare July 8, 2026 06:57
Base automatically changed from feat/content-scanner-integration to develop July 8, 2026 07:50
jmartinesp and others added 21 commits July 8, 2026 09:57
…later handle them and check why some media didn't load
…ontent's validation state in any UI component inside the chat screen
…s for images, videos and stickers, so we can check if the thumbnail had already been validated
…on state: invalid contents will display a red background and border
…`eventId`, needed for the content validation
…imeline items, besides the thumbnails that are displayed
@jmartinesp jmartinesp force-pushed the feat/content-scanner-manual-scan-timeline branch from 1cb9996 to ddd25f2 Compare July 8, 2026 14:55
@jmartinesp jmartinesp force-pushed the feat/content-scanner-manual-scan-timeline branch from ddd25f2 to 512f0e6 Compare July 8, 2026 14:56
@jmartinesp jmartinesp force-pushed the feat/content-scanner-manual-scan-timeline branch from f98ed05 to c97c235 Compare July 8, 2026 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR-Wip For anything that isn't ready to ship and will be enabled at a later date

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants