diff options
author | Joel Fischer <joeljfischer@gmail.com> | 2017-11-28 13:27:12 -0500 |
---|---|---|
committer | Joel Fischer <joeljfischer@gmail.com> | 2017-11-28 13:27:12 -0500 |
commit | 978e93b4b8a79f71b201b798ed2dfc2e5df64bac (patch) | |
tree | c447d177f10e915ed07d86cb10103ba56b4a3f35 | |
parent | a4a7d12c06a58b666687941f6eefec99490f5180 (diff) | |
download | sdl_ios-978e93b4b8a79f71b201b798ed2dfc2e5df64bac.tar.gz |
Add a few more streaming configuration initializers
-rw-r--r-- | SmartDeviceLink/SDLStreamingMediaConfiguration.h | 3 | ||||
-rw-r--r-- | SmartDeviceLink/SDLStreamingMediaConfiguration.m | 24 | ||||
-rw-r--r-- | SmartDeviceLink/SDLStreamingMediaLifecycleManager.m | 4 |
3 files changed, 25 insertions, 6 deletions
diff --git a/SmartDeviceLink/SDLStreamingMediaConfiguration.h b/SmartDeviceLink/SDLStreamingMediaConfiguration.h index 06325cf94..3f2f40544 100644 --- a/SmartDeviceLink/SDLStreamingMediaConfiguration.h +++ b/SmartDeviceLink/SDLStreamingMediaConfiguration.h @@ -96,6 +96,9 @@ NS_ASSUME_NONNULL_BEGIN */ + (instancetype)insecureConfiguration NS_SWIFT_UNAVAILABLE("Use the standard initializer instead"); ++ (instancetype)autostreamingInsecureConfigurationWithInitialViewController:(UIViewController *)initialViewController; ++ (instancetype)autostreamingSecureConfigurationWithSecurityManagers:(NSArray<Class<SDLSecurityType>> *)securityManagers initialViewController:(UIViewController *)initialViewController; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLStreamingMediaConfiguration.m b/SmartDeviceLink/SDLStreamingMediaConfiguration.m index aa8e53840..5e42a7f08 100644 --- a/SmartDeviceLink/SDLStreamingMediaConfiguration.m +++ b/SmartDeviceLink/SDLStreamingMediaConfiguration.m @@ -16,7 +16,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLStreamingMediaConfiguration - (instancetype)init { - return [self initWithSecurityManagers:nil encryptionFlag:SDLStreamingEncryptionFlagNone videoSettings:nil dataSource:nil window:nil]; + return [self initWithSecurityManagers:nil encryptionFlag:SDLStreamingEncryptionFlagNone videoSettings:nil dataSource:nil rootViewController:nil]; } + (instancetype)insecureConfiguration { @@ -24,6 +24,10 @@ NS_ASSUME_NONNULL_BEGIN } - (instancetype)initWithSecurityManagers:(nullable NSArray<Class<SDLSecurityType>> *)securityManagers encryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag videoSettings:(nullable NSDictionary<NSString *,id> *)videoSettings dataSource:(nullable id<SDLStreamingMediaManagerDataSource>)dataSource window:(nullable UIWindow *)window { + return [self initWithSecurityManagers:securityManagers encryptionFlag:encryptionFlag videoSettings:videoSettings dataSource:dataSource rootViewController:window.rootViewController]; +} + +- (instancetype)initWithSecurityManagers:(nullable NSArray<Class<SDLSecurityType>> *)securityManagers encryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag videoSettings:(nullable NSDictionary<NSString *,id> *)videoSettings dataSource:(nullable id<SDLStreamingMediaManagerDataSource>)dataSource rootViewController:(nullable UIViewController *)rootViewController { self = [super init]; if (!self) { return nil; @@ -33,7 +37,11 @@ NS_ASSUME_NONNULL_BEGIN _maximumDesiredEncryption = encryptionFlag; _customVideoEncoderSettings = videoSettings; _dataSource = dataSource; - _window = window; + _rootViewController = rootViewController; + + if (rootViewController == nil) { + _disableAutomaticVideoStream = YES; + } return self; } @@ -42,13 +50,21 @@ NS_ASSUME_NONNULL_BEGIN NSAssert(securityManagers.count > 0, @"A secure streaming media configuration requires security managers to be passed."); SDLStreamingEncryptionFlag encryptionFlag = SDLStreamingEncryptionFlagAuthenticateAndEncrypt; - return [self initWithSecurityManagers:securityManagers encryptionFlag:encryptionFlag videoSettings:nil dataSource:nil window:nil]; + return [self initWithSecurityManagers:securityManagers encryptionFlag:encryptionFlag videoSettings:nil dataSource:nil rootViewController:nil]; } + (instancetype)secureConfigurationWithSecurityManagers:(NSArray<Class<SDLSecurityType>> *)securityManagers { return [[self alloc] initWithSecurityManagers:securityManagers]; } ++ (instancetype)autostreamingInsecureConfigurationWithInitialViewController:(UIViewController *)initialViewController { + return [[self alloc] initWithSecurityManagers:nil encryptionFlag:SDLStreamingEncryptionFlagNone videoSettings:nil dataSource:nil rootViewController:initialViewController]; +} + ++ (instancetype)autostreamingSecureConfigurationWithSecurityManagers:(NSArray<Class<SDLSecurityType>> *)securityManagers initialViewController:(UIViewController *)initialViewController { + return [[self alloc] initWithSecurityManagers:securityManagers encryptionFlag:SDLStreamingEncryptionFlagAuthenticateAndEncrypt videoSettings:nil dataSource:nil rootViewController:initialViewController]; +} + #pragma mark - Getters / Setters - (void)setWindow:(nullable UIWindow *)window { _window = window; @@ -60,7 +76,7 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark NSCopying - (id)copyWithZone:(nullable NSZone *)zone { - return [[self.class allocWithZone:zone] initWithSecurityManagers:_securityManagers encryptionFlag:_maximumDesiredEncryption videoSettings:_customVideoEncoderSettings dataSource:_dataSource window:_window]; + return [[self.class allocWithZone:zone] initWithSecurityManagers:_securityManagers encryptionFlag:_maximumDesiredEncryption videoSettings:_customVideoEncoderSettings dataSource:_dataSource rootViewController:_rootViewController]; } @end diff --git a/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m b/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m index 82999c973..b80bc4856 100644 --- a/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m +++ b/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m @@ -108,8 +108,8 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N _connectionManager = connectionManager; if (@available(iOS 9.0, *)) { - if (configuration.window != nil) { - _focusableItemManager = [[SDLFocusableItemLocator alloc] initWithWindow:configuration.window connectionManager:_connectionManager]; + if (configuration.rootViewController != nil) { + _focusableItemManager = [[SDLFocusableItemLocator alloc] initWithViewController:configuration.rootViewController connectionManager:_connectionManager]; } } |