Merge pull request #2690 from robintown/spotlight-speaking

Show speaking indicators in spotlight during screen sharing
This commit is contained in:
Robin
2024-11-04 12:36:58 -05:00
committed by GitHub
2 changed files with 26 additions and 1 deletions

View File

@@ -744,7 +744,25 @@ export class CallViewModel extends ViewModel {
}
public showSpeakingIndicators: Observable<boolean> = this.layout.pipe(
map((l) => l.type !== "one-on-one" && !l.type.startsWith("spotlight-")),
map((l) => {
switch (l.type) {
case "spotlight-landscape":
case "spotlight-portrait":
// If the spotlight is showing the active speaker, we can do without
// speaking indicators as they're a redundant visual cue. But if
// screen sharing feeds are in the spotlight we still need them.
return l.spotlight[0] instanceof ScreenShareViewModel;
// In expanded spotlight layout, the active speaker is always shown in
// the picture-in-picture tile so there is no need for speaking
// indicators. And in one-on-one layout there's no question as to who is
// speaking.
case "spotlight-expanded":
case "one-on-one":
return false;
default:
return true;
}
}),
this.scope.state(),
);