|
|
|
@ -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); |
|
|
|
|