51 lines
1.6 KiB
Diff
51 lines
1.6 KiB
Diff
diff --git a/node_modules/react-native/React/CoreModules/RCTTiming.mm b/node_modules/react-native/React/CoreModules/RCTTiming.mm
|
|
index 13d0d57..00e5d4c 100644
|
|
--- a/node_modules/react-native/React/CoreModules/RCTTiming.mm
|
|
+++ b/node_modules/react-native/React/CoreModules/RCTTiming.mm
|
|
@@ -127,7 +127,15 @@ - (void)setup
|
|
{
|
|
_paused = YES;
|
|
_timers = [NSMutableDictionary new];
|
|
- _inBackground = NO;
|
|
+
|
|
+ __block BOOL initialInBackground;
|
|
+ dispatch_sync(dispatch_get_main_queue(), ^{
|
|
+ initialInBackground
|
|
+ = [UIApplication sharedApplication].applicationState == UIApplicationStateBackground
|
|
+ || [UIDevice currentDevice].proximityState;
|
|
+ });
|
|
+
|
|
+ _inBackground = initialInBackground;
|
|
|
|
for (NSString *name in @[
|
|
UIApplicationWillResignActiveNotification,
|
|
@@ -146,6 +154,11 @@ - (void)setup
|
|
name:name
|
|
object:nil];
|
|
}
|
|
+
|
|
+ [[NSNotificationCenter defaultCenter] addObserver:self
|
|
+ selector:@selector(proximityChanged)
|
|
+ name:UIDeviceProximityStateDidChangeNotification
|
|
+ object:nil];
|
|
}
|
|
|
|
- (void)dealloc
|
|
@@ -182,6 +195,16 @@ - (void)appDidMoveToForeground
|
|
[self startTimers];
|
|
}
|
|
|
|
+- (void)proximityChanged
|
|
+{
|
|
+ BOOL isClose = [UIDevice currentDevice].proximityState;
|
|
+ if (isClose) {
|
|
+ [self appDidMoveToBackground];
|
|
+ } else {
|
|
+ [self appDidMoveToForeground];
|
|
+ }
|
|
+}
|
|
+
|
|
- (void)stopTimers
|
|
{
|
|
if (_inBackground) {
|