blob: 1bf128c1d88b79903de86fc6465160057bb45ab5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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()
}
}
}
|