`CurrentCallService` and `ActiveCallManager` are read by the whole app but
written only by whoever is actually running a call. Writing has so far been
reachable only from inside `features/call/impl`, because that is where both
implementations live.
Adds `CurrentCallTracker` and `RingingCallTracker` to `features/call/api`, so
that a call implementation in another module can report the call it is running
and answer a ring, without depending on `features/call/impl`.
No behaviour change: both interfaces are implemented by the existing classes,
and their methods are aliases of methods that already existed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cover the last remaining interfaces across features/announcement, cachecleaner,
call, contentscanner, createroom, knockrequests, lockscreen, rolesandpermissions,
startchat, userprofile and viewfolder, with their members and parameters.
Grouped into one commit rather than eleven near-empty ones, per the AGENTS.md rule
about tiny commits.
This completes every features/* api module.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* Add `WakeLock` to dismiss ringing call screen when call is cancelled
We had already some checks in place to automatically cancel a ringing call notification/screen when the call was no longer active, but the `RoomInfo` updates weren't being processed because the app was 'paused'.
The partial wakelock should ensure these room info updates are handled.
* Add mutual exclusion to `ActiveCallManager` methods to improve thread safety
2 replace all actions have been performed:
- "SPDX-License-Identifier: AGPL-3.0-only" to "SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial"
- "Please see LICENSE in the repository root for full details." to "Please see LICENSE files in the repository root for full details."
- Add `ActiveCallManager` to handle incoming and ongoing calls.
- Add ringing call notifications with full screen intents and missed call ones as part of the 'conversation' notifications.
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>