This commit is contained in:
34
react/features/mobile/proximity/middleware.ts
Normal file
34
react/features/mobile/proximity/middleware.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import { NativeModules } from 'react-native';
|
||||
|
||||
import { getCurrentConference } from '../../base/conference/functions';
|
||||
import StateListenerRegistry from '../../base/redux/StateListenerRegistry';
|
||||
|
||||
/**
|
||||
* State listener which enables / disables the proximity sensor based on the
|
||||
* current conference state. If the proximity sensor is enabled, it will dim
|
||||
* the screen and disable touch controls when an object is nearby. The
|
||||
* functionality is enabled when the current audio device is the earpiece.
|
||||
*/
|
||||
StateListenerRegistry.register(
|
||||
/* selector */ state => {
|
||||
const { devices } = state['features/mobile/audio-mode'];
|
||||
const selectedDevice = devices.filter(d => d.selected)[0];
|
||||
const conference = getCurrentConference(state);
|
||||
|
||||
return Boolean(conference && selectedDevice?.type === 'EARPIECE');
|
||||
},
|
||||
/* listener */ proximityEnabled => _setProximityEnabled(proximityEnabled)
|
||||
);
|
||||
|
||||
/**
|
||||
* Enables / disables the proximity sensor. If the proximity sensor is enabled,
|
||||
* it will dim the screen and disable touch controls when an object is nearby.
|
||||
*
|
||||
* @param {boolean} enabled - True to enable the proximity sensor or false to
|
||||
* disable it.
|
||||
* @private
|
||||
* @returns {void}
|
||||
*/
|
||||
function _setProximityEnabled(enabled: boolean) {
|
||||
NativeModules.Proximity.setEnabled(Boolean(enabled));
|
||||
}
|
||||
Reference in New Issue
Block a user