diff options
author | Frank Elias <francois.elias@livio.io> | 2020-10-29 12:04:10 -0400 |
---|---|---|
committer | Frank Elias <francois.elias@livio.io> | 2020-10-29 12:04:10 -0400 |
commit | 3137fe790f21b6082dc20cc3e7ecd03fba3bac61 (patch) | |
tree | e40b6c25dd75db767cee94293a98b80f5559edea | |
parent | 2e4f4d0fbaf24eaa121a5d85b435ffb9433303c0 (diff) | |
download | sdl_ios-bugfix/issue-1827-Example-app-template-reset-when-HMI-level-changes.tar.gz |
Add comments and enhancementsbugfix/issue-1827-Example-app-template-reset-when-HMI-level-changes
Add comments and enhancements
-rw-r--r-- | Example Apps/Example ObjC/MenuManager.m | 6 | ||||
-rw-r--r-- | Example Apps/Example ObjC/ProxyManager.m | 38 | ||||
-rw-r--r-- | Example Apps/Example Swift/MenuManager.swift | 1 | ||||
-rw-r--r-- | Example Apps/Example Swift/ProxyManager.swift | 27 |
4 files changed, 38 insertions, 34 deletions
diff --git a/Example Apps/Example ObjC/MenuManager.m b/Example Apps/Example ObjC/MenuManager.m index 92ddfe310..f04d8b382 100644 --- a/Example Apps/Example ObjC/MenuManager.m +++ b/Example Apps/Example ObjC/MenuManager.m @@ -121,13 +121,15 @@ NS_ASSUME_NONNULL_BEGIN // Non - Media SDLMenuCell *cell = [[SDLMenuCell alloc] initWithTitle:@"Non - Media (Default)" icon:nil voiceCommands:nil handler:^(SDLTriggerSource _Nonnull triggerSource) { - [self setCurrentTemplate:SDLPredefinedLayoutNonMedia]; + __weak typeof (self) weakSelf = self; + [weakSelf setCurrentTemplate:SDLPredefinedLayoutNonMedia]; }]; [submenuItems addObject:cell]; // Graphic With Text SDLMenuCell *cell2 = [[SDLMenuCell alloc] initWithTitle:@"Graphic With Text" icon:nil voiceCommands:nil handler:^(SDLTriggerSource _Nonnull triggerSource) { - [self setCurrentTemplate:SDLPredefinedLayoutGraphicWithText]; + __weak typeof (self) weakSelf = self; + [weakSelf setCurrentTemplate:SDLPredefinedLayoutGraphicWithText]; }]; [submenuItems addObject:cell2]; diff --git a/Example Apps/Example ObjC/ProxyManager.m b/Example Apps/Example ObjC/ProxyManager.m index f59e4adb9..c8db79b25 100644 --- a/Example Apps/Example ObjC/ProxyManager.m +++ b/Example Apps/Example ObjC/ProxyManager.m @@ -60,25 +60,6 @@ NS_ASSUME_NONNULL_BEGIN return self; } -- (nullable RefreshTemplateHandler)refreshTemplateHandler { - if(!_refreshTemplateHandler) { - __weak typeof(self) weakSelf = self; - self.refreshTemplateHandler = ^(SDLPredefinedLayout template) { - NSString *errorMessage = @"Changing the template failed"; - weakSelf.currentTemplate = template; - [weakSelf.sdlManager.screenManager changeLayout:[[SDLTemplateConfiguration alloc] initWithPredefinedLayout:weakSelf.currentTemplate] withCompletionHandler:nil]; - - [weakSelf.sdlManager.screenManager changeLayout:[[SDLTemplateConfiguration alloc] initWithPredefinedLayout: weakSelf.currentTemplate] withCompletionHandler:^(NSError * _Nullable error) { - if (error != nil) { - [AlertManager sendAlertWithManager:weakSelf.sdlManager image:nil textField1:errorMessage textField2:nil]; - } - }]; - }; - } - - return _refreshTemplateHandler; -} - - (void)sdlex_startManager { __weak typeof (self) weakSelf = self; [self.sdlManager startWithReadyHandler:^(BOOL success, NSError * _Nullable error) { @@ -206,6 +187,25 @@ NS_ASSUME_NONNULL_BEGIN return _refreshUIHandler; } +- (nullable RefreshTemplateHandler)refreshTemplateHandler { + if(!_refreshTemplateHandler) { + __weak typeof(self) weakSelf = self; + weakSelf.refreshTemplateHandler = ^(SDLPredefinedLayout template) { + NSString *errorMessage = @"Changing the template failed"; + weakSelf.currentTemplate = template; + [weakSelf.sdlManager.screenManager changeLayout:[[SDLTemplateConfiguration alloc] initWithPredefinedLayout:weakSelf.currentTemplate] withCompletionHandler:nil]; + + [weakSelf.sdlManager.screenManager changeLayout:[[SDLTemplateConfiguration alloc] initWithPredefinedLayout: weakSelf.currentTemplate] withCompletionHandler:^(NSError * _Nullable error) { + if (error != nil) { + [AlertManager sendAlertWithManager:weakSelf.sdlManager image:nil textField1:errorMessage textField2:nil]; + } + }]; + }; + } + + return _refreshTemplateHandler; +} + - (void)sdlex_updateScreen { if (![self.sdlManager.hmiLevel isEqualToEnum:SDLHMILevelFull]) { return; } diff --git a/Example Apps/Example Swift/MenuManager.swift b/Example Apps/Example Swift/MenuManager.swift index aebe180dc..f13a5c83e 100644 --- a/Example Apps/Example Swift/MenuManager.swift +++ b/Example Apps/Example Swift/MenuManager.swift @@ -15,6 +15,7 @@ typealias RefreshTemplateHandler = ((SDLPredefinedLayout) -> Void) class MenuManager: NSObject { fileprivate var refreshTemplateHandler: RefreshTemplateHandler? + /// Setting current selected template public fileprivate(set) var currentTemplate: SDLPredefinedLayout { didSet { guard let refreshTemplateHandler = refreshTemplateHandler else { return } diff --git a/Example Apps/Example Swift/ProxyManager.swift b/Example Apps/Example Swift/ProxyManager.swift index 6ce4e3cbf..8e966c2ad 100644 --- a/Example Apps/Example Swift/ProxyManager.swift +++ b/Example Apps/Example Swift/ProxyManager.swift @@ -39,19 +39,6 @@ class ProxyManager: NSObject { currentTemplate = .nonMedia super.init() } - - var refreshTemplateHandler: RefreshTemplateHandler { - return { [weak self] template in - let errorMessage = "Changing the template failed" - self?.currentTemplate = template - self?.sdlManager.screenManager.changeLayout(SDLTemplateConfiguration(predefinedLayout: template)) { err in - if err != nil { - AlertManager.sendAlert(textField1: errorMessage, sdlManager: (self?.sdlManager)!) - return - } - } - } - } } // MARK: - SDL Configuration @@ -265,6 +252,20 @@ private extension ProxyManager { } } + /// Handler for refreshing the template + var refreshTemplateHandler: RefreshTemplateHandler { + return { [weak self] template in + let errorMessage = "Changing the template failed" + self?.currentTemplate = template + self?.sdlManager.screenManager.changeLayout(SDLTemplateConfiguration(predefinedLayout: template)) { err in + if err != nil { + AlertManager.sendAlert(textField1: errorMessage, sdlManager: (self?.sdlManager)!) + return + } + } + } + } + /// Set the template and create the UI func showInitialData() { guard sdlManager.hmiLevel == .full else { return } |