Merge pull request #1032 from thecodingmachine/CheryPickDicussionCircle

Improve focus/blur discussion circle
This commit is contained in:
David Négrier 2021-05-11 10:17:15 +02:00 committed by GitHub
commit 0229f09ec6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -141,6 +141,9 @@ export class MediaManager {
this.mySoundMeterElement.childNodes.forEach((value: ChildNode, index) => { this.mySoundMeterElement.childNodes.forEach((value: ChildNode, index) => {
this.mySoundMeterElement.children.item(index)?.classList.remove('active'); this.mySoundMeterElement.children.item(index)?.classList.remove('active');
});*/ });*/
//Check of ask notification navigator permission
this.getNotification();
} }
public updateScene(){ public updateScene(){
@ -790,9 +793,9 @@ export class MediaManager {
this.setTimeOutlastUpdateScene = setTimeout(() => { this.setTimeOutlastUpdateScene = setTimeout(() => {
const now = new Date(); const now = new Date();
//if last update is more of 10 sec //if last update is more of 10 sec
if( (now.getTime() - this.lastUpdateScene.getTime()) > 10000) { if( (now.getTime() - this.lastUpdateScene.getTime()) > 10000 && this.remoteVideo.size === 0) {
this.blurCamera(); this.blurCamera();
}else{ }else if((now.getTime() - this.lastUpdateScene.getTime()) <= 10000){
this.focusCamera(); this.focusCamera();
} }
this.checkActiveUser(); this.checkActiveUser();
@ -854,6 +857,32 @@ export class MediaManager {
elementChildre.classList.add('active'); elementChildre.classList.add('active');
}); });
} }
public getNotification(){
//Get notification
if (window.Notification && Notification.permission !== "granted") {
Notification.requestPermission().catch((err) => {
console.error(`Notification permission error`, err);
});
}
}
public createNotification(userName: string){
if(this.focused){
return;
}
if (window.Notification && Notification.permission === "granted") {
const title = 'WorkAdventure';
const options = {
body: `Hi! ${userName} wants to discuss with you, don't be afraid!`,
icon: '/resources/logos/logo-WA-min.png',
image: '/resources/logos/logo-WA-min.png',
badge: '/resources/logos/logo-WA-min.png',
};
new Notification(title, options);
//new Notification(`Hi! ${userName} wants to discuss with you, don't be afraid!`);
}
}
} }
export const mediaManager = new MediaManager(); export const mediaManager = new MediaManager();

View File

@ -158,6 +158,11 @@ export class SimplePeer {
this.sendLocalScreenSharingStreamToUser(user.userId); this.sendLocalScreenSharingStreamToUser(user.userId);
} }
}); });
//Create a notification for first user in circle discussion
if(this.PeerConnectionArray.size === 0){
mediaManager.createNotification(user.name??'');
}
this.PeerConnectionArray.set(user.userId, peer); this.PeerConnectionArray.set(user.userId, peer);
for (const peerConnectionListener of this.peerConnectionListeners) { for (const peerConnectionListener of this.peerConnectionListeners) {