summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Fischer <joeljfischer@gmail.com>2019-05-17 14:29:45 -0400
committerJoel Fischer <joeljfischer@gmail.com>2019-05-17 14:29:45 -0400
commit35aa42592314b8e5440aba6744f477cf2c74ffe8 (patch)
tree56b5714ff2e28a4649c74e3cdf1505b9d1482ada
parentcd44a87f9d50d8c0cb2f0510cc94a290c363f454 (diff)
parent7b5666be83b6cad4f905285e5a17dbb0572286a3 (diff)
downloadsdl_ios-35aa42592314b8e5440aba6744f477cf2c74ffe8.tar.gz
Merge branch 'develop' into bugfix/issue_1234_softbutton_multiple_states
-rw-r--r--CHANGELOG.md30
-rw-r--r--Example Apps/Example ObjC/SmartDeviceLink-Example-ObjC-Info.plist2
-rw-r--r--Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Info.plist2
-rw-r--r--SmartDeviceLink-iOS.podspec2
-rw-r--r--SmartDeviceLink-iOS.xcodeproj/project.pbxproj14
-rw-r--r--SmartDeviceLink.podspec4
-rw-r--r--SmartDeviceLink/Info.plist2
-rw-r--r--SmartDeviceLink/SDLAlert.h1
-rw-r--r--SmartDeviceLink/SDLError.h1
-rw-r--r--SmartDeviceLink/SDLError.m96
-rw-r--r--SmartDeviceLink/SDLLifecycleManager.m6
-rw-r--r--SmartDeviceLink/SDLProxy.m2
-rwxr-xr-xSmartDeviceLink/SDLScreenshotViewController.m41
-rw-r--r--SmartDeviceLinkSwift/Info.plist2
-rw-r--r--docs/Classes.html1
-rw-r--r--docs/Classes/SDLAlert.html1
-rw-r--r--docs/undocumented.json20
17 files changed, 152 insertions, 75 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 23c24cd58..f141cf03d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,33 @@
+# 6.2.3
+### Versions
+* Supports [SDL RPC Spec 5.1.0](https://github.com/smartdevicelink/rpc_spec/releases/tag/5.1.0) and [SDL Protocol Spec 5.2.0](https://github.com/smartdevicelink/protocol_spec/releases/tag/5.2.0).
+
+### Bug Fixes
+* Fix all lockscreen related crashes when SDL is setup before the main window exists (https://www.github.com/smartdevicelink/sdl_ios/issues/1258).
+
+# 6.2.2
+### Versions
+* Supports [SDL RPC Spec 5.1.0](https://github.com/smartdevicelink/rpc_spec/releases/tag/5.1.0) and [SDL Protocol Spec 5.2.0](https://github.com/smartdevicelink/protocol_spec/releases/tag/5.2.0).
+
+### Bug Fixes
+* Add an explicit exception if SDL is setup before the app's window. The app's window **must** be setup before SDL is started (https://www.github.com/smartdevicelink/sdl_ios/issues/1255).
+
+# 6.2.1
+### Versions
+* Supports [SDL RPC Spec 5.1.0](https://github.com/smartdevicelink/rpc_spec/releases/tag/5.1.0) and [SDL Protocol Spec 5.2.0](https://github.com/smartdevicelink/protocol_spec/releases/tag/5.2.0).
+
+##### Enhancements
+* SmartDeviceLinkSwift updated to Swift 5.0 (https://www.github.com/smartdevicelink/sdl_ios/issues/1245).
+
+##### Bug Fixes
+* Fix `SDLAlert` documentation (https://www.github.com/smartdevicelink/sdl_ios/issues/1233).
+* Fixed the audio service being stopped when the navigation app is in `HMI_BACKGROUND` (https://www.github.com/smartdevicelink/sdl_ios/issues/1235).
+* Fix setting up the lock screen window causing rotation issues (https://www.github.com/smartdevicelink/sdl_ios/issues/1250).
+
+##### Example App
+* The example apps will now auto-reconnect if disconnected physically from the head unit (https://www.github.com/smartdevicelink/sdl_ios/issues/1237).
+* Update the example swift app to Swift 5 (https://www.github.com/smartdevicelink/sdl_ios/issues/1172, https://www.github.com/smartdevicelink/sdl_ios/issues/1243, https://www.github.com/smartdevicelink/sdl_ios/issues/1245).
+
# 6.2.0
### Versions
* Supports [SDL RPC Spec 5.1.0](https://github.com/smartdevicelink/rpc_spec/releases/tag/5.1.0) and [SDL Protocol Spec 5.2.0](https://github.com/smartdevicelink/protocol_spec/releases/tag/5.2.0).
diff --git a/Example Apps/Example ObjC/SmartDeviceLink-Example-ObjC-Info.plist b/Example Apps/Example ObjC/SmartDeviceLink-Example-ObjC-Info.plist
index a89d8894e..d5b5c33a3 100644
--- a/Example Apps/Example ObjC/SmartDeviceLink-Example-ObjC-Info.plist
+++ b/Example Apps/Example ObjC/SmartDeviceLink-Example-ObjC-Info.plist
@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>6.2.0</string>
+ <string>6.2.3</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
diff --git a/Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Info.plist b/Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Info.plist
index 3d6caffc6..31e903f97 100644
--- a/Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Info.plist
+++ b/Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Info.plist
@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>6.2.0</string>
+ <string>6.2.3</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
diff --git a/SmartDeviceLink-iOS.podspec b/SmartDeviceLink-iOS.podspec
index 9ce9d29ac..96c419654 100644
--- a/SmartDeviceLink-iOS.podspec
+++ b/SmartDeviceLink-iOS.podspec
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
s.name = "SmartDeviceLink-iOS"
-s.version = "6.2.0"
+s.version = "6.2.3"
s.summary = "Connect your app with cars!"
s.homepage = "https://github.com/smartdevicelink/SmartDeviceLink-iOS"
s.license = { :type => "New BSD", :file => "LICENSE" }
diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
index 7b954d90b..0b49b125a 100644
--- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
+++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
@@ -8025,6 +8025,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.smartdevicelink.SDLTestApp;
PRODUCT_NAME = "SDL Example";
+ SWIFT_VERSION = 5.0;
};
name = Debug;
};
@@ -8039,6 +8040,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.smartdevicelink.SDLTestApp;
PRODUCT_NAME = "SDL Example";
+ SWIFT_VERSION = 5.0;
};
name = Release;
};
@@ -8083,7 +8085,7 @@
RUN_CLANG_STATIC_ANALYZER = YES;
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 4.2;
+ SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
@@ -8126,7 +8128,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
RUN_CLANG_STATIC_ANALYZER = YES;
SKIP_INSTALL = YES;
- SWIFT_VERSION = 4.2;
+ SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
@@ -8215,7 +8217,7 @@
PRODUCT_NAME = "SDL Example Swift";
SWIFT_OBJC_BRIDGING_HEADER = "Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 4.2;
+ SWIFT_VERSION = 5.0;
};
name = Debug;
};
@@ -8233,7 +8235,7 @@
PRODUCT_BUNDLE_IDENTIFIER = com.smartdevicelink.SDLTestApp;
PRODUCT_NAME = "SDL Example Swift";
SWIFT_OBJC_BRIDGING_HEADER = "Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Bridging-Header.h";
- SWIFT_VERSION = 4.2;
+ SWIFT_VERSION = 5.0;
};
name = Release;
};
@@ -8282,7 +8284,7 @@
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
- SWIFT_VERSION = 4.2;
+ SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
@@ -8329,7 +8331,7 @@
RUN_CLANG_STATIC_ANALYZER = YES;
SKIP_INSTALL = YES;
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
- SWIFT_VERSION = 4.2;
+ SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
diff --git a/SmartDeviceLink.podspec b/SmartDeviceLink.podspec
index 6cfe4126f..ec64518c4 100644
--- a/SmartDeviceLink.podspec
+++ b/SmartDeviceLink.podspec
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
s.name = "SmartDeviceLink"
-s.version = "6.2.0"
+s.version = "6.2.3"
s.summary = "Connect your app with cars!"
s.homepage = "https://github.com/smartdevicelink/SmartDeviceLink-iOS"
s.license = { :type => "New BSD", :file => "LICENSE" }
@@ -10,6 +10,7 @@ s.platform = :ios, "8.0"
s.dependency 'BiSON', '~> 1.1.1'
s.source = { :git => "https://github.com/smartdevicelink/sdl_ios.git", :tag => s.version.to_s }
s.requires_arc = true
+s.swift_version = '4.2'
s.default_subspec = 'Default'
@@ -422,7 +423,6 @@ end
s.subspec 'Swift' do |sswift|
sswift.dependency 'SmartDeviceLink/Default'
sswift.source_files = 'SmartDeviceLinkSwift/*.swift'
-sswift.swift_version = '4.2'
end
end
diff --git a/SmartDeviceLink/Info.plist b/SmartDeviceLink/Info.plist
index 9f6540606..a140cf4b0 100644
--- a/SmartDeviceLink/Info.plist
+++ b/SmartDeviceLink/Info.plist
@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
- <string>6.2.0</string>
+ <string>6.2.3</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
diff --git a/SmartDeviceLink/SDLAlert.h b/SmartDeviceLink/SDLAlert.h
index ad97d7e43..b888deb6a 100644
--- a/SmartDeviceLink/SDLAlert.h
+++ b/SmartDeviceLink/SDLAlert.h
@@ -23,7 +23,6 @@
* <ul>
* <li>alertText1</li>
* <li>alertText2</li>
- * <li>alertText3</li>
* <li>ttsChunks</li>
* </ul>
* </li>
diff --git a/SmartDeviceLink/SDLError.h b/SmartDeviceLink/SDLError.h
index cdc2bab41..9c6209c5b 100644
--- a/SmartDeviceLink/SDLError.h
+++ b/SmartDeviceLink/SDLError.h
@@ -89,6 +89,7 @@ extern SDLErrorDomain *const SDLErrorDomainRPCStore;
+ (NSException *)sdl_missingFilesException;
+ (NSException *)sdl_invalidSoftButtonStateException;
+ (NSException *)sdl_carWindowOrientationException;
++ (NSException *)sdl_invalidLockscreenSetupException;
@end
diff --git a/SmartDeviceLink/SDLError.m b/SmartDeviceLink/SDLError.m
index 187940201..7e5a0e95b 100644
--- a/SmartDeviceLink/SDLError.m
+++ b/SmartDeviceLink/SDLError.m
@@ -27,10 +27,10 @@ SDLErrorDomain *const SDLErrorDomainRPCStore = @"com.sdl.rpcStore.error";
+ (NSError *)sdl_lifecycle_rpcErrorWithDescription:(NSString *)description andReason:(NSString *)reason {
NSDictionary<NSString *, NSString *> *userInfo = @{
- NSLocalizedDescriptionKey: NSLocalizedString(description, nil),
- NSLocalizedFailureReasonErrorKey: NSLocalizedString(reason, nil),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil)
- };
+ NSLocalizedDescriptionKey: NSLocalizedString(description, nil),
+ NSLocalizedFailureReasonErrorKey: NSLocalizedString(reason, nil),
+ NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil)
+ };
return [NSError errorWithDomain:SDLErrorDomainLifecycleManager
code:SDLManagerErrorRPCRequestFailed
userInfo:userInfo];
@@ -38,10 +38,10 @@ SDLErrorDomain *const SDLErrorDomainRPCStore = @"com.sdl.rpcStore.error";
+ (NSError *)sdl_lifecycle_notConnectedError {
NSDictionary<NSString *, NSString *> *userInfo = @{
- NSLocalizedDescriptionKey: NSLocalizedString(@"Could not find a connection", nil),
- NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The SDL library could not find a current connection to an SDL hardware device", nil),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil)
- };
+ NSLocalizedDescriptionKey: NSLocalizedString(@"Could not find a connection", nil),
+ NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The SDL library could not find a current connection to an SDL hardware device", nil),
+ NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil)
+ };
return [NSError errorWithDomain:SDLErrorDomainLifecycleManager
code:SDLManagerErrorNotConnected
@@ -50,10 +50,10 @@ SDLErrorDomain *const SDLErrorDomainRPCStore = @"com.sdl.rpcStore.error";
+ (NSError *)sdl_lifecycle_notReadyError {
NSDictionary<NSString *, NSString *> *userInfo = @{
- NSLocalizedDescriptionKey: NSLocalizedString(@"Lifecycle manager not ready", nil),
- NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The SDL library is not finished setting up the connection, please wait until the lifecycleState is SDLLifecycleStateReady", nil),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil)
- };
+ NSLocalizedDescriptionKey: NSLocalizedString(@"Lifecycle manager not ready", nil),
+ NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The SDL library is not finished setting up the connection, please wait until the lifecycleState is SDLLifecycleStateReady", nil),
+ NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil)
+ };
return [NSError errorWithDomain:SDLErrorDomainLifecycleManager
code:SDLManagerErrorNotConnected
@@ -62,10 +62,10 @@ SDLErrorDomain *const SDLErrorDomainRPCStore = @"com.sdl.rpcStore.error";
+ (NSError *)sdl_lifecycle_unknownRemoteErrorWithDescription:(NSString *)description andReason:(NSString *)reason {
NSDictionary<NSString *, NSString *> *userInfo = @{
- NSLocalizedDescriptionKey: NSLocalizedString(description, nil),
- NSLocalizedFailureReasonErrorKey: NSLocalizedString(reason, nil),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil)
- };
+ NSLocalizedDescriptionKey: NSLocalizedString(description, nil),
+ NSLocalizedFailureReasonErrorKey: NSLocalizedString(reason, nil),
+ NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil)
+ };
return [NSError errorWithDomain:SDLErrorDomainLifecycleManager
code:SDLManagerErrorUnknownRemoteError
userInfo:userInfo];
@@ -79,9 +79,9 @@ SDLErrorDomain *const SDLErrorDomainRPCStore = @"com.sdl.rpcStore.error";
+ (NSError *)sdl_lifecycle_startedWithBadResult:(SDLResult)result info:(NSString *)info {
NSDictionary<NSString *, NSString *> *userInfo = @{
- NSLocalizedDescriptionKey: NSLocalizedString(result, nil),
- NSLocalizedFailureReasonErrorKey: NSLocalizedString(info, nil)
- };
+ NSLocalizedDescriptionKey: NSLocalizedString(result, nil),
+ NSLocalizedFailureReasonErrorKey: NSLocalizedString(info, nil)
+ };
return [NSError errorWithDomain:SDLErrorDomainLifecycleManager
code:SDLManagerErrorRegistrationFailed
userInfo:userInfo];
@@ -99,9 +99,9 @@ SDLErrorDomain *const SDLErrorDomainRPCStore = @"com.sdl.rpcStore.error";
+ (NSError *)sdl_lifecycle_failedWithBadResult:(SDLResult)result info:(NSString *)info {
NSDictionary<NSString *, NSString *> *userInfo = @{
- NSLocalizedDescriptionKey: NSLocalizedString(result, nil),
- NSLocalizedFailureReasonErrorKey: NSLocalizedString(info, nil)
- };
+ NSLocalizedDescriptionKey: NSLocalizedString(result, nil),
+ NSLocalizedFailureReasonErrorKey: NSLocalizedString(info, nil)
+ };
return [NSError errorWithDomain:SDLErrorDomainLifecycleManager
code:SDLManagerErrorRegistrationFailed
userInfo:userInfo];
@@ -118,37 +118,37 @@ SDLErrorDomain *const SDLErrorDomainRPCStore = @"com.sdl.rpcStore.error";
+ (NSError *)sdl_fileManager_cannotOverwriteError {
NSDictionary<NSString *, NSString *> *userInfo = @{
- NSLocalizedDescriptionKey: NSLocalizedString(@"Cannot overwrite remote file", nil),
- NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The remote file system already has a file of this name, and the file manager is set to not automatically overwrite files", nil),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Set SDLFileManager autoOverwrite to YES, or call forceUploadFile:completion:", nil)
- };
+ NSLocalizedDescriptionKey: NSLocalizedString(@"Cannot overwrite remote file", nil),
+ NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The remote file system already has a file of this name, and the file manager is set to not automatically overwrite files", nil),
+ NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Set SDLFileManager autoOverwrite to YES, or call forceUploadFile:completion:", nil)
+ };
return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorCannotOverwrite userInfo:userInfo];
}
+ (NSError *)sdl_fileManager_noKnownFileError {
NSDictionary<NSString *, NSString *> *userInfo = @{
- NSLocalizedDescriptionKey: NSLocalizedString(@"No such remote file is currently known", nil),
- NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The remote file is not currently known by the file manager. It could be that this file does not exist on the remote system or that the file manager has not completed its initialization and received a list of files from the remote system.", nil),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure a file with this name is present on the remote system and that the file manager has finished its initialization.", nil)
- };
+ NSLocalizedDescriptionKey: NSLocalizedString(@"No such remote file is currently known", nil),
+ NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The remote file is not currently known by the file manager. It could be that this file does not exist on the remote system or that the file manager has not completed its initialization and received a list of files from the remote system.", nil),
+ NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure a file with this name is present on the remote system and that the file manager has finished its initialization.", nil)
+ };
return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorNoKnownFile userInfo:userInfo];
}
+ (NSError *)sdl_fileManager_unableToStartError {
NSDictionary<NSString *, NSString *> *userInfo = @{
- NSLocalizedDescriptionKey: NSLocalizedString(@"The file manager was unable to start", nil),
- NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"This may be because files are not supported on this unit and / or LISTFILES returned an error", nil),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure that the system is sending back a proper LIST FILES response", nil)
- };
+ NSLocalizedDescriptionKey: NSLocalizedString(@"The file manager was unable to start", nil),
+ NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"This may be because files are not supported on this unit and / or LISTFILES returned an error", nil),
+ NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure that the system is sending back a proper LIST FILES response", nil)
+ };
return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorUnableToStart userInfo:userInfo];
}
+ (NSError *)sdl_fileManager_unableToUploadError {
NSDictionary<NSString *, NSString *> *userInfo = @{
- NSLocalizedDescriptionKey: NSLocalizedString(@"The file manager was unable to send this file", nil),
- NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"This could be because the file manager has not started, or the head unit does not support files", nil),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure that the system is sending back a proper LIST FILES response and check the file manager's state", nil)
- };
+ NSLocalizedDescriptionKey: NSLocalizedString(@"The file manager was unable to send this file", nil),
+ NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"This could be because the file manager has not started, or the head unit does not support files", nil),
+ NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure that the system is sending back a proper LIST FILES response and check the file manager's state", nil)
+ };
return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorUnableToUpload userInfo:userInfo];
}
@@ -232,7 +232,7 @@ SDLErrorDomain *const SDLErrorDomainRPCStore = @"com.sdl.rpcStore.error";
NSDictionary<NSString *, NSString *> *userInfo = @{
NSLocalizedDescriptionKey: NSLocalizedString(@"Choice Set Manager error", nil),
NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"Choice set manager failed to create menu items due to menuName being empty.", nil),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"If you are setting the menuName, it is possible that the head unit is sending incorrect displayCapabilities.", nil)
+ NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"If you are setting the menuName, it is possible that the head unit is sending incorrect displayCapabilities.", nil)
};
return [NSError errorWithDomain:SDLErrorDomainChoiceSetManager code:SDLChoiceSetManagerErrorFailedToCreateMenuItems userInfo:userInfo];
}
@@ -293,16 +293,16 @@ SDLErrorDomain *const SDLErrorDomainRPCStore = @"com.sdl.rpcStore.error";
+ (NSException *)sdl_missingHandlerException {
return [NSException
- exceptionWithName:@"MissingHandlerException"
- reason:@"This request requires a handler to be specified using the <RPC>WithHandler class"
- userInfo:nil];
+ exceptionWithName:@"MissingHandlerException"
+ reason:@"This request requires a handler to be specified using the <RPC>WithHandler class"
+ userInfo:nil];
}
+ (NSException *)sdl_missingIdException {
return [NSException
- exceptionWithName:@"MissingIdException"
- reason:@"This request requires an ID (command, softbutton, etc) to be specified"
- userInfo:nil];
+ exceptionWithName:@"MissingIdException"
+ reason:@"This request requires an ID (command, softbutton, etc) to be specified"
+ userInfo:nil];
}
+ (NSException *)sdl_missingFilesException {
@@ -322,6 +322,12 @@ SDLErrorDomain *const SDLErrorDomainRPCStore = @"com.sdl.rpcStore.error";
userInfo:nil];
}
++ (NSException *)sdl_invalidLockscreenSetupException {
+ return [NSException exceptionWithName:@"com.sdl.lockscreen.setupException"
+ reason:@"SDL must be setup _after_ your app's window already exists"
+ userInfo:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLLifecycleManager.m b/SmartDeviceLink/SDLLifecycleManager.m
index 8cf5daa91..0c3b257ab 100644
--- a/SmartDeviceLink/SDLLifecycleManager.m
+++ b/SmartDeviceLink/SDLLifecycleManager.m
@@ -239,6 +239,8 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready";
- (void)sdl_stopManager:(BOOL)shouldRestart {
SDLLogV(@"Stopping manager, %@", (shouldRestart ? @"will restart" : @"will not restart"));
+ self.proxy = nil;
+
[self.fileManager stop];
[self.permissionManager stop];
[self.lockScreenManager stop];
@@ -259,7 +261,6 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready";
self.hmiLevel = nil;
self.audioStreamingState = nil;
self.systemContext = nil;
- self.proxy = nil;
// Due to a race condition internally with EAStream, we cannot immediately attempt to restart the proxy, as we will randomly crash.
// Apple Bug ID #30059457
@@ -277,6 +278,9 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready";
}
- (void)didEnterStateConnected {
+ // Ignore the connection while we are reconnecting. The proxy needs to be disposed and restarted in order to ensure correct state. https://github.com/smartdevicelink/sdl_ios/issues/1172
+ if ([self.lifecycleState isEqualToString:SDLLifecycleStateReconnecting]) { return; }
+
// If we have security managers, add them to the proxy
if (self.configuration.streamingMediaConfig.securityManagers != nil) {
SDLLogD(@"Adding security managers");
diff --git a/SmartDeviceLink/SDLProxy.m b/SmartDeviceLink/SDLProxy.m
index 27454817e..8a1e6b344 100644
--- a/SmartDeviceLink/SDLProxy.m
+++ b/SmartDeviceLink/SDLProxy.m
@@ -51,7 +51,7 @@ typedef NSString SDLVehicleMake;
typedef void (^URLSessionTaskCompletionHandler)(NSData *data, NSURLResponse *response, NSError *error);
typedef void (^URLSessionDownloadTaskCompletionHandler)(NSURL *location, NSURLResponse *response, NSError *error);
-NSString *const SDLProxyVersion = @"6.2.0";
+NSString *const SDLProxyVersion = @"6.2.3";
const float StartSessionTime = 10.0;
const float NotifyProxyClosedDelay = (float)0.1;
const int PoliciesCorrelationId = 65535;
diff --git a/SmartDeviceLink/SDLScreenshotViewController.m b/SmartDeviceLink/SDLScreenshotViewController.m
index 2d9e73666..9ac5f4a8c 100755
--- a/SmartDeviceLink/SDLScreenshotViewController.m
+++ b/SmartDeviceLink/SDLScreenshotViewController.m
@@ -8,6 +8,8 @@
#import "SDLScreenshotViewController.h"
+#import "SDLError.h"
+
@interface SDLScreenshotViewController ()
@property (nonatomic, strong) UIImageView *imageView;
@@ -30,6 +32,42 @@
return self;
}
+// HAX: https://github.com/smartdevicelink/sdl_ios/issues/1250
+- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
+ UIViewController *viewController = [self sdl_topMostControllerForWindow:[UIApplication sharedApplication].windows[0]];
+
+ if (viewController == self) {
+ return UIInterfaceOrientationMaskAll;
+ } else if (viewController != nil) {
+ return viewController.supportedInterfaceOrientations;
+ }
+
+ return UIInterfaceOrientationMaskAll;
+}
+
+// HAX: https://github.com/smartdevicelink/sdl_ios/issues/1250
+- (BOOL)shouldAutorotate {
+ UIViewController *viewController = [self sdl_topMostControllerForWindow:[UIApplication sharedApplication].windows[0]];
+
+ if (viewController == self) {
+ return YES;
+ } else if (viewController != nil) {
+ return viewController.shouldAutorotate;
+ }
+
+ return YES;
+}
+
+- (UIViewController *)sdl_topMostControllerForWindow:(UIWindow *)window {
+ UIViewController *topController = window.rootViewController;
+
+ while (topController.presentedViewController != nil) {
+ topController = topController.presentedViewController;
+ }
+
+ return topController;
+}
+
- (void)layoutSubviews {
self.imageView.frame = self.view.bounds;
}
@@ -37,12 +75,11 @@
- (void)loadScreenshotOfWindow:(UIWindow *)window {
UIGraphicsBeginImageContextWithOptions(window.bounds.size, YES, 0.0f);
[window drawViewHierarchyInRect:window.bounds afterScreenUpdates:NO];
-
+
UIImage* image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.imageView.image = image;
}
-
@end
diff --git a/SmartDeviceLinkSwift/Info.plist b/SmartDeviceLinkSwift/Info.plist
index 180bcb2e2..ed1455724 100644
--- a/SmartDeviceLinkSwift/Info.plist
+++ b/SmartDeviceLinkSwift/Info.plist
@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
- <string>6.2.0</string>
+ <string>6.2.3</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSPrincipalClass</key>
diff --git a/docs/Classes.html b/docs/Classes.html
index 5778b4789..642fe7a4a 100644
--- a/docs/Classes.html
+++ b/docs/Classes.html
@@ -434,7 +434,6 @@
<ul>
<li>alertText1</li>
<li>alertText2</li>
- <li>alertText3</li>
<li>ttsChunks</li>
</ul>
</li>
diff --git a/docs/Classes/SDLAlert.html b/docs/Classes/SDLAlert.html
index 29459c81c..ad9277047 100644
--- a/docs/Classes/SDLAlert.html
+++ b/docs/Classes/SDLAlert.html
@@ -40,7 +40,6 @@
<ul>
<li>alertText1</li>
<li>alertText2</li>
- <li>alertText3</li>
<li>ttsChunks</li>
</ul>
</li>
diff --git a/docs/undocumented.json b/docs/undocumented.json
index 65b79113e..a76a61f97 100644
--- a/docs/undocumented.json
+++ b/docs/undocumented.json
@@ -30,70 +30,70 @@
},
{
"file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h",
- "line": 44,
+ "line": 43,
"symbol": "SDLAlert.-initWithAlertText1:alertText2:duration:",
"symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance",
"warning": "undocumented"
},
{
"file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h",
- "line": 46,
+ "line": 45,
"symbol": "SDLAlert.-initWithAlertText1:alertText2:alertText3:",
"symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance",
"warning": "undocumented"
},
{
"file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h",
- "line": 48,
+ "line": 47,
"symbol": "SDLAlert.-initWithAlertText1:alertText2:alertText3:duration:",
"symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance",
"warning": "undocumented"
},
{
"file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h",
- "line": 50,
+ "line": 49,
"symbol": "SDLAlert.-initWithAlertText1:alertText2:alertText3:duration:softButtons:",
"symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance",
"warning": "undocumented"
},
{
"file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h",
- "line": 52,
+ "line": 51,
"symbol": "SDLAlert.-initWithTTS:playTone:",
"symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance",
"warning": "undocumented"
},
{
"file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h",
- "line": 54,
+ "line": 53,
"symbol": "SDLAlert.-initWithTTS:alertText1:alertText2:playTone:duration:",
"symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance",
"warning": "undocumented"
},
{
"file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h",
- "line": 56,
+ "line": 55,
"symbol": "SDLAlert.-initWithTTS:alertText1:alertText2:alertText3:playTone:duration:",
"symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance",
"warning": "undocumented"
},
{
"file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h",
- "line": 58,
+ "line": 57,
"symbol": "SDLAlert.-initWithTTSChunks:playTone:",
"symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance",
"warning": "undocumented"
},
{
"file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h",
- "line": 60,
+ "line": 59,
"symbol": "SDLAlert.-initWithTTSChunks:alertText1:alertText2:alertText3:playTone:softButtons:",
"symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance",
"warning": "undocumented"
},
{
"file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h",
- "line": 62,
+ "line": 61,
"symbol": "SDLAlert.-initWithTTSChunks:alertText1:alertText2:alertText3:playTone:duration:softButtons:",
"symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance",
"warning": "undocumented"