47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
/**
|
|
* Copyright 2004-present Facebook. All Rights Reserved.
|
|
*
|
|
* @providesModule AppState
|
|
*/
|
|
'use strict';
|
|
|
|
var NativeModules = require('NativeModulesDeprecated');
|
|
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
|
|
var RKAppState = NativeModules.RKAppState;
|
|
var RKReachability = NativeModules.RKReachability;
|
|
var Subscribable = require('Subscribable');
|
|
|
|
var keyMirror = require('keyMirror');
|
|
|
|
var AppState = {
|
|
|
|
setApplicationIconBadgeNumber: function(number) {
|
|
RKAppState.setApplicationIconBadgeNumber(number);
|
|
},
|
|
|
|
getApplicationIconBadgeNumber: function(callback) {
|
|
RKAppState.getApplicationIconBadgeNumber(callback);
|
|
},
|
|
|
|
};
|
|
|
|
// This check avoids redboxing if native RKReachability library isn't included in app
|
|
// TODO: Move reachability API into separate JS module to prevent need for this
|
|
if (RKReachability) {
|
|
AppState.networkReachability = new Subscribable(
|
|
RCTDeviceEventEmitter,
|
|
'reachabilityDidChange',
|
|
(resp) => resp.network_reachability,
|
|
RKReachability.getCurrentReachability
|
|
);
|
|
}
|
|
|
|
AppState.NetworkReachability = keyMirror({
|
|
wifi: true,
|
|
cell: true,
|
|
none: true,
|
|
unknown: true,
|
|
});
|
|
|
|
module.exports = AppState;
|