diff options
author | NicoleYarroch <nicole@livio.io> | 2021-03-01 11:58:09 -0500 |
---|---|---|
committer | NicoleYarroch <nicole@livio.io> | 2021-03-01 11:58:09 -0500 |
commit | 4b243912bd611e6ef9099ec2d90067fc71ded6c0 (patch) | |
tree | 137429c3d8314a745ca100e8ffb12a552eecdff0 /Example Apps/Example Swift | |
parent | edeb2b8a4bf227c6bec7c213a64bdf8fff0083e9 (diff) | |
parent | ccff0af770fcc493965923a7e49b4dba34a15d8b (diff) | |
download | sdl_ios-4b243912bd611e6ef9099ec2d90067fc71ded6c0.tar.gz |
Merge branch 'develop' into feature/issue_1579_alert_manager
Signed-off-by: NicoleYarroch <nicole@livio.io>
# Conflicts:
# SmartDeviceLink-iOS.xcodeproj/project.pbxproj
# SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowCapabilitySpec.m
Diffstat (limited to 'Example Apps/Example Swift')
-rw-r--r-- | Example Apps/Example Swift/MenuManager.swift | 26 | ||||
-rw-r--r-- | Example Apps/Example Swift/ProxyManager.swift | 12 | ||||
-rw-r--r-- | Example Apps/Example Swift/VehicleDataManager.swift | 2 |
3 files changed, 24 insertions, 16 deletions
diff --git a/Example Apps/Example Swift/MenuManager.swift b/Example Apps/Example Swift/MenuManager.swift index e21a05e10..f7466f06d 100644 --- a/Example Apps/Example Swift/MenuManager.swift +++ b/Example Apps/Example Swift/MenuManager.swift @@ -48,7 +48,7 @@ private extension MenuManager { /// - Parameter manager: The SDL Manager /// - Returns: A SDLMenuCell object class func menuCellSpeakName(with manager: SDLManager) -> SDLMenuCell { - return SDLMenuCell(title: ACSpeakAppNameMenuName, icon: SDLArtwork(image: UIImage(named: SpeakBWIconImageName)!.withRenderingMode(.alwaysTemplate), persistent: true, as: .PNG), voiceCommands: [ACSpeakAppNameMenuName], handler: { _ in + return SDLMenuCell(title: ACSpeakAppNameMenuName, icon: SDLArtwork(image: UIImage(named: SpeakBWIconImageName)!.withRenderingMode(.alwaysTemplate), persistent: true, as: .PNG), voiceCommands: [ACSpeakAppNameMenuName], secondaryText: nil, tertiaryText: nil, secondaryArtwork: nil, handler: { _ in manager.send(request: SDLSpeak(tts: ExampleAppNameTTS), responseHandler: { (_, response, error) in guard response?.resultCode == .success else { return } SDLLog.e("Error sending the Speak RPC: \(error?.localizedDescription ?? "no error message")") @@ -62,12 +62,12 @@ private extension MenuManager { /// - Returns: A SDLMenuCell object class func menuCellGetAllVehicleData(with manager: SDLManager) -> SDLMenuCell { let submenuItems = allVehicleDataTypes.map { submenuName in - SDLMenuCell(title: submenuName, icon: SDLArtwork(staticIcon: .settings), voiceCommands: nil, handler: { triggerSource in + SDLMenuCell(title: submenuName, icon: SDLArtwork(staticIcon: .settings), voiceCommands: nil, secondaryText: nil, tertiaryText: nil, secondaryArtwork: nil, handler: { triggerSource in VehicleDataManager.getAllVehicleData(with: manager, triggerSource: triggerSource, vehicleDataType: submenuName) }) } - return SDLMenuCell(title: ACGetAllVehicleDataMenuName, icon: SDLArtwork(image: UIImage(named: CarBWIconImageName)!.withRenderingMode(.alwaysTemplate), persistent: true, as: .PNG), submenuLayout: .tiles, subCells: submenuItems) + return SDLMenuCell(title: ACGetAllVehicleDataMenuName, icon: SDLArtwork(image: UIImage(named: CarBWIconImageName)!.withRenderingMode(.alwaysTemplate), persistent: true, as: .PNG), submenuLayout: .tiles, subCells: submenuItems, secondaryText: nil, tertiaryText: nil, secondaryArtwork: nil) } /// A list of all possible vehicle data types @@ -80,7 +80,7 @@ private extension MenuManager { /// - Parameter manager: The SDL Manager /// - Returns: A SDLMenuCell object class func menuCellShowPerformInteraction(with manager: SDLManager, choiceSetManager: PerformInteractionManager) -> SDLMenuCell { - return SDLMenuCell(title: ACShowChoiceSetMenuName, icon: SDLArtwork(image: UIImage(named: MenuBWIconImageName)!.withRenderingMode(.alwaysTemplate), persistent: true, as: .PNG), voiceCommands: [ACShowChoiceSetMenuName], handler: { triggerSource in + return SDLMenuCell(title: ACShowChoiceSetMenuName, icon: SDLArtwork(image: UIImage(named: MenuBWIconImageName)!.withRenderingMode(.alwaysTemplate), persistent: true, as: .PNG), voiceCommands: [ACShowChoiceSetMenuName], secondaryText: nil, tertiaryText: nil, secondaryArtwork: nil, handler: { triggerSource in choiceSetManager.show(from: triggerSource) }) } @@ -91,7 +91,7 @@ private extension MenuManager { /// - Returns: A SDLMenuCell object class func menuCellRecordInCarMicrophoneAudio(with manager: SDLManager) -> SDLMenuCell { let audioManager = AudioManager(sdlManager: manager) - return SDLMenuCell(title: ACRecordInCarMicrophoneAudioMenuName, icon: SDLArtwork(image: UIImage(named: MicrophoneBWIconImageName)!.withRenderingMode(.alwaysTemplate), persistent: true, as: .PNG), voiceCommands: [ACRecordInCarMicrophoneAudioMenuName], handler: { _ in + return SDLMenuCell(title: ACRecordInCarMicrophoneAudioMenuName, icon: SDLArtwork(image: UIImage(named: MicrophoneBWIconImageName)!.withRenderingMode(.alwaysTemplate), persistent: true, as: .PNG), voiceCommands: [ACRecordInCarMicrophoneAudioMenuName], secondaryText: nil, tertiaryText: nil, secondaryArtwork: nil, handler: { _ in audioManager.startRecording() }) } @@ -101,7 +101,7 @@ private extension MenuManager { /// - Parameter manager: The SDL Manager /// - Returns: A SDLMenuCell object class func menuCellDialNumber(with manager: SDLManager) -> SDLMenuCell { - return SDLMenuCell(title: ACDialPhoneNumberMenuName, icon: SDLArtwork(image: UIImage(named: PhoneBWIconImageName)!.withRenderingMode(.alwaysTemplate), persistent: true, as: .PNG), voiceCommands: [ACDialPhoneNumberMenuName], handler: { _ in + return SDLMenuCell(title: ACDialPhoneNumberMenuName, icon: SDLArtwork(image: UIImage(named: PhoneBWIconImageName)!.withRenderingMode(.alwaysTemplate), persistent: true, as: .PNG), voiceCommands: [ACDialPhoneNumberMenuName], secondaryText: nil, tertiaryText: nil, secondaryArtwork: nil, handler: { _ in guard RPCPermissionsManager.isDialNumberRPCAllowed(with: manager) else { AlertManager.sendAlert(textField1: AlertDialNumberPermissionsWarningText, sdlManager: manager) return @@ -123,7 +123,7 @@ private extension MenuManager { /// Non-Media let submenuTitleNonMedia = "Non - Media (Default)" - submenuItems.append(SDLMenuCell(title: submenuTitleNonMedia, icon: nil, voiceCommands: nil, handler: { (triggerSource) in + submenuItems.append(SDLMenuCell(title: submenuTitleNonMedia, icon: nil, voiceCommands: nil, secondaryText: nil, tertiaryText: nil, secondaryArtwork: nil, handler: { (triggerSource) in manager.screenManager.changeLayout(SDLTemplateConfiguration(predefinedLayout: .nonMedia)) { err in if err != nil { AlertManager.sendAlert(textField1: errorMessage, sdlManager: manager) @@ -134,7 +134,7 @@ private extension MenuManager { /// Graphic with Text let submenuTitleGraphicText = "Graphic With Text" - submenuItems.append(SDLMenuCell(title: submenuTitleGraphicText, icon: nil, voiceCommands: nil, handler: { (triggerSource) in + submenuItems.append(SDLMenuCell(title: submenuTitleGraphicText, icon: nil, voiceCommands: nil, secondaryText: nil, tertiaryText: nil, secondaryArtwork: nil, handler: { (triggerSource) in manager.screenManager.changeLayout(SDLTemplateConfiguration(predefinedLayout: .graphicWithText)) { err in if err != nil { AlertManager.sendAlert(textField1: errorMessage, sdlManager: manager) @@ -143,7 +143,7 @@ private extension MenuManager { } })) - return SDLMenuCell(title: ACSubmenuTemplateMenuName, icon: nil, submenuLayout: .list, subCells: submenuItems) + return SDLMenuCell(title: ACSubmenuTemplateMenuName, icon: nil, submenuLayout: .list, subCells: submenuItems, secondaryText: nil, tertiaryText: nil, secondaryArtwork: nil) } /// Menu item that opens a submenu when selected @@ -154,7 +154,7 @@ private extension MenuManager { var submenuItems = [SDLMenuCell]() for i in 0 ..< 10 { let submenuTitle = "Submenu Item \(i)" - submenuItems.append(SDLMenuCell(title: submenuTitle, icon: SDLArtwork(image: UIImage(named: MenuBWIconImageName)!.withRenderingMode(.alwaysTemplate), persistent: true, as: .PNG), voiceCommands: nil, handler: { (triggerSource) in + submenuItems.append(SDLMenuCell(title: submenuTitle, icon: SDLArtwork(image: UIImage(named: MenuBWIconImageName)!.withRenderingMode(.alwaysTemplate), persistent: true, as: .PNG), voiceCommands: nil, secondaryText: nil, tertiaryText: nil, secondaryArtwork: nil, handler: { (triggerSource) in let message = "\(submenuTitle) selected!" switch triggerSource { case .menu: @@ -166,11 +166,11 @@ private extension MenuManager { })) } - return SDLMenuCell(title: ACSubmenuMenuName, icon: SDLArtwork(image: #imageLiteral(resourceName: "choice_set").withRenderingMode(.alwaysTemplate), persistent: true, as: .PNG), submenuLayout: .list, subCells: submenuItems) + return SDLMenuCell(title: ACSubmenuMenuName, icon: SDLArtwork(image: #imageLiteral(resourceName: "choice_set").withRenderingMode(.alwaysTemplate), persistent: true, as: .PNG), submenuLayout: .list, subCells: submenuItems, secondaryText: nil, tertiaryText: nil, secondaryArtwork: nil) } private class func sliderMenuCell(with manager: SDLManager) -> SDLMenuCell { - return SDLMenuCell(title: ACSliderMenuName, icon: nil, voiceCommands: [ACSliderMenuName], handler: { _ in + return SDLMenuCell(title: ACSliderMenuName, icon: nil, voiceCommands: [ACSliderMenuName], secondaryText: nil, tertiaryText: nil, secondaryArtwork: nil, handler: { _ in let slider = SDLSlider(numTicks: 3, position: 1, sliderHeader: "Select a letter", sliderFooters: ["A", "B", "C"], timeout: 3000) manager.send(request: slider, responseHandler: { (request, response, error) in guard let response = response else { return } @@ -189,7 +189,7 @@ private extension MenuManager { } private class func scrollableMessageMenuCell(with manager: SDLManager) -> SDLMenuCell { - return SDLMenuCell(title: ACScrollableMessageMenuName, icon: nil, voiceCommands: [ACScrollableMessageMenuName], handler: { _ in + return SDLMenuCell(title: ACScrollableMessageMenuName, icon: nil, voiceCommands: [ACScrollableMessageMenuName], secondaryText: nil, tertiaryText: nil, secondaryArtwork: nil, handler: { _ in let scrollableMessage = SDLScrollableMessage(message: "This is a scrollable message\nIt can contain many lines") manager.send(request: scrollableMessage, responseHandler: { (request, response, error) in guard let response = response else { return } diff --git a/Example Apps/Example Swift/ProxyManager.swift b/Example Apps/Example Swift/ProxyManager.swift index 8a53e7c76..6c04e57fa 100644 --- a/Example Apps/Example Swift/ProxyManager.swift +++ b/Example Apps/Example Swift/ProxyManager.swift @@ -146,8 +146,8 @@ private extension ProxyManager { // MARK: - SDLManagerDelegate extension ProxyManager: SDLManagerDelegate { - /// Called when the connection beween this app and the module has closed. - func managerDidDisconnect() { + /// Called when the connection between this app and the module has closed. + func managerDidDisconnect() { if delegate?.proxyState != .some(.stopped) { delegate?.didChangeProxyState(ProxyState.searching) } @@ -234,6 +234,14 @@ extension ProxyManager: SDLManagerDelegate { return update } + + /// Called when connected module information becomes available + /// - Parameter systemInfo: The connected module's information + /// - Returns: True to continue connecting, false to disconnect immediately + func didReceive(systemInfo: SDLSystemInfo) -> Bool { + SDLLog.d("Example app got system info: \(systemInfo)") + return true + } } // MARK: - SDL UI diff --git a/Example Apps/Example Swift/VehicleDataManager.swift b/Example Apps/Example Swift/VehicleDataManager.swift index a1e72c469..b9647ceb2 100644 --- a/Example Apps/Example Swift/VehicleDataManager.swift +++ b/Example Apps/Example Swift/VehicleDataManager.swift @@ -111,7 +111,7 @@ extension VehicleDataManager { guard hasPermissionToAccessVehicleData(with: manager) else { return } SDLLog.d("App has permission to access vehicle data. Requesting all vehicle data...") - let getAllVehicleData = SDLGetVehicleData(gps: NSNumber(true), speed: NSNumber(true), rpm: NSNumber(true), instantFuelConsumption: NSNumber(true), fuelRange: NSNumber(true), externalTemperature: NSNumber(true), turnSignal: NSNumber(true), vin: NSNumber(true), gearStatus: NSNumber(true), tirePressure: NSNumber(true), odometer: NSNumber(true), beltStatus: NSNumber(true), bodyInformation: NSNumber(true), deviceStatus: NSNumber(true), driverBraking: NSNumber(true), wiperStatus: NSNumber(true), headLampStatus: NSNumber(true), engineTorque: NSNumber(true), accPedalPosition: NSNumber(true), steeringWheelAngle: NSNumber(true), engineOilLife: NSNumber(true), electronicParkBrakeStatus: NSNumber(true), cloudAppVehicleID: NSNumber(true), stabilityControlsStatus: NSNumber(true), eCallInfo: NSNumber(true), airbagStatus: NSNumber(true), emergencyEvent: NSNumber(true), clusterModeStatus: NSNumber(true), myKey: NSNumber(true), handsOffSteering: NSNumber(true), windowStatus: NSNumber(true), seatOccupancy: NSNumber(true)) + let getAllVehicleData = SDLGetVehicleData(gps:NSNumber(true), speed:NSNumber(true), rpm:NSNumber(true), instantFuelConsumption:NSNumber(true), fuelRange:NSNumber(true), climateData:NSNumber(true), turnSignal:NSNumber(true), vin:NSNumber(true), gearStatus:NSNumber(true), tirePressure:NSNumber(true), odometer:NSNumber(true), beltStatus:NSNumber(true), bodyInformation:NSNumber(true), deviceStatus:NSNumber(true), driverBraking:NSNumber(true), wiperStatus:NSNumber(true), headLampStatus:NSNumber(true), engineTorque:NSNumber(true), accPedalPosition:NSNumber(true), steeringWheelAngle:NSNumber(true), engineOilLife:NSNumber(true), electronicParkBrakeStatus:NSNumber(true), cloudAppVehicleID:NSNumber(true), stabilityControlsStatus:NSNumber(true), eCallInfo:NSNumber(true), airbagStatus:NSNumber(true), emergencyEvent:NSNumber(true), clusterModeStatus:NSNumber(true), myKey:NSNumber(true), windowStatus:NSNumber(true), handsOffSteering:NSNumber(true), seatOccupancy:NSNumber(true)) manager.send(request: getAllVehicleData) { (request, response, error) in guard didAccessVehicleDataSuccessfully(with: manager, response: response, error: error) else { return } |