Skip to content

feat: handle call moderation actions [WPB-3185]#4691

Open
saleniuk wants to merge 1 commit intodevelopfrom
feat/handle-call-moderation-actions
Open

feat: handle call moderation actions [WPB-3185]#4691
saleniuk wants to merge 1 commit intodevelopfrom
feat/handle-call-moderation-actions

Conversation

@saleniuk
Copy link
Copy Markdown
Contributor

@saleniuk saleniuk commented Apr 3, 2026

https://wearezeta.atlassian.net/browse/WPB-3185


PR Submission Checklist for internal contributors

  • The PR Title

    • conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
    • contains a reference JIRA issue number like SQPIT-764
    • answers the question: If merged, this PR will: ... ³
  • The PR Description

    • is free of optional paragraphs and you have filled the relevant parts to the best of your ability

What's new in this PR?

User needs to be informed of the actions taken towards them by the moderator/admin during the call.
Managing and storing these events has been added in kalium, along with the use case to observe them.
This PR includes changes needed to display them correctly:

  • Added two methods to ExpiringMap to be able to add item which expires in a given custom period and to add one without expiration
  • Added new InCallToast model which currently has two main types:
    • ModerationAction to show all actions done by the moderators/admins
    • Fullscreen which handles already existing labels informing about how to open or close the fullscreen
  • Added logic of observing and expiring toasts in OngoingCallViewModel - toasts are stored by their ID, but currently toasts of the same type share the same ID, thanks to that there is always only one toast of a given type on the screen, and when a new one appears, it overwrites the existing one of the same type
  • Created dedicated composable and panel to show these in-call toasts chronologically and animate adding and removing them
  • Removed old DoubleTapToast and its usages in FullscreenTile and OngoingCallScreen as it’s now handled by the InCallToast

Dependencies (Optional)

Needs releases with:

Testing

Test Coverage (Optional)

  • I have added automated test to this contribution

How to Test

Join a call, unmute and let moderator/admin to mute you remotely.
Open and close fullscreen.

Attachments (Optional)

Screen.Recording.2026-04-03.at.15.55.36.mov

PR Post Submission Checklist for internal contributors (Optional)

  • Wire's Github Workflow has automatically linked the PR to a JIRA issue

PR Post Merge Checklist for internal contributors

  • If any soft of configuration variable was introduced by this PR, it has been added to the relevant documents and the CI jobs have been updated.

References
  1. https://sparkbox.com/foundry/semantic_commit_messages
  2. https://github.com/wireapp/.github#usage
  3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Apr 3, 2026

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 3, 2026

Codecov Report

❌ Patch coverage is 97.22222% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 49.95%. Comparing base (12e6627) to head (c5beaef).

Files with missing lines Patch % Lines
...android/ui/calling/ongoing/OngoingCallViewModel.kt 95.74% 0 Missing and 2 partials ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #4691      +/-   ##
===========================================
+ Coverage    49.78%   49.95%   +0.17%     
===========================================
  Files          601      601              
  Lines        20583    20623      +40     
  Branches      3282     3284       +2     
===========================================
+ Hits         10247    10302      +55     
+ Misses        9367     9350      -17     
- Partials       969      971       +2     
Files with missing lines Coverage Δ
...ire/android/ui/calling/ongoing/OngoingCallState.kt 100.00% <ø> (ø)
...id/ui/calling/ongoing/fullscreen/FullScreenTile.kt 0.00% <ø> (ø)
...re/android/ui/calling/ongoing/toast/InCallToast.kt 100.00% <100.00%> (ø)
...c/main/kotlin/com/wire/android/util/ExpiringMap.kt 100.00% <100.00%> (ø)
...android/ui/calling/ongoing/OngoingCallViewModel.kt 94.55% <95.74%> (+9.88%) ⬆️

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 12e6627...c5beaef. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant