feat(screen-lock): request on conference join.

pull/13430/head jitsi-meet_8716
Hristo Terezov 2 years ago
parent 904f820555
commit c1573057df
  1. 13
      package-lock.json
  2. 1
      package.json
  3. 39
      react/features/base/conference/middleware.web.ts
  4. 2
      tsconfig.web.json

13
package-lock.json generated

@ -127,6 +127,7 @@
"@jitsi/eslint-config": "4.1.5",
"@types/amplitude-js": "8.16.2",
"@types/audioworklet": "0.0.29",
"@types/dom-screen-wake-lock": "1.0.1",
"@types/js-md5": "0.4.3",
"@types/lodash": "4.14.182",
"@types/punycode": "2.1.0",
@ -5583,6 +5584,12 @@
"@types/node": "*"
}
},
"node_modules/@types/dom-screen-wake-lock": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@types/dom-screen-wake-lock/-/dom-screen-wake-lock-1.0.1.tgz",
"integrity": "sha512-WJQas3OFGcC8AeMzaa7FwzzbNNfanuV2R12kQYNp4BkUMghsRz5JxJ5RgVhJifhw7t0s6LvRSWZArmKbMDZ+5g==",
"dev": true
},
"node_modules/@types/emscripten": {
"version": "0.0.34",
"resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-0.0.34.tgz",
@ -23649,6 +23656,12 @@
"@types/node": "*"
}
},
"@types/dom-screen-wake-lock": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@types/dom-screen-wake-lock/-/dom-screen-wake-lock-1.0.1.tgz",
"integrity": "sha512-WJQas3OFGcC8AeMzaa7FwzzbNNfanuV2R12kQYNp4BkUMghsRz5JxJ5RgVhJifhw7t0s6LvRSWZArmKbMDZ+5g==",
"dev": true
},
"@types/emscripten": {
"version": "0.0.34",
"resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-0.0.34.tgz",

@ -132,6 +132,7 @@
"@jitsi/eslint-config": "4.1.5",
"@types/amplitude-js": "8.16.2",
"@types/audioworklet": "0.0.29",
"@types/dom-screen-wake-lock": "1.0.1",
"@types/js-md5": "0.4.3",
"@types/lodash": "4.14.182",
"@types/punycode": "2.1.0",

@ -5,9 +5,29 @@ import {
import { JitsiConferenceErrors } from '../lib-jitsi-meet';
import MiddlewareRegistry from '../redux/MiddlewareRegistry';
import { CONFERENCE_FAILED, CONFERENCE_JOINED, CONFERENCE_JOIN_IN_PROGRESS } from './actionTypes';
import {
CONFERENCE_FAILED,
CONFERENCE_JOINED,
CONFERENCE_JOIN_IN_PROGRESS,
CONFERENCE_LEFT, KICKED_OUT
} from './actionTypes';
import logger from './logger';
import './middleware.any';
let screenLock: WakeLockSentinel | undefined;
/**
* Releases the screen lock.
*
* @returns {void}
*/
function releaseScreenLock() {
if (screenLock) {
screenLock.release();
screenLock = undefined;
}
}
MiddlewareRegistry.register(store => next => action => {
const { dispatch, getState } = store;
const { enableForcedReload } = getState()['features/base/config'];
@ -23,6 +43,16 @@ MiddlewareRegistry.register(store => next => action => {
dispatch(setSkipPrejoinOnReload(false));
}
if (navigator.wakeLock?.request) {
navigator.wakeLock.request('screen')
.then(lock => {
screenLock = lock;
})
.catch(e => {
logger.error(`Error while requesting wake lock for screen: ${e}`);
});
}
break;
}
case CONFERENCE_FAILED: {
@ -32,8 +62,15 @@ MiddlewareRegistry.register(store => next => action => {
dispatch(setSkipPrejoinOnReload(true));
}
releaseScreenLock();
break;
}
case CONFERENCE_LEFT:
case KICKED_OUT:
releaseScreenLock();
break;
}
return next(action);

@ -5,7 +5,7 @@
"module": "es2020",
"target": "es2020",
"jsx": "react",
"lib": [ "webworker", "ES2020", "DOM" ],
"lib": [ "ES2020", "DOM" ],
"skipLibCheck": true,
"moduleResolution": "Node",
"strict": true,

Loading…
Cancel
Save