summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSatbir Tanda <satbirtanda@gmail.com>2019-07-29 16:23:27 -0700
committerSatbir Tanda <satbirtanda@gmail.com>2019-07-29 16:23:27 -0700
commit12be396894ad24ec50f84309a66e610d6d5df869 (patch)
treecc15ef3dc591d9a306a20aaaa053dfd3e84980c0
parent09f9ffba3a603102981df685e5ed4bf76a39e531 (diff)
downloadsdl_ios-12be396894ad24ec50f84309a66e610d6d5df869.tar.gz
Update SDLLockScreenManager.m
-rw-r--r--SmartDeviceLink/SDLLockScreenManager.m15
1 files changed, 8 insertions, 7 deletions
diff --git a/SmartDeviceLink/SDLLockScreenManager.m b/SmartDeviceLink/SDLLockScreenManager.m
index 083b6c136..4ce891ad5 100644
--- a/SmartDeviceLink/SDLLockScreenManager.m
+++ b/SmartDeviceLink/SDLLockScreenManager.m
@@ -31,6 +31,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (strong, nonatomic, nullable) SDLOnLockScreenStatus *lastLockNotification;
@property (strong, nonatomic, nullable) SDLOnDriverDistraction *lastDriverDistractionNotification;
@property (assign, nonatomic, readwrite, getter=isLockScreenDismissable) BOOL lockScreenDismissable;
+@property (assign, nonatomic) BOOL lockScreenDismissed;
@end
@@ -47,6 +48,7 @@ NS_ASSUME_NONNULL_BEGIN
_lockScreenDismissable = NO;
_config = config;
_presenter = presenter;
+ _lockScreenDismissed = NO;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_lockScreenStatusDidChange:) name:SDLDidChangeLockScreenStatusNotification object:dispatcher];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_lockScreenIconReceived:) name:SDLDidReceiveLockScreenIcon object:dispatcher];
@@ -142,13 +144,12 @@ NS_ASSUME_NONNULL_BEGIN
}
// Present the VC depending on the lock screen status
- BOOL lockScreenDismissableEnabled = [self.lastDriverDistractionNotification.lockScreenDismissalEnabled boolValue];
if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusRequired]) {
- if (!self.presenter.presented && self.canPresent && !lockScreenDismissableEnabled) {
+ if (!self.presenter.presented && self.canPresent && !self.lockScreenDismissed) {
[self.presenter present];
}
} else if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusOptional]) {
- if (self.config.showInOptionalState && !self.presenter.presented && self.canPresent && !lockScreenDismissableEnabled) {
+ if (self.config.showInOptionalState && !self.presenter.presented && self.canPresent && !self.lockScreenDismissed) {
[self.presenter present];
} else if (!self.config.showInOptionalState && self.presenter.presented) {
[self.presenter dismiss];
@@ -161,15 +162,14 @@ NS_ASSUME_NONNULL_BEGIN
}
- (void)sdl_updateLockScreenDismissable {
- BOOL lastLockScreenDismissableEnabled = [self.lastDriverDistractionNotification.lockScreenDismissalEnabled boolValue];
if (self.lastDriverDistractionNotification == nil || self.lastDriverDistractionNotification.lockScreenDismissalEnabled == nil ||
![self.lastDriverDistractionNotification.lockScreenDismissalEnabled boolValue]) {
self.lockScreenDismissable = NO;
} else {
self.lockScreenDismissable = YES;
}
-
- if (lastLockScreenDismissableEnabled != self.lockScreenDismissable) {
+
+ if (!self.lockScreenDismissed) {
[self sdl_updateLockscreenViewControllerWithDismissableState:self.lockScreenDismissable];
}
}
@@ -186,10 +186,11 @@ NS_ASSUME_NONNULL_BEGIN
if (enabled) {
[lockscreenViewController addDismissGestureWithCallback:^{
[strongSelf.presenter dismiss];
+ strongSelf.lockScreenDismissed = YES;
}];
lockscreenViewController.lockedLabelText = strongSelf.lastDriverDistractionNotification.lockScreenDismissalWarning;
} else {
- [(SDLLockScreenViewController *)strongSelf.lockScreenViewController removeDismissGesture];
+ [lockscreenViewController removeDismissGesture];
lockscreenViewController.lockedLabelText = nil;
}
});