diff options
author | NicoleYarroch <nicole@livio.io> | 2020-09-03 10:44:02 -0400 |
---|---|---|
committer | NicoleYarroch <nicole@livio.io> | 2020-09-03 10:44:02 -0400 |
commit | 8603e615be1e6c5047b579fb10c1168071634912 (patch) | |
tree | be171641cf0ae2f9c2544f1cfd1799fe9af519ea /Example Apps/Example Swift | |
parent | 7b4202909c417680bff185d136326479299b8996 (diff) | |
parent | 3ec4d8109bb536df0c5afcc0c0ec826e6845af77 (diff) | |
download | sdl_ios-8603e615be1e6c5047b579fb10c1168071634912.tar.gz |
Merge branch 'develop' into feature/0312_update_min_required_iOS_version_to_10
Signed-off-by: NicoleYarroch <nicole@livio.io>
# Conflicts:
# SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m
Diffstat (limited to 'Example Apps/Example Swift')
-rw-r--r-- | Example Apps/Example Swift/SubscribeButtonManager.swift | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Example Apps/Example Swift/SubscribeButtonManager.swift b/Example Apps/Example Swift/SubscribeButtonManager.swift new file mode 100644 index 000000000..1bf128c1d --- /dev/null +++ b/Example Apps/Example Swift/SubscribeButtonManager.swift @@ -0,0 +1,50 @@ +// +// SubscribeButtonManager.swift +// SmartDeviceLink +// +// Created by Nicole on 6/19/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +import Foundation +import SmartDeviceLink +import SmartDeviceLinkSwift + +class SubscribeButtonManager: NSObject { + private let sdlManager: SDLManager! + private let presetButtons: [SDLButtonName] = [.preset0, .preset1, .preset2, .preset3, .preset4, .preset5, .preset6, .preset7] + + init(sdlManager: SDLManager) { + self.sdlManager = sdlManager + } + + /// Subscribe to all available preset buttons. An alert will be shown when a preset button is short pressed or long pressed. + func subscribeToPresetButtons() { + guard (sdlManager.systemCapabilityManager.defaultMainWindowCapability?.numCustomPresetsAvailable?.intValue ?? 0) > 0 else { + SDLLog.w("The module does not support preset buttons") + return + } + + presetButtons.forEach { buttonName in + sdlManager.screenManager.subscribeButton(buttonName, withObserver: self, selector: #selector(buttonPressEvent(buttonName:error:buttonPress:))) + } + } + + @objc private func buttonPressEvent(buttonName: SDLButtonName, error: Error?, buttonPress: SDLOnButtonPress?) { + if let error = error { + SDLLog.e("There was an error subscribing to the preset button: \(error)") + return + } + + guard let buttonPress = buttonPress else { return } + + let buttonNameString = buttonName.rawValue.rawValue + switch buttonPress.buttonPressMode { + case .short: + AlertManager.sendAlert(textField1: "\(buttonNameString) short pressed", sdlManager: sdlManager) + case .long: + AlertManager.sendAlert(textField1: "\(buttonNameString) long pressed", sdlManager: sdlManager) + default: fatalError() + } + } +} |