summaryrefslogtreecommitdiff
path: root/Example Apps/Example Swift
diff options
context:
space:
mode:
authorNicoleYarroch <nicole@livio.io>2020-09-03 10:44:02 -0400
committerNicoleYarroch <nicole@livio.io>2020-09-03 10:44:02 -0400
commit8603e615be1e6c5047b579fb10c1168071634912 (patch)
treebe171641cf0ae2f9c2544f1cfd1799fe9af519ea /Example Apps/Example Swift
parent7b4202909c417680bff185d136326479299b8996 (diff)
parent3ec4d8109bb536df0c5afcc0c0ec826e6845af77 (diff)
downloadsdl_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.swift50
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()
+ }
+ }
+}