From b529f6edc61e0365ed4ab9025c5d875e5f4413c1 Mon Sep 17 00:00:00 2001
From: csantosm <4a.santos@gmail.com>
Date: Mon, 28 Feb 2022 14:37:35 +0100
Subject: [PATCH] openvidu-components: Refactored nickname container
---
.../components/session/session.component.ts | 2 +-
.../components/stream/stream.component.css | 3 +-
.../components/stream/stream.component.html | 32 ++++++-------------
.../lib/components/stream/stream.component.ts | 20 ++++++------
.../user-settings/user-settings.component.ts | 4 +--
.../participant/participant.service.ts | 22 ++++++-------
6 files changed, 35 insertions(+), 48 deletions(-)
diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/session/session.component.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/session/session.component.ts
index 541ad097..7398f80f 100644
--- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/session/session.component.ts
+++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/session/session.component.ts
@@ -252,7 +252,7 @@ export class SessionComponent implements OnInit {
if (isRemoteConnection) {
const nickname = this.participantService.getNicknameFromConnectionData(event.data);
- this.participantService.setNickname(connectionId, nickname);
+ this.participantService.setRemoteNickname(connectionId, nickname);
}
});
}
diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.css b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.css
index c46200ef..86d9173d 100644
--- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.css
+++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.css
@@ -21,9 +21,10 @@
border-radius: var(--ov-panel-radius);
}
- #dialogNickname {
+ #nickname-input-container {
background-color: #0000005e;
border-radius: var(--ov-panel-radius);
+
}
#closeButton {
diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.html b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.html
index 5ecfb18f..71fa9318 100644
--- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.html
+++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.html
@@ -8,26 +8,17 @@
{{ this._stream.participant.nickname }}
{{ this._stream.participant.nickname }}_SCREEN
-
- (edit)
-
@@ -41,16 +32,13 @@
[mutedSound]="_stream?.participant?.isMutedForcibly"
>
-
-
-
diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.ts
index a40e7059..32ea866a 100644
--- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.ts
+++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.ts
@@ -1,5 +1,4 @@
import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';
-import { FormControl, Validators } from '@angular/forms';
import { MatMenuPanel, MatMenuTrigger } from '@angular/material/menu';
import { NicknameMatcher } from '../../matchers/nickname.matcher';
import { VideoSizeIcon } from '../../models/icon.model';
@@ -24,9 +23,8 @@ export class StreamComponent implements OnInit {
videoTypeEnum = VideoType;
videoSizeIcon: VideoSizeIcon = VideoSizeIcon.BIG;
toggleNickname: boolean;
- nicknameFormControl: FormControl;
- matcher: NicknameMatcher;
_stream: StreamModel;
+ nickname: string;
private _streamContainer: ElementRef;
@ViewChild(MatMenuTrigger) public menuTrigger: MatMenuTrigger;
@ViewChild('menu') menu: MatMenuPanel;
@@ -61,7 +59,7 @@ export class StreamComponent implements OnInit {
this._stream = stream;
this.checkVideoEnlarged();
if(this._stream.participant) {
- this.nicknameFormControl = new FormControl(this._stream.participant.nickname, [Validators.maxLength(25), Validators.required]);
+ this.nickname = this._stream.participant.nickname;
}
}
@@ -73,7 +71,6 @@ export class StreamComponent implements OnInit {
}
ngOnInit() {
- this.matcher = new NicknameMatcher();
}
ngOnDestroy() {
@@ -111,12 +108,13 @@ export class StreamComponent implements OnInit {
}
}
- eventKeyPress(event) {
- if (event && event.keyCode === 13 && this.nicknameFormControl.valid) {
- const nickname = this.nicknameFormControl.value;
- this.participantService.setNickname(this._stream.connectionId, nickname);
- this.storageService.setNickname(nickname);
- this.openviduService.sendSignal(Signal.NICKNAME_CHANGED, undefined, { clientData: nickname });
+ updateNickname(event) {
+ if (event?.keyCode === 13 || event?.type === 'focusout') {
+ if(!!this.nickname){
+ this.participantService.setMyNickname(this.nickname);
+ this.storageService.setNickname(this.nickname);
+ this.openviduService.sendSignal(Signal.NICKNAME_CHANGED, undefined, { clientData: this.nickname });
+ }
this.toggleNicknameForm();
}
}
diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/user-settings/user-settings.component.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/user-settings/user-settings.component.ts
index a7bee0fd..aa50c3fe 100644
--- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/user-settings/user-settings.component.ts
+++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/user-settings/user-settings.component.ts
@@ -42,7 +42,7 @@ export class UserSettingsComponent implements OnInit, OnDestroy {
localParticipant: ParticipantAbstractModel;
columns: number;
- nicknameFormControl = new FormControl('', [Validators.maxLength(25), Validators.required]);
+ nicknameFormControl = new FormControl('', [Validators.maxLength(20), Validators.required]);
matcher = new NicknameMatcher();
hasVideoDevices: boolean;
hasAudioDevices: boolean;
@@ -223,7 +223,7 @@ export class UserSettingsComponent implements OnInit, OnDestroy {
joinSession() {
if (this.nicknameFormControl.valid) {
const nickname = this.nicknameFormControl.value;
- this.participantService.setNickname(this.participantService.getMyCameraConnectionId(), nickname);
+ this.participantService.setMyNickname(nickname);
this.storageSrv.setNickname(nickname);
return this.onJoinClicked.emit();
}
diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/services/participant/participant.service.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/services/participant/participant.service.ts
index c998f6c6..f1c5dd9a 100644
--- a/openvidu-components-angular/projects/openvidu-angular/src/lib/services/participant/participant.service.ts
+++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/services/participant/participant.service.ts
@@ -100,17 +100,9 @@ export class ParticipantService {
this.updateLocalParticipant();
}
- setNickname(connectionId: string, nickname: string) {
- if (this.localParticipant.hasConnectionId(connectionId)) {
- this.localParticipant.setNickname(nickname);
- // this.updateLocalParticipant();
- } else {
- const participant = this.getRemoteParticipantByConnectionId(connectionId);
- if (participant) {
- participant.setNickname(nickname);
- // this.updateRemoteParticipants();
- }
- }
+ setMyNickname(nickname: string) {
+ this.localParticipant.setNickname(nickname);
+ // this.updateLocalParticipant();
}
getMyNickname(): string {
@@ -286,6 +278,14 @@ export class ParticipantService {
}
}
+ setRemoteNickname(connectionId: string, nickname: string) {
+ const participant = this.getRemoteParticipantByConnectionId(connectionId);
+ if (participant) {
+ participant.setNickname(nickname);
+ // this.updateRemoteParticipants();
+ }
+ }
+
updateRemoteParticipants() {
this._remoteParticipants.next(this.remoteParticipants);
}