Merge branch 'develop' into feature/test_no_arm64_config
This commit is contained in:
commit
bc6c74e661
@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
@interface MVMCoreSessionTimeHandler ()
|
@interface MVMCoreSessionTimeHandler ()
|
||||||
|
|
||||||
|
@property (strong, nonatomic) NSTimer *sessionWarningTimer;
|
||||||
@property (strong, nonatomic) NSTimer *sessionTimer;
|
@property (strong, nonatomic) NSTimer *sessionTimer;
|
||||||
|
|
||||||
// The time that we started the last session timer.
|
// The time that we started the last session timer.
|
||||||
@ -74,13 +75,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)sessionTimeoutWarning {
|
- (void)sessionTimeoutWarning {
|
||||||
|
|
||||||
// Starts the timeout timer
|
|
||||||
if (!fequal(0, self.secondsUntilTimeout)) {
|
|
||||||
self.sessionTimer = [NSTimer scheduledTimerWithTimeInterval:self.secondsUntilTimeout target:self selector:@selector(sessionTimeout:) userInfo:nil repeats:NO];
|
|
||||||
} else {
|
|
||||||
[self stopSessionTimer];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)sessionTimeout:(BOOL)whileInBackground {
|
- (void)sessionTimeout:(BOOL)whileInBackground {
|
||||||
@ -98,22 +92,22 @@
|
|||||||
|
|
||||||
if (!self.sessionTimedOut) {
|
if (!self.sessionTimedOut) {
|
||||||
|
|
||||||
|
[self.sessionWarningTimer invalidate];
|
||||||
[self.sessionTimer invalidate];
|
[self.sessionTimer invalidate];
|
||||||
|
|
||||||
self.secondsUntilWarning = [self timeUntilWarning];
|
self.secondsUntilWarning = [self timeUntilWarning];
|
||||||
self.secondsUntilTimeout = [self timeUntilTimeout];
|
self.secondsUntilTimeout = [self timeUntilTimeout];
|
||||||
if (!fequal(0, self.secondsUntilWarning) || !fequal(0, self.secondsUntilTimeout)) {
|
if (!fequal(0, self.secondsUntilTimeout)) {
|
||||||
self.sessionBeingTimed = YES;
|
self.sessionBeingTimed = YES;
|
||||||
self.timeTimerStarted = [NSDate timeIntervalSinceReferenceDate];
|
self.timeTimerStarted = [NSDate timeIntervalSinceReferenceDate];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only start physical timer if active, otherwise will begin once entering foreground.
|
// Only start physical timer if active, otherwise will begin once entering foreground.
|
||||||
if ([UIApplication sharedApplication].applicationState == UIApplicationStateActive) {
|
if ([UIApplication sharedApplication].applicationState == UIApplicationStateActive && !fequal(0, self.secondsUntilTimeout)) {
|
||||||
if (!fequal(0, self.secondsUntilWarning)) {
|
if (!fequal(0, self.secondsUntilWarning)) {
|
||||||
self.sessionTimer = [NSTimer scheduledTimerWithTimeInterval:self.secondsUntilWarning target:self selector:@selector(sessionTimeoutWarning) userInfo:nil repeats:NO];
|
self.sessionWarningTimer = [NSTimer scheduledTimerWithTimeInterval:self.secondsUntilWarning target:self selector:@selector(sessionTimeoutWarning) userInfo:nil repeats:NO];
|
||||||
} else if (!fequal(0, self.secondsUntilTimeout)) {
|
|
||||||
self.sessionTimer = [NSTimer scheduledTimerWithTimeInterval:self.secondsUntilTimeout target:self selector:@selector(sessionTimeout:) userInfo:nil repeats:NO];
|
|
||||||
}
|
}
|
||||||
|
self.sessionTimer = [NSTimer scheduledTimerWithTimeInterval:self.secondsUntilTimeout target:self selector:@selector(sessionTimeout:) userInfo:nil repeats:NO];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -124,6 +118,8 @@
|
|||||||
// nil timer, session no longer timed.
|
// nil timer, session no longer timed.
|
||||||
dispatch_async(dispatch_get_main_queue(), ^(void) {
|
dispatch_async(dispatch_get_main_queue(), ^(void) {
|
||||||
self.sessionBeingTimed = NO;
|
self.sessionBeingTimed = NO;
|
||||||
|
[self.sessionWarningTimer invalidate];
|
||||||
|
self.sessionWarningTimer = nil;
|
||||||
[self.sessionTimer invalidate];
|
[self.sessionTimer invalidate];
|
||||||
self.sessionTimer = nil;
|
self.sessionTimer = nil;
|
||||||
});
|
});
|
||||||
@ -133,6 +129,8 @@
|
|||||||
|
|
||||||
// Session is still being timed. Invalidates here, will start up again on enter foreground if need be.
|
// Session is still being timed. Invalidates here, will start up again on enter foreground if need be.
|
||||||
dispatch_async(dispatch_get_main_queue(), ^(void) {
|
dispatch_async(dispatch_get_main_queue(), ^(void) {
|
||||||
|
[self.sessionWarningTimer invalidate];
|
||||||
|
self.sessionWarningTimer = nil;
|
||||||
[self.sessionTimer invalidate];
|
[self.sessionTimer invalidate];
|
||||||
self.sessionTimer = nil;
|
self.sessionTimer = nil;
|
||||||
});
|
});
|
||||||
@ -143,22 +141,25 @@
|
|||||||
if (self.sessionBeingTimed || self.sessionTimedOut) {
|
if (self.sessionBeingTimed || self.sessionTimedOut) {
|
||||||
|
|
||||||
NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
|
NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
|
||||||
if ((!fequal(0, self.secondsUntilWarning) && now > self.timeTimerStarted + self.secondsUntilWarning) || (fequal(0, self.secondsUntilWarning) && !fequal(0, self.secondsUntilTimeout) && now > self.timeTimerStarted + self.secondsUntilTimeout)) {
|
if ((!fequal(0, self.secondsUntilWarning) && now > self.timeTimerStarted + self.secondsUntilWarning) || (!fequal(0, self.secondsUntilTimeout) && now > self.timeTimerStarted + self.secondsUntilTimeout)) {
|
||||||
|
|
||||||
// Timeout if we are passed the warning.
|
// Timeout if we are passed the warning.
|
||||||
[self sessionTimeout:YES];
|
[self sessionTimeout:YES];
|
||||||
} else if (!fequal(0, self.secondsUntilWarning)) {
|
} else {
|
||||||
|
if (!fequal(0, self.secondsUntilWarning)) {
|
||||||
|
|
||||||
// Restart the warning timer!
|
// Restart the warning timer!
|
||||||
NSTimeInterval timeLeftTillWarning = self.timeTimerStarted + self.secondsUntilWarning - now;
|
NSTimeInterval timeLeftTillWarning = self.timeTimerStarted + self.secondsUntilWarning - now;
|
||||||
[self.sessionTimer invalidate];
|
[self.sessionWarningTimer invalidate];
|
||||||
self.sessionTimer = [NSTimer scheduledTimerWithTimeInterval:timeLeftTillWarning target:self selector:@selector(sessionTimeoutWarning) userInfo:nil repeats:NO];
|
self.sessionWarningTimer = [NSTimer scheduledTimerWithTimeInterval:timeLeftTillWarning target:self selector:@selector(sessionTimeoutWarning) userInfo:nil repeats:NO];
|
||||||
} else if (!fequal(0, self.secondsUntilTimeout)) {
|
}
|
||||||
|
if (!fequal(0, self.secondsUntilTimeout)) {
|
||||||
|
|
||||||
// Restart the timeout timer!
|
// Restart the timeout timer!
|
||||||
NSTimeInterval timeLeftTillTimeout = self.timeTimerStarted + self.secondsUntilTimeout - now;
|
NSTimeInterval timeLeftTillTimeout = self.timeTimerStarted + self.secondsUntilTimeout - now;
|
||||||
[self.sessionTimer invalidate];
|
[self.sessionTimer invalidate];
|
||||||
self.sessionTimer = [NSTimer scheduledTimerWithTimeInterval:timeLeftTillTimeout target:self selector:@selector(sessionTimeout:) userInfo:nil repeats:NO];
|
self.sessionTimer = [NSTimer scheduledTimerWithTimeInterval:timeLeftTillTimeout target:self selector:@selector(sessionTimeout:) userInfo:nil repeats:NO];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -174,6 +175,8 @@
|
|||||||
NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
|
NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
|
||||||
if ((!fequal(0, self.secondsUntilWarning) && now > self.timeTimerStarted + self.secondsUntilWarning) || (!fequal(0, self.secondsUntilTimeout) && now > self.timeTimerStarted + self.secondsUntilTimeout)) {
|
if ((!fequal(0, self.secondsUntilWarning) && now > self.timeTimerStarted + self.secondsUntilWarning) || (!fequal(0, self.secondsUntilTimeout) && now > self.timeTimerStarted + self.secondsUntilTimeout)) {
|
||||||
self.sessionTimedOut = YES;
|
self.sessionTimedOut = YES;
|
||||||
|
[self.sessionWarningTimer invalidate];
|
||||||
|
self.sessionWarningTimer = nil;
|
||||||
[self.sessionTimer invalidate];
|
[self.sessionTimer invalidate];
|
||||||
self.sessionTimer = nil;
|
self.sessionTimer = nil;
|
||||||
} else if (![self.sessionTimer isValid]) {
|
} else if (![self.sessionTimer isValid]) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user