56 lines
1.1 KiB
JavaScript
56 lines
1.1 KiB
JavaScript
/**
|
|
* Copyright 2004-present Facebook. All Rights Reserved.
|
|
*
|
|
* @providesModule AppStateIOS
|
|
*/
|
|
'use strict';
|
|
|
|
var NativeModules = require('NativeModules');
|
|
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
|
|
var RCTAppState = NativeModules.AppState;
|
|
|
|
var logError = require('logError');
|
|
|
|
var DEVICE_APPSTATE_EVENT = 'appStateDidChange';
|
|
|
|
var _appStateHandlers = {};
|
|
|
|
class AppStateIOS {
|
|
|
|
static addEventListener(type, handler) {
|
|
_appStateHandlers[handler] = RCTDeviceEventEmitter.addListener(
|
|
DEVICE_APPSTATE_EVENT,
|
|
(appStateData) => {
|
|
handler(appStateData.app_state);
|
|
}
|
|
);
|
|
}
|
|
|
|
static removeEventListener(type, handler) {
|
|
if (!_appStateHandlers[handler]) {
|
|
return;
|
|
}
|
|
_appStateHandlers[handler].remove();
|
|
_appStateHandlers[handler] = null;
|
|
}
|
|
|
|
}
|
|
|
|
AppStateIOS.currentState = null;
|
|
|
|
RCTDeviceEventEmitter.addListener(
|
|
DEVICE_APPSTATE_EVENT,
|
|
(appStateData) => {
|
|
AppStateIOS.currentState = appStateData.app_state;
|
|
}
|
|
);
|
|
|
|
RCTAppState.getCurrentAppState(
|
|
(appStateData) => {
|
|
AppStateIOS.currentState = appStateData.app_state;
|
|
},
|
|
logError
|
|
);
|
|
|
|
module.exports = AppStateIOS;
|