fix: override cancelScheduledDelayedEvent/restart/send in CallWidgetDriver

The base WidgetDriver throws Failed to override function for these
methods. ClientWidgetApi routes update_delayed_event widget actions to
cancelScheduledDelayedEvent, restartScheduledDelayedEvent, or
sendScheduledDelayedEvent. Without these overrides every delayed-event
refresh from element-call fails, causing MembershipManager to drop the
call after retries.

Also make listenAction auto-call preventDefault so io.element.join and
other custom widget actions return success. Add set_always_on_screen
handler so element-call PiP requests are acknowledged.
This commit is contained in:
Lotus Bot
2026-05-22 21:51:17 -04:00
parent d05868179d
commit f4ec09e168
2 changed files with 22 additions and 1 deletions
+12
View File
@@ -148,6 +148,18 @@ export class CallWidgetDriver extends WidgetDriver {
await client._unstable_updateDelayedEvent(delayId, action);
}
public async cancelScheduledDelayedEvent(delayId: string): Promise<void> {
await this.mx._unstable_cancelScheduledDelayedEvent(delayId);
}
public async restartScheduledDelayedEvent(delayId: string): Promise<void> {
await this.mx._unstable_restartScheduledDelayedEvent(delayId);
}
public async sendScheduledDelayedEvent(delayId: string): Promise<void> {
await this.mx._unstable_sendScheduledDelayedEvent(delayId);
}
public async sendToDevice(
eventType: string,
encrypted: boolean,