feat(ringoverlay): Stop ringing after 30s and change the message
This commit is contained in:
parent
e1fa5ecb34
commit
ad5fa13339
|
@ -11,25 +11,31 @@ class RingOverlay {
|
||||||
constructor(callee) {
|
constructor(callee) {
|
||||||
this._containerId = 'ringOverlay';
|
this._containerId = 'ringOverlay';
|
||||||
this._audioContainerId = 'ringOverlayRinging';
|
this._audioContainerId = 'ringOverlayRinging';
|
||||||
|
this.isRinging = true;
|
||||||
this.callee = callee;
|
this.callee = callee;
|
||||||
this.render();
|
this.render();
|
||||||
this.audio = document.getElementById(this._audioContainerId);
|
this.audio = document.getElementById(this._audioContainerId);
|
||||||
this.audio.play();
|
this.audio.play();
|
||||||
this._setAudioTimeout();
|
this._setAudioTimeout();
|
||||||
|
this._timeout = setTimeout(() => {
|
||||||
|
this.destroy();
|
||||||
|
this.render();
|
||||||
|
}, 30000);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds and appends the ring overlay to the html document
|
* Builds and appends the ring overlay to the html document
|
||||||
*/
|
*/
|
||||||
_getHtmlStr(callee) {
|
_getHtmlStr(callee) {
|
||||||
|
let callingLabel = this.isRinging? "<p>Calling...</p>" : "";
|
||||||
|
let callerStateLabel = this.isRinging? "" : " isn't available";
|
||||||
return `
|
return `
|
||||||
<div id="${this._containerId}" class='ringing' >
|
<div id="${this._containerId}" class='ringing' >
|
||||||
<div class='ringing__content'>
|
<div class='ringing__content'>
|
||||||
<p>Calling...</p>
|
${callingLabel}
|
||||||
<img class='ringing__avatar' src="${callee.getAvatarUrl()}" />
|
<img class='ringing__avatar' src="${callee.getAvatarUrl()}" />
|
||||||
<div class="ringing__caller-info">
|
<div class="ringing__caller-info">
|
||||||
<p>${callee.getName()}</p>
|
<p>${callee.getName()}${callerStateLabel}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<audio id="${this._audioContainerId}" src="/sounds/ring.ogg" />
|
<audio id="${this._audioContainerId}" src="/sounds/ring.ogg" />
|
||||||
|
@ -49,10 +55,7 @@ class RingOverlay {
|
||||||
* related to the ring overlay.
|
* related to the ring overlay.
|
||||||
*/
|
*/
|
||||||
destroy() {
|
destroy() {
|
||||||
if (this.interval) {
|
this._stopAudio();
|
||||||
clearInterval(this.interval);
|
|
||||||
}
|
|
||||||
|
|
||||||
this._detach();
|
this._detach();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,6 +67,16 @@ class RingOverlay {
|
||||||
$(`#${this._containerId}`).remove();
|
$(`#${this._containerId}`).remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_stopAudio() {
|
||||||
|
this.isRinging = false;
|
||||||
|
if (this.interval) {
|
||||||
|
clearInterval(this.interval);
|
||||||
|
}
|
||||||
|
if(this._timeout) {
|
||||||
|
clearTimeout(this._timeout);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the interval that is going to play the ringing sound.
|
* Sets the interval that is going to play the ringing sound.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue