Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

SDL 0088 System Capability Manager #916

Merged
merged 34 commits into from
Apr 18, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
962cbd8
Added SDLSystemCapabilityManager class
NicoleYarroch Mar 26, 2018
82b22a6
Fixed incorrectly capitalized SDLVrCapabilities
NicoleYarroch Mar 26, 2018
0718b9a
Reverted to old VR capitalization
NicoleYarroch Mar 27, 2018
e486431
Added `SDLSystemCapabilitiesManager` to .podspec files
NicoleYarroch Mar 27, 2018
c238923
Added system capability manager to the sdl manager
NicoleYarroch Mar 27, 2018
5970752
Added test cases for system capability manager
NicoleYarroch Mar 27, 2018
0e8e350
Basic test cases for system capability manager setup
NicoleYarroch Mar 27, 2018
9692a8f
Test cases finished for the SDLSystemCapabilityManagerSpec
NicoleYarroch Mar 27, 2018
7921c60
Merge branch 'develop' into feature/issue_720_system_capability_manager
NicoleYarroch Mar 27, 2018
1ee0633
Reverted to old spelling of VR
NicoleYarroch Mar 27, 2018
8e912c7
Fixed broken test case
NicoleYarroch Mar 28, 2018
fcf7222
Removed fdescribe from test case
NicoleYarroch Mar 28, 2018
438a66d
Added check for system capability manager to lifecycle manager spec
NicoleYarroch Mar 28, 2018
7b086fa
Fixed lifecycle manager tests
NicoleYarroch Mar 28, 2018
9e888e9
Added missing documentation to the system capability manager
NicoleYarroch Mar 29, 2018
9a6b805
Used the `SDLSystemCapabilitiesManager` in the Example App
NicoleYarroch Mar 29, 2018
afd8335
Refactored the dial number add command in the example app
NicoleYarroch Mar 29, 2018
f137871
Fixed test cases for SDLScreenManager
NicoleYarroch Mar 29, 2018
1e6852a
Fixed broken test cases in the SDLLifecycleManagerSpec
NicoleYarroch Mar 29, 2018
22000a4
Refactored comments in SDLLifecycleSpec
NicoleYarroch Mar 29, 2018
5791341
Fixed screen manager documentation in SDLManager class
NicoleYarroch Apr 4, 2018
9732ce6
Renamed variables in the SDLSystemCapabilityManager
NicoleYarroch Apr 4, 2018
77325e1
Deleted assert for unknown `systemCapabilityType`
NicoleYarroch Apr 4, 2018
868c739
Fixed VRCapability tests
NicoleYarroch Apr 4, 2018
dd20365
Added permissions check for dial number in the example app
NicoleYarroch Apr 5, 2018
6caa86c
Added the system capability manager to the SDLUpdateCapabilityHandler
NicoleYarroch Apr 5, 2018
6427905
Renamed variable
NicoleYarroch Apr 5, 2018
195c001
System capability manager now observes SDLDidReceiveGetSystemCapabili…
NicoleYarroch Apr 5, 2018
df20f42
Refactored System Capability Manager
NicoleYarroch Apr 5, 2018
6599d0d
Fixed the System Capability Manager test cases
NicoleYarroch Apr 9, 2018
6a05711
Merge branch 'develop' into feature/issue_720_system_capability_manager
NicoleYarroch Apr 9, 2018
81a17b7
Fixed retain keyword for `pcmStreamCapability`
NicoleYarroch Apr 17, 2018
163cbf3
Added a stop method to the System Capability Manager
NicoleYarroch Apr 17, 2018
0f188ae
Fixed stop() method of the system capability manager
NicoleYarroch Apr 18, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions SmartDeviceLink-iOS.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLSyncPDataResponse.h',
'SmartDeviceLink/SDLSystemAction.h',
'SmartDeviceLink/SDLSystemCapability.h',
'SmartDeviceLink/SDLSystemCapabilityManager.h',
'SmartDeviceLink/SDLSystemCapabilityType.h',
'SmartDeviceLink/SDLSystemContext.h',
'SmartDeviceLink/SDLTBTState.h',
Expand Down
28 changes: 28 additions & 0 deletions SmartDeviceLink-iOS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1052,7 +1052,10 @@
5DEF69611FD6FB75004B8C2F /* SDLAudioStreamManagerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DEF69601FD6FB75004B8C2F /* SDLAudioStreamManagerSpec.m */; };
5DEF69661FD6FEF7004B8C2F /* SDLStreamingAudioManagerMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DEF69651FD6FEF7004B8C2F /* SDLStreamingAudioManagerMock.m */; };
5DFFB9151BD7C89700DB3F04 /* SDLConnectionManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DFFB9141BD7C89700DB3F04 /* SDLConnectionManagerType.h */; };
880E8C2920697FEE00CF86C2 /* SDLSystemCapabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 880E8C2720697FEE00CF86C2 /* SDLSystemCapabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
880E8C2A20697FEE00CF86C2 /* SDLSystemCapabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 880E8C2820697FEE00CF86C2 /* SDLSystemCapabilityManager.m */; };
8850DB601F4475D30053A48D /* TestMultipleFilesConnectionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8850DB5F1F4475D30053A48D /* TestMultipleFilesConnectionManager.m */; };
886D313F206A956B001185B4 /* SDLSystemCapabilityManagerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 886D313E206A956B001185B4 /* SDLSystemCapabilityManagerSpec.m */; };
8877F5EB1F34A3BE00DC128A /* SDLSendHapticDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8877F5EA1F34A3BE00DC128A /* SDLSendHapticDataSpec.m */; };
8877F5EE1F34A72200DC128A /* SDLSendHapticDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8877F5EC1F34A72200DC128A /* SDLSendHapticDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
8877F5EF1F34A72200DC128A /* SDLSendHapticDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8877F5ED1F34A72200DC128A /* SDLSendHapticDataResponse.m */; };
Expand Down Expand Up @@ -2318,8 +2321,11 @@
5DEF69651FD6FEF7004B8C2F /* SDLStreamingAudioManagerMock.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLStreamingAudioManagerMock.m; sourceTree = "<group>"; };
5DF2BB9C1B94E38A00CE5994 /* SDLURLSessionSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLURLSessionSpec.m; path = "UtilitiesSpecs/HTTP Connection/SDLURLSessionSpec.m"; sourceTree = "<group>"; };
5DFFB9141BD7C89700DB3F04 /* SDLConnectionManagerType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLConnectionManagerType.h; sourceTree = "<group>"; };
880E8C2720697FEE00CF86C2 /* SDLSystemCapabilityManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLSystemCapabilityManager.h; sourceTree = "<group>"; };
880E8C2820697FEE00CF86C2 /* SDLSystemCapabilityManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSystemCapabilityManager.m; sourceTree = "<group>"; };
8850DB5E1F4475D30053A48D /* TestMultipleFilesConnectionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestMultipleFilesConnectionManager.h; sourceTree = "<group>"; };
8850DB5F1F4475D30053A48D /* TestMultipleFilesConnectionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestMultipleFilesConnectionManager.m; sourceTree = "<group>"; };
886D313E206A956B001185B4 /* SDLSystemCapabilityManagerSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSystemCapabilityManagerSpec.m; sourceTree = "<group>"; };
8877F5EA1F34A3BE00DC128A /* SDLSendHapticDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticDataSpec.m; sourceTree = "<group>"; };
8877F5EC1F34A72200DC128A /* SDLSendHapticDataResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSendHapticDataResponse.h; sourceTree = "<group>"; };
8877F5ED1F34A72200DC128A /* SDLSendHapticDataResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticDataResponse.m; sourceTree = "<group>"; };
Expand Down Expand Up @@ -4508,6 +4514,7 @@
5D8204291BCEA91400D0A41B /* Permissions */,
DA8966E71E56937100413EAB /* Streaming */,
5D0A736F203F0C450001595D /* Screen */,
886D313C206A94BA001185B4 /* System Capabilities */,
);
name = Managers;
sourceTree = "<group>";
Expand All @@ -4530,6 +4537,7 @@
5D76E31A1D3805E600647CFA /* LockScreen */,
5D9F507F1BE7E6C900FEF399 /* Permissions */,
5D9F507E1BE7E46600FEF399 /* Files */,
886D313D206A951E001185B4 /* System Capabilities */,
5D5DBF0A1D48E5E600D4F914 /* SDLLockScreenViewControllerSnapshotTests.m */,
);
name = Managers;
Expand Down Expand Up @@ -4673,6 +4681,23 @@
name = Mocks;
sourceTree = "<group>";
};
886D313C206A94BA001185B4 /* System Capabilities */ = {
isa = PBXGroup;
children = (
880E8C2720697FEE00CF86C2 /* SDLSystemCapabilityManager.h */,
880E8C2820697FEE00CF86C2 /* SDLSystemCapabilityManager.m */,
);
name = "System Capabilities";
sourceTree = "<group>";
};
886D313D206A951E001185B4 /* System Capabilities */ = {
isa = PBXGroup;
children = (
886D313E206A956B001185B4 /* SDLSystemCapabilityManagerSpec.m */,
);
name = "System Capabilities";
sourceTree = "<group>";
};
88B848C41F45E20900DED768 /* Helpers */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -5069,6 +5094,7 @@
5DD67CB81E661C4A009CD394 /* SDLLogTargetFile.h in Headers */,
5D61FD591A84238C00846EE7 /* SDLReadDID.h in Headers */,
5D82041A1BCD80BA00D0A41B /* SDLLockScreenConfiguration.h in Headers */,
880E8C2920697FEE00CF86C2 /* SDLSystemCapabilityManager.h in Headers */,
5D61FC611A84238C00846EE7 /* SDLChoice.h in Headers */,
5D1BF6AF204742FB00D36881 /* SDLDisplayCapabilities+ShowManagerExtensions.h in Headers */,
5D7F87F31CE3C29E002DD7C4 /* SDLFileWrapper.h in Headers */,
Expand Down Expand Up @@ -5795,6 +5821,7 @@
5D61FC931A84238C00846EE7 /* SDLDisplayType.m in Sources */,
5D61FCE31A84238C00846EE7 /* SDLKeyboardLayout.m in Sources */,
5D61FE0C1A84238C00846EE7 /* SDLVehicleType.m in Sources */,
880E8C2A20697FEE00CF86C2 /* SDLSystemCapabilityManager.m in Sources */,
DA9F7E941DCC04E400ACAE48 /* SDLUnsubscribeWayPoints.m in Sources */,
5D61FDCC1A84238C00846EE7 /* SDLTextFieldName.m in Sources */,
5D61FC751A84238C00846EE7 /* SDLDeleteCommandResponse.m in Sources */,
Expand Down Expand Up @@ -5888,6 +5915,7 @@
162E836E1A9BDE8B00906325 /* SDLUnsubscribeButtonResponseSpec.m in Sources */,
5DEF69611FD6FB75004B8C2F /* SDLAudioStreamManagerSpec.m in Sources */,
162E835B1A9BDE8B00906325 /* SDLPerformInteractionResponseSpec.m in Sources */,
886D313F206A956B001185B4 /* SDLSystemCapabilityManagerSpec.m in Sources */,
162E832D1A9BDE8B00906325 /* SDLEncodedSyncPDataSpec.m in Sources */,
1EE8C44C1F385C7100FDC2CF /* SDLRDSDataSpec.m in Sources */,
5DB92D241AC47B2C00C15BB0 /* SDLHexUtilitySpec.m in Sources */,
Expand Down
1 change: 1 addition & 0 deletions SmartDeviceLink.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLSyncPDataResponse.h',
'SmartDeviceLink/SDLSystemAction.h',
'SmartDeviceLink/SDLSystemCapability.h',
'SmartDeviceLink/SDLSystemCapabilityManager.h',
'SmartDeviceLink/SDLSystemCapabilityType.h',
'SmartDeviceLink/SDLSystemContext.h',
'SmartDeviceLink/SDLTBTState.h',
Expand Down
2 changes: 2 additions & 0 deletions SmartDeviceLink/SDLLifecycleManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
@class SDLScreenManager;
@class SDLStateMachine;
@class SDLStreamingMediaManager;
@class SDLSystemCapabilityManager;

@protocol SDLManagerDelegate;

Expand Down Expand Up @@ -67,6 +68,7 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error);
@property (strong, nonatomic, nullable) SDLStreamingMediaManager *streamManager;
@property (strong, nonatomic) SDLLockScreenManager *lockScreenManager;
@property (strong, nonatomic, readonly) SDLScreenManager *screenManager;
@property (strong, nonatomic) SDLSystemCapabilityManager *systemCapabilityManager;

@property (strong, nonatomic, readonly) SDLNotificationDispatcher *notificationDispatcher;
@property (strong, nonatomic, readonly) SDLResponseDispatcher *responseDispatcher;
Expand Down
3 changes: 3 additions & 0 deletions SmartDeviceLink/SDLLifecycleManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
#import "SDLStateMachine.h"
#import "SDLStreamingMediaConfiguration.h"
#import "SDLStreamingMediaManager.h"
#import "SDLSystemCapabilityManager.h"
#import "SDLUnregisterAppInterface.h"


Expand Down Expand Up @@ -122,6 +123,7 @@ - (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate
_permissionManager = [[SDLPermissionManager alloc] init];
_lockScreenManager = [[SDLLockScreenManager alloc] initWithConfiguration:_configuration.lockScreenConfig notificationDispatcher:_notificationDispatcher presenter:[[SDLLockScreenPresenter alloc] init]];
_screenManager = [[SDLScreenManager alloc] initWithConnectionManager:self fileManager:_fileManager];
_systemCapabilityManager = [[SDLSystemCapabilityManager alloc] initWithConnectionManager:self];

if ([configuration.lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeNavigation] ||
[configuration.lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeProjection] ||
Expand Down Expand Up @@ -227,6 +229,7 @@ - (void)sdl_stopManager:(BOOL)shouldRestart {
[self.permissionManager stop];
[self.lockScreenManager stop];
[self.streamManager stop];
[self.systemCapabilityManager stop];
[self.responseDispatcher clear];

[self.rpcOperationQueue cancelAllOperations];
Expand Down
9 changes: 9 additions & 0 deletions SmartDeviceLink/SDLManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
@class SDLRPCResponse;
@class SDLScreenManager;
@class SDLStreamingMediaManager;
@class SDLSystemCapabilityManager;

@protocol SDLManagerDelegate;

Expand Down Expand Up @@ -95,8 +96,16 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error);
*/
@property (strong, nonatomic, readonly, nullable) SDLStreamingMediaManager *streamManager;

/**
* The screen manager for sending UI related RPCs.
*/
@property (strong, nonatomic, readonly) SDLScreenManager *screenManager;

/**
* Centralized manager for retrieving all system capabilities.
*/
@property (strong, nonatomic, readonly) SDLSystemCapabilityManager *systemCapabilityManager;

/**
* The response of a register call after it has been received.
*/
Expand Down
4 changes: 4 additions & 0 deletions SmartDeviceLink/SDLManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,10 @@ - (SDLScreenManager *)screenManager {
return self.lifecycleManager.screenManager;
}

- (SDLSystemCapabilityManager *)systemCapabilityManager {
return self.lifecycleManager.systemCapabilityManager;
}

- (nullable SDLRegisterAppInterfaceResponse *)registerResponse {
return self.lifecycleManager.registerResponse;
}
Expand Down
194 changes: 194 additions & 0 deletions SmartDeviceLink/SDLSystemCapabilityManager.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
//
// SDLSystemCapabilityManager.h
// SmartDeviceLink
//
// Created by Nicole on 3/26/18.
// Copyright © 2018 smartdevicelink. All rights reserved.
//

#import <Foundation/Foundation.h>

#import "SDLHMIZoneCapabilities.h"
#import "SDLPrerecordedSpeech.h"
#import "SDLSpeechCapabilities.h"
#import "SDLSystemCapabilityType.h"
#import "SDLVrCapabilities.h"

@class SDLAudioPassThruCapabilities;
@class SDLButtonCapabilities;
@class SDLDisplayCapabilities;
@class SDLHMICapabilities;
@class SDLNavigationCapability;
@class SDLPhoneCapability;
@class SDLPresetBankCapabilities;
@class SDLRemoteControlCapabilities;
@class SDLSoftButtonCapabilities;
@class SDLSystemCapabilityManager;
@class SDLVideoStreamingCapability;

@protocol SDLConnectionManagerType;

NS_ASSUME_NONNULL_BEGIN


/**
* A completion handler called after a request for the capability type is returned from the remote system.
*
* @param error The error returned if the request for a capability type failed. The error is nil if the request was successful.
* @param systemCapabilityManager The system capability manager
*/
typedef void (^SDLUpdateCapabilityHandler)(NSError * _Nullable error, SDLSystemCapabilityManager *systemCapabilityManager);


@interface SDLSystemCapabilityManager : NSObject

/**
* @see SDLDisplayCapabilities
*
* Optional
*/
@property (nullable, strong, nonatomic, readonly) SDLDisplayCapabilities *displayCapabilities;

/**
* @see SDLHMICapabilities
*
* Optional
*/
@property (nullable, strong, nonatomic, readonly) SDLHMICapabilities *hmiCapabilities;

/**
* If returned, the platform supports on-screen SoftButtons
*
* @see SDLSoftButtonCapabilities
*
* Optional, Array of length 1 - 100, of SDLSoftButtonCapabilities
*/
@property (nullable, copy, nonatomic, readonly) NSArray<SDLSoftButtonCapabilities *> *softButtonCapabilities;

/**
* @see SDLButtonCapabilities
*
* Optional, Array of length 1 - 100, of SDLButtonCapabilities
*/
@property (nullable, copy, nonatomic, readonly) NSArray<SDLButtonCapabilities *> *buttonCapabilities;

/**
* If returned, the platform supports custom on-screen Presets
*
* @see SDLPresetBankCapabilities
*
* Optional
*/
@property (nullable, strong, nonatomic, readonly) SDLPresetBankCapabilities *presetBankCapabilities;

/**
* @see SDLHMIZoneCapabilities
*
* Optional, Array of length 1 - 100, of SDLHMIZoneCapabilities
*/
@property (nullable, copy, nonatomic, readonly) NSArray<SDLHMIZoneCapabilities> *hmiZoneCapabilities;

/**
* @see SDLSpeechCapabilities
*
* Optional, Array of length 1 - 100, of SDLSpeechCapabilities
*/
@property (nullable, copy, nonatomic, readonly) NSArray<SDLSpeechCapabilities> *speechCapabilities;

/**
* @see SDLPrerecordedSpeech
*
* Optional, Array of length 1 - 100, of SDLPrerecordedSpeech
*/
@property (nullable, copy, nonatomic, readonly) NSArray<SDLPrerecordedSpeech> *prerecordedSpeechCapabilities;

/**
* @see SDLVRCapabilities
*
* True if the head unit supports voice recognition; false if not.
*/
@property (nonatomic, assign, readonly) BOOL vrCapability;

/**
* @see SDLAudioPassThruCapabilities
*
* Optional, Array of length 1 - 100, of SDLAudioPassThruCapabilities
*/
@property (nullable, copy, nonatomic, readonly) NSArray<SDLAudioPassThruCapabilities *> *audioPassThruCapabilities;

/**
* @see SDLAudioPassThruCapabilities
*
* Optional, Array of length 1 - 100, of SDLAudioPassThruCapabilities
*/
@property (nullable, strong, nonatomic, readonly) SDLAudioPassThruCapabilities *pcmStreamCapability;

/**
* If returned, the platform supports navigation
*
* @see SDLNavigationCapability
*
* Optional
*/
@property (nullable, strong, nonatomic, readonly) SDLNavigationCapability *navigationCapability;

/**
* If returned, the platform supports making phone calls
*
* @see SDLPhoneCapability
*
* Optional
*/
@property (nullable, strong, nonatomic, readonly) SDLPhoneCapability *phoneCapability;

/**
* If returned, the platform supports video streaming
*
* @see SDLVideoStreamingCapability
*
* Optional
*/
@property (nullable, strong, nonatomic, readonly) SDLVideoStreamingCapability *videoStreamingCapability;

/**
* If returned, the platform supports remote control capabilities
*
* @see SDLRemoteControlCapabilities
*
* Optional
*/
@property (nullable, strong, nonatomic, readonly) SDLRemoteControlCapabilities *remoteControlCapability;

/**
* Init is unavailable. Dependencies must be injected using initWithConnectionManager:
*
* @return nil
*/
- (instancetype)init NS_UNAVAILABLE;

/**
* Creates a new system capability manager with a specified connection manager
*
* @param manager A connection manager to use to forward on RPCs
*
* @return An instance of SDLSystemCapabilityManager
*/
- (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)manager NS_DESIGNATED_INITIALIZER;

/**
* Stops the manager. This method is used internally.
*/
- (void)stop;

/**
* Retrieves a capability type from the remote system. This function must be called in order to retrieve the values of `navigationCapability`, `phoneCapability`, `videoStreamingCapability` and `remoteControlCapability`. If you do not call this method first, those values will be nil. After calling this method, assuming there is no error in the handler, you may retrieve the capability you requested from the manager within the handler.
*
* @param type The type of capability to retrieve
* @param handler The handler to be called when the retrieval is complete
*/
- (void)updateCapabilityType:(SDLSystemCapabilityType)type completionHandler:(SDLUpdateCapabilityHandler)handler;


@end

NS_ASSUME_NONNULL_END
Loading