NoSleep: Move evaluation if any peer is still busy to the PeerManager

This commit is contained in:
schlagmichdoch 2024-02-16 15:25:31 +01:00
parent 74bd7dd406
commit 0d17ada58b
2 changed files with 15 additions and 4 deletions

View file

@ -359,6 +359,9 @@ class Peer {
this._totalBytesReceived = 0;
this._digester = null;
this._filesReceived = [];
// disable NoSleep if idle
Events.fire('evaluate-no-sleep');
}
_refresh() {}
@ -1484,6 +1487,8 @@ class PeersManager {
Events.on('ws-disconnected', _ => this._onWsDisconnected());
Events.on('ws-relay', e => this._onWsRelay(e.detail.peerId, e.detail.message));
Events.on('ws-config', e => this._onWsConfig(e.detail));
Events.on('evaluate-no-sleep', _ => this._onEvaluateNoSleep());
}
_onWsConfig(wsConfig) {
@ -1495,6 +1500,15 @@ class PeersManager {
this.peers[peerId]._onServerSignalMessage(message);
}
_onEvaluateNoSleep() {
// Evaluate if NoSleep should be disabled
for (let i = 0; i < this.peers.length; i++) {
if (this.peers[i]._busy) return;
}
NoSleepUI.disable();
}
_refreshPeer(isCaller, peerId, roomType, roomId) {
const peer = this.peers[peerId];
const roomTypesDiffer = Object.keys(peer._roomIds)[0] !== roomType;

View file

@ -791,7 +791,6 @@ class PeerUI {
this.$el.removeAttribute('status');
this.$el.querySelector('.status').innerHTML = '';
this._currentStatus = null;
NoSleepUI.disableIfIdle();
return;
}
@ -2968,9 +2967,7 @@ class NoSleepUI {
NoSleepUI._active = true;
}
static disableIfIdle() {
if ($$('x-peer[status]')) return;
static disable() {
NoSleepUI._nosleep.disable();
NoSleepUI._active = false;
}