From 50ca82d59843cca8b1f7f5d00e00c9592fdbdd26 Mon Sep 17 00:00:00 2001 From: BrettyWhite Date: Tue, 1 Aug 2017 10:20:46 -0400 Subject: start of work --- SmartDeviceLink-iOS.xcodeproj/project.pbxproj | 12 +++ SmartDeviceLink/SDLTextFieldType.h | 119 +++++++++++++++++++++ SmartDeviceLink/SDLTextFieldType.m | 28 +++++ .../RPCSpecs/EnumSpecs/SDLTextFieldTypeSpec.m | 87 +++++++++++++++ 4 files changed, 246 insertions(+) create mode 100644 SmartDeviceLink/SDLTextFieldType.h create mode 100644 SmartDeviceLink/SDLTextFieldType.m create mode 100644 SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldTypeSpec.m diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj index 6b8e0a680..5d18acf3c 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj +++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj @@ -903,6 +903,9 @@ 5DEE55C01B8509CB004F0D0F /* SDLURLRequestTaskSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DEE55BF1B8509CB004F0D0F /* SDLURLRequestTaskSpec.m */; }; 5DF2BB9D1B94E38A00CE5994 /* SDLURLSessionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DF2BB9C1B94E38A00CE5994 /* SDLURLSessionSpec.m */; }; 5DFFB9151BD7C89700DB3F04 /* SDLConnectionManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DFFB9141BD7C89700DB3F04 /* SDLConnectionManagerType.h */; }; + 8B06061F1F30BCED005ADB2F /* SDLTextFieldType.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B06061D1F30BCED005ADB2F /* SDLTextFieldType.h */; }; + 8B0606201F30BCED005ADB2F /* SDLTextFieldType.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B06061E1F30BCED005ADB2F /* SDLTextFieldType.m */; }; + 8B0606221F30C108005ADB2F /* SDLTextFieldTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B0606211F30C108005ADB2F /* SDLTextFieldTypeSpec.m */; }; 97E26DEC1E807AD70074A3C7 /* SDLMutableDataQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 97E26DEA1E807AD70074A3C7 /* SDLMutableDataQueue.h */; }; 97E26DED1E807AD70074A3C7 /* SDLMutableDataQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 97E26DEB1E807AD70074A3C7 /* SDLMutableDataQueue.m */; }; DA4353DF1D271FD10099B8C4 /* CGPointUtilSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA4353DE1D271FD10099B8C4 /* CGPointUtilSpec.m */; }; @@ -1963,6 +1966,9 @@ 5DEE55BF1B8509CB004F0D0F /* SDLURLRequestTaskSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLURLRequestTaskSpec.m; path = "UtilitiesSpecs/HTTP Connection/SDLURLRequestTaskSpec.m"; sourceTree = ""; }; 5DF2BB9C1B94E38A00CE5994 /* SDLURLSessionSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLURLSessionSpec.m; path = "UtilitiesSpecs/HTTP Connection/SDLURLSessionSpec.m"; sourceTree = ""; }; 5DFFB9141BD7C89700DB3F04 /* SDLConnectionManagerType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLConnectionManagerType.h; sourceTree = ""; }; + 8B06061D1F30BCED005ADB2F /* SDLTextFieldType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLTextFieldType.h; sourceTree = ""; }; + 8B06061E1F30BCED005ADB2F /* SDLTextFieldType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTextFieldType.m; sourceTree = ""; }; + 8B0606211F30C108005ADB2F /* SDLTextFieldTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTextFieldTypeSpec.m; sourceTree = ""; }; 97E26DEA1E807AD70074A3C7 /* SDLMutableDataQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMutableDataQueue.h; sourceTree = ""; }; 97E26DEB1E807AD70074A3C7 /* SDLMutableDataQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMutableDataQueue.m; sourceTree = ""; }; DA4353DE1D271FD10099B8C4 /* CGPointUtilSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CGPointUtilSpec.m; path = UtilitiesSpecs/Touches/CGPointUtilSpec.m; sourceTree = ""; }; @@ -2160,6 +2166,7 @@ 162E82161A9BDE8A00906325 /* SDLTBTStateSpec.m */, 162E82171A9BDE8A00906325 /* SDLTextAlignmentSpec.m */, 162E82181A9BDE8A00906325 /* SDLTextFieldNameSpec.m */, + 8B0606211F30C108005ADB2F /* SDLTextFieldTypeSpec.m */, 162E82191A9BDE8A00906325 /* SDLTimerModeSpec.m */, 162E821A1A9BDE8A00906325 /* SDLTouchTypeSpec.m */, 162E821B1A9BDE8A00906325 /* SDLTriggerSource.m */, @@ -3101,6 +3108,8 @@ 5D61FBDB1A84238C00846EE7 /* SDLTextAlignment.m */, 5D61FBDE1A84238C00846EE7 /* SDLTextFieldName.h */, 5D61FBDF1A84238C00846EE7 /* SDLTextFieldName.m */, + 8B06061D1F30BCED005ADB2F /* SDLTextFieldType.h */, + 8B06061E1F30BCED005ADB2F /* SDLTextFieldType.m */, 5D61FBE01A84238C00846EE7 /* SDLTimerMode.h */, 5D61FBE11A84238C00846EE7 /* SDLTimerMode.m */, 5D61FBEA1A84238C00846EE7 /* SDLTouchType.h */, @@ -4229,6 +4238,7 @@ 5D16545A1D3E7A1600554D93 /* SDLLifecycleManager.h in Headers */, 5D61FCBD1A84238C00846EE7 /* SDLHeadLampStatus.h in Headers */, 5D61FDC31A84238C00846EE7 /* SDLTBTState.h in Headers */, + 8B06061F1F30BCED005ADB2F /* SDLTextFieldType.h in Headers */, 5D61FD951A84238C00846EE7 /* SDLShowResponse.h in Headers */, 5D61FCA31A84238C00846EE7 /* SDLEndAudioPassThru.h in Headers */, 5D61FCB11A84238C00846EE7 /* SDLGetDTCs.h in Headers */, @@ -4566,6 +4576,7 @@ 5D61FDB21A84238C00846EE7 /* SDLSubscribeVehicleData.m in Sources */, 5D61FC991A84238C00846EE7 /* SDLECallInfo.m in Sources */, 5D61FD601A84238C00846EE7 /* SDLRegisterAppInterfaceResponse.m in Sources */, + 8B0606201F30BCED005ADB2F /* SDLTextFieldType.m in Sources */, DAC572621D10C5020004288B /* SDLPinchGesture.m in Sources */, 5D61FCF51A84238C00846EE7 /* SDLMaintenanceModeStatus.m in Sources */, 5D61FCD81A84238C00846EE7 /* SDLInteractionMode.m in Sources */, @@ -4836,6 +4847,7 @@ DA9F7EB41DCC086400ACAE48 /* SDLDateTimeSpec.m in Sources */, 162E830E1A9BDE8B00906325 /* SDLRPCRequestFactorySpec.m in Sources */, 162E82E41A9BDE8B00906325 /* SDLImageFieldNameSpec.m in Sources */, + 8B0606221F30C108005ADB2F /* SDLTextFieldTypeSpec.m in Sources */, 162E83991A9BDE8B00906325 /* SDLEnumSpec.m in Sources */, 162E82ED1A9BDE8B00906325 /* SDLMaintenanceModeStatusSpec.m in Sources */, 5DB92D2D1AC4A34F00C15BB0 /* SDLPrioritizedObjectCollectionSpec.m in Sources */, diff --git a/SmartDeviceLink/SDLTextFieldType.h b/SmartDeviceLink/SDLTextFieldType.h new file mode 100644 index 000000000..f0210e5ff --- /dev/null +++ b/SmartDeviceLink/SDLTextFieldType.h @@ -0,0 +1,119 @@ +// +// SDLTextFieldType.h +// SmartDeviceLink-iOS +// +// Created by Brett McIsaac on 8/1/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * The list of possible metadata for text fields + * + * @since SDL 4.7.0 + */ +@interface SDLTextFieldType : SDLEnum { +} + +/** + * Convert String to SDLTextAlignment + * + * @param value The value of the string to get an object for + * + * @return SDLTextAlignment + */ ++ (SDLTextFieldType *)valueOf:(NSString *)value; + +/** + * @abstract Store the enumeration of all possible SDLTextFieldType + * + * @return an array that store all possible SDLTextFieldType + */ ++ (NSArray *)values; + +/** + * @abstract The data in this field contains the title of the currently playing audio track. + * + * @return A SDLTextFieldType object with value of *MEDIA_TITLE* + */ ++ (SDLTextFieldType *)MEDIA_TITLE; + +/** + * @abstract The data in this field contains the artist or creator of the currently playing audio track. + * + * @return A SDLTextFieldType object with value of *MEDIA_ARTIST* + */ ++ (SDLTextFieldType *)MEDIA_ARTIST; + +/** + * @abstract The data in this field contains the album title of the currently playing audio track. + * + * @return A SDLTextFieldType object with value of *MEDIA_ALBUM* + */ ++ (SDLTextFieldType *)MEDIA_ALBUM; + +/** + * @abstract The data in this field contains the creation year of the currently playing audio track. + * + * @return A SDLTextFieldType object with value of *MEDIA_YEAR* + */ ++ (SDLTextFieldType *)MEDIA_YEAR; + +/** + * @abstract The data in this field contains the genre of the currently playing audio track. + * + * @return A SDLTextFieldType object with value of *MEDIA_GENRE* + */ ++ (SDLTextFieldType *)MEDIA_GENRE; + +/** + * @abstract The data in this field contains the name of the current source for the media. + * + * @return A SDLTextFieldType object with value of *MEDIA_STATION* + */ ++ (SDLTextFieldType *)MEDIA_STATION; + +/** + * @abstract The data in this field is a rating. + * + * @return A SDLTextFieldType object with value of *RATING* + */ ++ (SDLTextFieldType *)RATING; + +/** + * @abstract The data in this field is the current temperature. + * + * @return A SDLTextFieldType object with value of *CURRENT_TEMPERATURE* + */ ++ (SDLTextFieldType *)CURRENT_TEMPERATURE; + +/** + * @abstract The data in this field is the maximum temperature for the day. + * + * @return A SDLTextFieldType object with value of *MAXIMUM_TEMPERATURE* + */ ++ (SDLTextFieldType *)MAXIMUM_TEMPERATURE; + +/** + * @abstract The data in this field is the minimum temperature for the day. + * + * @return A SDLTextFieldType object with value of *MINIMUM_TEMPERATURE* + */ ++ (SDLTextFieldType *)MINIMUM_TEMPERATURE; + +/** + * @abstract The data in this field describes the current weather (ex. cloudy, clear, etc.). + * + * @return A SDLTextFieldType object with value of *WEATHER_TERM* + */ ++ (SDLTextFieldType *)WEATHER_TERM; + +/** + * @abstract The data in this field describes the current humidity value. + * + * @return A SDLTextFieldType object with value of *HUMIDITY* + */ ++ (SDLTextFieldType *)HUMIDITY; + +@end diff --git a/SmartDeviceLink/SDLTextFieldType.m b/SmartDeviceLink/SDLTextFieldType.m new file mode 100644 index 000000000..f0010f757 --- /dev/null +++ b/SmartDeviceLink/SDLTextFieldType.m @@ -0,0 +1,28 @@ +// +// SDLTextFieldType.m +// SmartDeviceLink-iOS +// +// Created by Brett McIsaac on 8/1/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLTextFieldType.h" + +SDLTextFieldType *MEDIA_TITLE = nil; +SDLTextFieldType *MEDIA_ARTIST = nil; +SDLTextFieldType *MEDIA_ALBUM = nil; +SDLTextFieldType *MEDIA_YEAR = nil; +SDLTextFieldType *MEDIA_GENRE = nil; +SDLTextFieldType *MEDIA_STATION = nil; +SDLTextFieldType *RATING = nil; +SDLTextFieldType *CURRENT_TEMPERATURE = nil; +SDLTextFieldType *MAXIMUM_TEMPERATURE = nil; +SDLTextFieldType *MINIMUM_TEMPERATURE = nil; +SDLTextFieldType *WEATHER_TERM = nil; +SDLTextFieldType *HUMIDITY = nil; + +NSArray *SDLTextFieldType_values = nil; + +@implementation SDLTextFieldType + +@end diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldTypeSpec.m new file mode 100644 index 000000000..68780bca7 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldTypeSpec.m @@ -0,0 +1,87 @@ +// +// SDLTextFieldTypeSpec.m +// SmartDeviceLink-iOS +// +// Created by Brett McIsaac on 8/1/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import +#import + +#import "SDLTextFieldType.h" + +QuickSpecBegin(SDLTextFieldTypeSpec) + +describe(@"Individual Enum Value Tests", ^ { + it(@"Should match internal values", ^ { + expect([SDLTextFieldType MEDIA_TITLE].value).to(equal(@"MEDIA_TITLE")); + expect([SDLTextFieldType MEDIA_ARTIST].value).to(equal(@"MEDIA_ARTIST")); + expect([SDLTextFieldType MEDIA_ALBUM].value).to(equal(@"MEDIA_ALBUM")); + expect([SDLTextFieldType MEDIA_YEAR].value).to(equal(@"MEDIA_YEAR")); + expect([SDLTextFieldType MEDIA_GENRE].value).to(equal(@"MEDIA_GENRE")); + expect([SDLTextFieldType MEDIA_STATION].value).to(equal(@"MEDIA_STATION")); + expect([SDLTextFieldType RATING].value).to(equal(@"RATING")); + expect([SDLTextFieldType CURRENT_TEMPERATURE].value).to(equal(@"CURRENT_TEMPERATURE")); + expect([SDLTextFieldType MAXIMUM_TEMPERATURE].value).to(equal(@"MAXIMUM_TEMPERATURE")); + expect([SDLTextFieldType MINIMUM_TEMPERATURE].value).to(equal(@"MINIMUM_TEMPERATURE")); + expect([SDLTextFieldType WEATHER_TERM].value).to(equal(@"WEATHER_TERM")); + expect([SDLTextFieldType HUMIDITY].value).to(equal(@"HUMIDITY")); + + }); +}); +describe(@"ValueOf Tests", ^ { + it(@"Should return correct values when valid", ^ { + expect([SDLTextFieldType valueOf:@"MEDIA_TITLE"]).to(equal([SDLTextFieldType MEDIA_TITLE])); + expect([SDLTextFieldType valueOf:@"MEDIA_ARTIST"]).to(equal([SDLTextFieldType MEDIA_ARTIST])); + expect([SDLTextFieldType valueOf:@"MEDIA_ALBUM"]).to(equal([SDLTextFieldType MEDIA_ALBUM])); + expect([SDLTextFieldType valueOf:@"MEDIA_YEAR"]).to(equal([SDLTextFieldType MEDIA_YEAR])); + expect([SDLTextFieldType valueOf:@"MEDIA_GENRE"]).to(equal([SDLTextFieldType MEDIA_GENRE])); + expect([SDLTextFieldType valueOf:@"MEDIA_STATION"]).to(equal([SDLTextFieldType MEDIA_STATION])); + expect([SDLTextFieldType valueOf:@"RATING"]).to(equal([SDLTextFieldType RATING])); + expect([SDLTextFieldType valueOf:@"CURRENT_TEMPERATURE"]).to(equal([SDLTextFieldType CURRENT_TEMPERATURE])); + expect([SDLTextFieldType valueOf:@"MAXIMUM_TEMPERATURE"]).to(equal([SDLTextFieldType MAXIMUM_TEMPERATURE])); + expect([SDLTextFieldType valueOf:@"MINIMUM_TEMPERATURE"]).to(equal([SDLTextFieldType MINIMUM_TEMPERATURE])); + expect([SDLTextFieldType valueOf:@"WEATHER_TERM"]).to(equal([SDLTextFieldType WEATHER_TERM])); + expect([SDLTextFieldType valueOf:@"HUMIDITY"]).to(equal([SDLTextFieldType HUMIDITY])); + }); + + it(@"Should return nil when invalid", ^ { + expect([SDLTextFieldType valueOf:nil]).to(beNil()); + expect([SDLTextFieldType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); + }); +}); +describe(@"Value List Tests", ^ { + NSArray* storedValues = [SDLTextFieldType values]; + __block NSArray* definedValues; + beforeSuite(^ { + definedValues = [@[[SDLTextFieldType MEDIA_TITLE], + [SDLTextFieldType MEDIA_ARTIST], + [SDLTextFieldType MEDIA_ALBUM], + [SDLTextFieldType MEDIA_YEAR], + [SDLTextFieldType MEDIA_GENRE], + [SDLTextFieldType MEDIA_STATION], + [SDLTextFieldType RATING], + [SDLTextFieldType CURRENT_TEMPERATURE], + [SDLTextFieldType MAXIMUM_TEMPERATURE], + [SDLTextFieldType MINIMUM_TEMPERATURE], + [SDLTextFieldType WEATHER_TERM], + [SDLTextFieldType HUMIDITY]] copy]; + }); + + it(@"Should contain all defined enum values", ^ { + for (int i = 0; i < definedValues.count; i++) { + expect(storedValues).to(contain(definedValues[i])); + } + }); + + it(@"Should contain only defined enum values", ^ { + for (int i = 0; i < storedValues.count; i++) { + expect(definedValues).to(contain(storedValues[i])); + } + }); +}); + +QuickSpecEnd -- cgit v1.2.1 From 187a8e2ef4b2aa8ca9af914cfce722886766587f Mon Sep 17 00:00:00 2001 From: BrettyWhite Date: Tue, 1 Aug 2017 11:17:39 -0400 Subject: enum complete w/ unit tests --- SmartDeviceLink/SDLTextFieldType.m | 136 +++++++++++++++++++++++++++++++++---- 1 file changed, 124 insertions(+), 12 deletions(-) diff --git a/SmartDeviceLink/SDLTextFieldType.m b/SmartDeviceLink/SDLTextFieldType.m index f0010f757..cade7f8c4 100644 --- a/SmartDeviceLink/SDLTextFieldType.m +++ b/SmartDeviceLink/SDLTextFieldType.m @@ -8,21 +8,133 @@ #import "SDLTextFieldType.h" -SDLTextFieldType *MEDIA_TITLE = nil; -SDLTextFieldType *MEDIA_ARTIST = nil; -SDLTextFieldType *MEDIA_ALBUM = nil; -SDLTextFieldType *MEDIA_YEAR = nil; -SDLTextFieldType *MEDIA_GENRE = nil; -SDLTextFieldType *MEDIA_STATION = nil; -SDLTextFieldType *RATING = nil; -SDLTextFieldType *CURRENT_TEMPERATURE = nil; -SDLTextFieldType *MAXIMUM_TEMPERATURE = nil; -SDLTextFieldType *MINIMUM_TEMPERATURE = nil; -SDLTextFieldType *WEATHER_TERM = nil; -SDLTextFieldType *HUMIDITY = nil; +SDLTextFieldType *SDLTextFieldType_MEDIA_TITLE = nil; +SDLTextFieldType *SDLTextFieldType_MEDIA_ARTIST = nil; +SDLTextFieldType *SDLTextFieldType_MEDIA_ALBUM = nil; +SDLTextFieldType *SDLTextFieldType_MEDIA_YEAR = nil; +SDLTextFieldType *SDLTextFieldType_MEDIA_GENRE = nil; +SDLTextFieldType *SDLTextFieldType_MEDIA_STATION = nil; +SDLTextFieldType *SDLTextFieldType_RATING = nil; +SDLTextFieldType *SDLTextFieldType_CURRENT_TEMPERATURE = nil; +SDLTextFieldType *SDLTextFieldType_MAXIMUM_TEMPERATURE = nil; +SDLTextFieldType *SDLTextFieldType_MINIMUM_TEMPERATURE = nil; +SDLTextFieldType *SDLTextFieldType_WEATHER_TERM = nil; +SDLTextFieldType *SDLTextFieldType_HUMIDITY = nil; NSArray *SDLTextFieldType_values = nil; @implementation SDLTextFieldType ++ (SDLTextFieldType *)valueOf:(NSString *)value { + for (SDLTextFieldType *item in SDLTextFieldType.values) { + if ([item.value isEqualToString:value]) { + return item; + } + } + return nil; +} + ++ (NSArray *)values { + if (SDLTextFieldType_values == nil) { + SDLTextFieldType_values = @[ + SDLTextFieldType.MEDIA_TITLE, + SDLTextFieldType.MEDIA_ARTIST, + SDLTextFieldType.MEDIA_ALBUM, + SDLTextFieldType.MEDIA_YEAR, + SDLTextFieldType.MEDIA_GENRE, + SDLTextFieldType.MEDIA_STATION, + SDLTextFieldType.RATING, + SDLTextFieldType.CURRENT_TEMPERATURE, + SDLTextFieldType.MAXIMUM_TEMPERATURE, + SDLTextFieldType.MINIMUM_TEMPERATURE, + SDLTextFieldType.WEATHER_TERM, + SDLTextFieldType.HUMIDITY]; + } + return SDLTextFieldType_values; +} + ++ (SDLTextFieldType *)MEDIA_TITLE { + if (SDLTextFieldType_MEDIA_TITLE== nil) { + SDLTextFieldType_MEDIA_TITLE = [[SDLTextFieldType alloc] initWithValue:@"MEDIA_TITLE"]; + } + return SDLTextFieldType_MEDIA_TITLE; +} + ++ (SDLTextFieldType *)MEDIA_ARTIST { + if (SDLTextFieldType_MEDIA_ARTIST== nil) { + SDLTextFieldType_MEDIA_ARTIST = [[SDLTextFieldType alloc] initWithValue:@"MEDIA_ARTIST"]; + } + return SDLTextFieldType_MEDIA_ARTIST; +} + ++ (SDLTextFieldType *)MEDIA_ALBUM { + if (SDLTextFieldType_MEDIA_ALBUM== nil) { + SDLTextFieldType_MEDIA_ALBUM = [[SDLTextFieldType alloc] initWithValue:@"MEDIA_ALBUM"]; + } + return SDLTextFieldType_MEDIA_ALBUM; +} + ++ (SDLTextFieldType *)MEDIA_YEAR { + if (SDLTextFieldType_MEDIA_YEAR== nil) { + SDLTextFieldType_MEDIA_YEAR = [[SDLTextFieldType alloc] initWithValue:@"MEDIA_YEAR"]; + } + return SDLTextFieldType_MEDIA_YEAR; +} + ++ (SDLTextFieldType *)MEDIA_GENRE { + if (SDLTextFieldType_MEDIA_GENRE== nil) { + SDLTextFieldType_MEDIA_GENRE = [[SDLTextFieldType alloc] initWithValue:@"MEDIA_GENRE"]; + } + return SDLTextFieldType_MEDIA_GENRE; +} + ++ (SDLTextFieldType *)MEDIA_STATION { + if (SDLTextFieldType_MEDIA_STATION== nil) { + SDLTextFieldType_MEDIA_STATION = [[SDLTextFieldType alloc] initWithValue:@"MEDIA_STATION"]; + } + return SDLTextFieldType_MEDIA_STATION; +} + ++ (SDLTextFieldType *)RATING { + if (SDLTextFieldType_RATING== nil) { + SDLTextFieldType_RATING = [[SDLTextFieldType alloc] initWithValue:@"RATING"]; + } + return SDLTextFieldType_RATING; +} + ++ (SDLTextFieldType *)CURRENT_TEMPERATURE { + if (SDLTextFieldType_CURRENT_TEMPERATURE== nil) { + SDLTextFieldType_CURRENT_TEMPERATURE = [[SDLTextFieldType alloc] initWithValue:@"CURRENT_TEMPERATURE"]; + } + return SDLTextFieldType_CURRENT_TEMPERATURE; +} + ++ (SDLTextFieldType *)MAXIMUM_TEMPERATURE { + if (SDLTextFieldType_MAXIMUM_TEMPERATURE== nil) { + SDLTextFieldType_MAXIMUM_TEMPERATURE = [[SDLTextFieldType alloc] initWithValue:@"MAXIMUM_TEMPERATURE"]; + } + return SDLTextFieldType_MAXIMUM_TEMPERATURE; +} + ++ (SDLTextFieldType *)MINIMUM_TEMPERATURE { + if (SDLTextFieldType_MINIMUM_TEMPERATURE== nil) { + SDLTextFieldType_MINIMUM_TEMPERATURE = [[SDLTextFieldType alloc] initWithValue:@"MINIMUM_TEMPERATURE"]; + } + return SDLTextFieldType_MINIMUM_TEMPERATURE; +} + ++ (SDLTextFieldType *)WEATHER_TERM { + if (SDLTextFieldType_WEATHER_TERM== nil) { + SDLTextFieldType_WEATHER_TERM = [[SDLTextFieldType alloc] initWithValue:@"WEATHER_TERM"]; + } + return SDLTextFieldType_WEATHER_TERM; +} + ++ (SDLTextFieldType *)HUMIDITY { + if (SDLTextFieldType_HUMIDITY== nil) { + SDLTextFieldType_HUMIDITY = [[SDLTextFieldType alloc] initWithValue:@"HUMIDITY"]; + } + return SDLTextFieldType_HUMIDITY; +} + @end -- cgit v1.2.1 From fd1d68630b17ff9c57e6f8f8cdb3d88b2d909dbb Mon Sep 17 00:00:00 2001 From: Brett W Date: Tue, 1 Aug 2017 16:03:47 -0400 Subject: adding struct --- SmartDeviceLink-iOS.xcodeproj/project.pbxproj | 12 +++ SmartDeviceLink/SDLMetadataStruct.h | 67 ++++++++++++++++ SmartDeviceLink/SDLMetadataStruct.m | 89 ++++++++++++++++++++++ SmartDeviceLink/SDLNames.h | 4 + .../RPCSpecs/StructSpecs/SDLMetadataStructSpec.m | 60 +++++++++++++++ 5 files changed, 232 insertions(+) create mode 100644 SmartDeviceLink/SDLMetadataStruct.h create mode 100644 SmartDeviceLink/SDLMetadataStruct.m create mode 100644 SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataStructSpec.m diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj index 5d18acf3c..6920a34f6 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj +++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj @@ -906,6 +906,9 @@ 8B06061F1F30BCED005ADB2F /* SDLTextFieldType.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B06061D1F30BCED005ADB2F /* SDLTextFieldType.h */; }; 8B0606201F30BCED005ADB2F /* SDLTextFieldType.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B06061E1F30BCED005ADB2F /* SDLTextFieldType.m */; }; 8B0606221F30C108005ADB2F /* SDLTextFieldTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B0606211F30C108005ADB2F /* SDLTextFieldTypeSpec.m */; }; + 8B0606291F3103CE005ADB2F /* SDLMetadataStruct.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B0606271F3103CE005ADB2F /* SDLMetadataStruct.h */; }; + 8B06062A1F3103CE005ADB2F /* SDLMetadataStruct.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B0606281F3103CE005ADB2F /* SDLMetadataStruct.m */; }; + 8B06062C1F310ED2005ADB2F /* SDLMetadataStructSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B06062B1F310ED2005ADB2F /* SDLMetadataStructSpec.m */; }; 97E26DEC1E807AD70074A3C7 /* SDLMutableDataQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 97E26DEA1E807AD70074A3C7 /* SDLMutableDataQueue.h */; }; 97E26DED1E807AD70074A3C7 /* SDLMutableDataQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 97E26DEB1E807AD70074A3C7 /* SDLMutableDataQueue.m */; }; DA4353DF1D271FD10099B8C4 /* CGPointUtilSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA4353DE1D271FD10099B8C4 /* CGPointUtilSpec.m */; }; @@ -1969,6 +1972,9 @@ 8B06061D1F30BCED005ADB2F /* SDLTextFieldType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLTextFieldType.h; sourceTree = ""; }; 8B06061E1F30BCED005ADB2F /* SDLTextFieldType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTextFieldType.m; sourceTree = ""; }; 8B0606211F30C108005ADB2F /* SDLTextFieldTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTextFieldTypeSpec.m; sourceTree = ""; }; + 8B0606271F3103CE005ADB2F /* SDLMetadataStruct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMetadataStruct.h; sourceTree = ""; }; + 8B0606281F3103CE005ADB2F /* SDLMetadataStruct.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataStruct.m; sourceTree = ""; }; + 8B06062B1F310ED2005ADB2F /* SDLMetadataStructSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataStructSpec.m; sourceTree = ""; }; 97E26DEA1E807AD70074A3C7 /* SDLMutableDataQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMutableDataQueue.h; sourceTree = ""; }; 97E26DEB1E807AD70074A3C7 /* SDLMutableDataQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMutableDataQueue.m; sourceTree = ""; }; DA4353DE1D271FD10099B8C4 /* CGPointUtilSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CGPointUtilSpec.m; path = UtilitiesSpecs/Touches/CGPointUtilSpec.m; sourceTree = ""; }; @@ -2384,6 +2390,7 @@ 162E82B41A9BDE8A00906325 /* SDLVehicleDataResultSpec.m */, 162E82B51A9BDE8A00906325 /* SDLVehicleTypeSpec.m */, 162E82B61A9BDE8A00906325 /* SDLVrHelpItemSpec.m */, + 8B06062B1F310ED2005ADB2F /* SDLMetadataStructSpec.m */, ); path = StructSpecs; sourceTree = ""; @@ -2988,6 +2995,8 @@ 5D61FC1F1A84238C00846EE7 /* SDLVehicleType.m */, 5D61FC221A84238C00846EE7 /* SDLVrHelpItem.h */, 5D61FC231A84238C00846EE7 /* SDLVrHelpItem.m */, + 8B0606271F3103CE005ADB2F /* SDLMetadataStruct.h */, + 8B0606281F3103CE005ADB2F /* SDLMetadataStruct.m */, ); name = Structs; sourceTree = ""; @@ -4096,6 +4105,7 @@ 5D00AC6F1F1511B9004000D9 /* SDLGetSystemCapability.h in Headers */, 5D61FD891A84238C00846EE7 /* SDLSetGlobalPropertiesResponse.h in Headers */, 5D61FD8D1A84238C00846EE7 /* SDLSetMediaClockTimerResponse.h in Headers */, + 8B0606291F3103CE005ADB2F /* SDLMetadataStruct.h in Headers */, 5D61FD3B1A84238C00846EE7 /* SDLPresetBankCapabilities.h in Headers */, 5D8204311BD001C700D0A41B /* SDLArtwork.h in Headers */, 5D53C46D1B7A99B9003526EA /* SDLStreamingMediaManager.h in Headers */, @@ -4735,6 +4745,7 @@ 5D1665C51CF8CA2700CC4CA1 /* SDLListFilesOperation.m in Sources */, 5D61FE021A84238C00846EE7 /* SDLVehicleDataNotificationStatus.m in Sources */, 5D61FDD81A84238C00846EE7 /* SDLTouchType.m in Sources */, + 8B06062A1F3103CE005ADB2F /* SDLMetadataStruct.m in Sources */, 5D61FDD61A84238C00846EE7 /* SDLTouchEventCapabilities.m in Sources */, 5DA102A51D4122C700C15826 /* NSMutableDictionary+SafeRemove.m in Sources */, 5D61FCF11A84238C00846EE7 /* SDLLockScreenStatusManager.m in Sources */, @@ -4838,6 +4849,7 @@ 162E83331A9BDE8B00906325 /* SDLPerformInteractionSpec.m in Sources */, 5D0A9F951F15585B00CC80DD /* SDLPhoneCapabilitySpec.m in Sources */, 1680B11A1A9CD7AD00DBD79E /* SDLAbstractProtocolSpec.m in Sources */, + 8B06062C1F310ED2005ADB2F /* SDLMetadataStructSpec.m in Sources */, 1680B1151A9CD7AD00DBD79E /* SDLV2ProtocolHeaderSpec.m in Sources */, 162E83101A9BDE8B00906325 /* SDLOnAudioPassThruSpec.m in Sources */, 162E82D91A9BDE8A00906325 /* SDLDisplayTypeSpec.m in Sources */, diff --git a/SmartDeviceLink/SDLMetadataStruct.h b/SmartDeviceLink/SDLMetadataStruct.h new file mode 100644 index 000000000..f7028272b --- /dev/null +++ b/SmartDeviceLink/SDLMetadataStruct.h @@ -0,0 +1,67 @@ +// +// SDLMetadataStruct.h +// SmartDeviceLink-iOS +// +// Created by Brett McIsaac on 8/1/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLRPCMessage.h" + +@class SDLTextFieldType; + +// TODO: CHANGE FILE NAME +@interface SDLMetadataStruct : SDLRPCStruct { +} + +/** + * @abstract Constructs a newly allocated SDLTextField object + */ +- (instancetype)init; + +/** + * @abstract Constructs a newly allocated SDLTextField object indicated by the dictionary parameter + * + * @param dict The dictionary to use to construct the object + */ +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; + +- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 mainField3:(NSArray *)mainField3 mainField4:(NSArray *)mainField4; + +/** + * @abstract The type of data contained in the "mainField1" text field, Optional. + * + * minsize= 0 + * + * maxsize= 5 + */ +@property (strong, nonatomic) NSMutableArray *mainField1; + +/** + * @abstract The type of data contained in the "mainField2" text field, Optional. + * + * minsize= 0 + * + * maxsize= 5 + */ +@property (strong, nonatomic) NSMutableArray *mainField2; + +/** + * @abstract The type of data contained in the "mainField3" text field, Optional. + * + * minsize= 0 + * + * maxsize= 5 + */ +@property (strong, nonatomic) NSMutableArray *mainField3; + +/** + * @abstract The type of data contained in the "mainField4" text field, Optional. + * + * minsize= 0 + * + * maxsize= 5 + */ +@property (strong, nonatomic) NSMutableArray *mainField4; + +@end diff --git a/SmartDeviceLink/SDLMetadataStruct.m b/SmartDeviceLink/SDLMetadataStruct.m new file mode 100644 index 000000000..796b62039 --- /dev/null +++ b/SmartDeviceLink/SDLMetadataStruct.m @@ -0,0 +1,89 @@ +// +// SDLMetadataStruct.m +// SmartDeviceLink-iOS +// +// Created by Brett McIsaac on 8/1/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLMetadataStruct.h" +#import "SDLNames.h" +#import "SDLTextFieldType.h" + +@implementation SDLMetadataStruct + +- (instancetype)init { + if (self = [super init]) { + } + return self; +} + +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { + if (self = [super initWithDictionary:dict]) { + } + return self; +} + +- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 mainField3:(NSArray *)mainField3 mainField4:(NSArray *)mainField4 { + self = [self init]; + if (!self) { + return self; + } + + self.mainField1 = [mainField1 mutableCopy]; + self.mainField2 = [mainField2 mutableCopy]; + self.mainField3 = [mainField3 mutableCopy]; + self.mainField4 = [mainField4 mutableCopy]; + + return self; +} + +- (void)setMainField1:(NSMutableArray *)mainField1 { + if (mainField1 != nil) { + [store setObject:mainField1 forKey:NAMES_mainField1Type]; + } else { + [store removeObjectForKey:NAMES_mainField1Type]; + } +} + +- (NSMutableArray *)mainField1 { + return [store objectForKey:NAMES_mainField1Type]; +} + +- (void)setMainField2:(NSMutableArray *)mainField2 { + if (mainField2 != nil) { + [store setObject:mainField2 forKey:NAMES_mainField2Type]; + } else { + [store removeObjectForKey:NAMES_mainField2Type]; + } +} + +- (NSMutableArray *)mainField2 { + return [store objectForKey:NAMES_mainField2Type]; +} + +- (void)setMainField3:(NSMutableArray *)mainField3 { + if (mainField3 != nil) { + [store setObject:mainField3 forKey:NAMES_mainField3Type]; + } else { + [store removeObjectForKey:NAMES_mainField3Type]; + } +} + +- (NSMutableArray *)mainField3 { + return [store objectForKey:NAMES_mainField3Type]; +} + +- (void)setMainField4:(NSMutableArray *)mainField4 { + if (mainField4 != nil) { + [store setObject:mainField4 forKey:NAMES_mainField4Type]; + } else { + [store removeObjectForKey:NAMES_mainField4Type]; + } +} + +- (NSMutableArray *)mainField4 { + return [store objectForKey:NAMES_mainField4Type]; +} + +@end diff --git a/SmartDeviceLink/SDLNames.h b/SmartDeviceLink/SDLNames.h index 93da8a03a..3a157ff7c 100644 --- a/SmartDeviceLink/SDLNames.h +++ b/SmartDeviceLink/SDLNames.h @@ -193,6 +193,10 @@ #define NAMES_mainField2 @"mainField2" #define NAMES_mainField3 @"mainField3" #define NAMES_mainField4 @"mainField4" +#define NAMES_mainField1Type @"mainField1Type" +#define NAMES_mainField2Type @"mainField2Type" +#define NAMES_mainField3Type @"mainField3Type" +#define NAMES_mainField4Type @"mainField4Type" #define NAMES_majorVersion @"majorVersion" #define NAMES_make @"make" #define NAMES_maneuverComplete @"maneuverComplete" diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataStructSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataStructSpec.m new file mode 100644 index 000000000..f8d0c735d --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataStructSpec.m @@ -0,0 +1,60 @@ +// +// SDLMetadataStructSpec.m +// SmartDeviceLink-iOS +// +// Created by Brett McIsaac on 8/1/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import +#import + +#import "SDLNames.h" +#import "SDLMetadataStruct.h" +#import "SDLTextFieldType.h" + +QuickSpecBegin(SDLMetadataStructSpec) + +describe(@"Initialization tests", ^{ + it(@"Should get correctly when initialized with a dictionary", ^ { + + + NSArray *formatArray = @[[SDLTextFieldType MEDIA_ARTIST], [SDLTextFieldType MEDIA_TITLE]]; + NSMutableDictionary* dict = [@{NAMES_mainField1Type: formatArray, + NAMES_mainField2Type: formatArray, + NAMES_mainField3Type: formatArray, + NAMES_mainField4Type: formatArray} mutableCopy]; + + SDLMetadataStruct* testStruct = [[SDLMetadataStruct alloc] initWithDictionary:dict]; + + expect(testStruct.mainField1).to(equal(formatArray)); + expect(testStruct.mainField2).to(equal(formatArray)); + expect(testStruct.mainField3).to(equal(formatArray)); + expect(testStruct.mainField4).to(equal(formatArray)); + }); + + it(@"Should return nil if not set", ^ { + SDLMetadataStruct* testStruct = [[SDLMetadataStruct alloc] init]; + + expect(testStruct.mainField1).to(beNil()); + expect(testStruct.mainField2).to(beNil()); + expect(testStruct.mainField3).to(beNil()); + expect(testStruct.mainField4).to(beNil()); + }); + + it(@"Should get correctly when initialized with Arrays", ^ { + + NSArray *formatArray = @[[SDLTextFieldType MEDIA_ARTIST], [SDLTextFieldType MEDIA_TITLE]]; + + SDLMetadataStruct* testStruct = [[SDLMetadataStruct alloc] initWithTextFieldTypes:formatArray mainField2:formatArray mainField3:formatArray mainField4:formatArray]; + + expect(testStruct.mainField1).to(equal(formatArray)); + expect(testStruct.mainField2).to(equal(formatArray)); + expect(testStruct.mainField3).to(equal(formatArray)); + expect(testStruct.mainField4).to(equal(formatArray)); + }); +}); + +QuickSpecEnd -- cgit v1.2.1 From 84e4ef3afb89e615e6d3aa7730088ac1b375e955 Mon Sep 17 00:00:00 2001 From: Brett W Date: Tue, 1 Aug 2017 16:06:19 -0400 Subject: fixed documentation --- SmartDeviceLink/SDLMetadataStruct.h | 5 +++++ SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataStructSpec.m | 4 ---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/SmartDeviceLink/SDLMetadataStruct.h b/SmartDeviceLink/SDLMetadataStruct.h index f7028272b..6fc8f077b 100644 --- a/SmartDeviceLink/SDLMetadataStruct.h +++ b/SmartDeviceLink/SDLMetadataStruct.h @@ -26,6 +26,11 @@ */ - (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +/** + * @abstract Constructs a newly allocated SDLTextField object with NSArrays + * + * @param mainField1, mainField2, mainField3, mainField4 + */ - (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 mainField3:(NSArray *)mainField3 mainField4:(NSArray *)mainField4; /** diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataStructSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataStructSpec.m index f8d0c735d..2c3d6afd2 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataStructSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataStructSpec.m @@ -19,8 +19,6 @@ QuickSpecBegin(SDLMetadataStructSpec) describe(@"Initialization tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - - NSArray *formatArray = @[[SDLTextFieldType MEDIA_ARTIST], [SDLTextFieldType MEDIA_TITLE]]; NSMutableDictionary* dict = [@{NAMES_mainField1Type: formatArray, NAMES_mainField2Type: formatArray, @@ -45,9 +43,7 @@ describe(@"Initialization tests", ^{ }); it(@"Should get correctly when initialized with Arrays", ^ { - NSArray *formatArray = @[[SDLTextFieldType MEDIA_ARTIST], [SDLTextFieldType MEDIA_TITLE]]; - SDLMetadataStruct* testStruct = [[SDLMetadataStruct alloc] initWithTextFieldTypes:formatArray mainField2:formatArray mainField3:formatArray mainField4:formatArray]; expect(testStruct.mainField1).to(equal(formatArray)); -- cgit v1.2.1 From a63541b20ae4c2e710772671bf25c3a2d03dc7f1 Mon Sep 17 00:00:00 2001 From: Brett W Date: Wed, 2 Aug 2017 10:52:18 -0400 Subject: modified show, still need to make tests --- SmartDeviceLink/SDLMetadataStruct.h | 6 +-- SmartDeviceLink/SDLNames.h | 1 + SmartDeviceLink/SDLShow.h | 23 ++++++++- SmartDeviceLink/SDLShow.m | 93 +++++++++++++++++++++++++++++++++++-- 4 files changed, 115 insertions(+), 8 deletions(-) diff --git a/SmartDeviceLink/SDLMetadataStruct.h b/SmartDeviceLink/SDLMetadataStruct.h index 6fc8f077b..b15baaf51 100644 --- a/SmartDeviceLink/SDLMetadataStruct.h +++ b/SmartDeviceLink/SDLMetadataStruct.h @@ -26,10 +26,8 @@ */ - (instancetype)initWithDictionary:(NSMutableDictionary *)dict; -/** - * @abstract Constructs a newly allocated SDLTextField object with NSArrays - * - * @param mainField1, mainField2, mainField3, mainField4 +/**ΩΩ + * @abstract Constructs a newly alΩlocated SDLTextField object with NSArrays */ - (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 mainField3:(NSArray *)mainField3 mainField4:(NSArray *)mainField4; diff --git a/SmartDeviceLink/SDLNames.h b/SmartDeviceLink/SDLNames.h index 3a157ff7c..1158a5628 100644 --- a/SmartDeviceLink/SDLNames.h +++ b/SmartDeviceLink/SDLNames.h @@ -395,6 +395,7 @@ #define NAMES_tertiaryText @"tertiaryText" #define NAMES_text @"text" #define NAMES_textFields @"textFields" +#define NAMES_textFieldMetadata @"textFieldMetadata" #define NAMES_textMsgAvailable @"textMsgAvailable" #define NAMES_thoroughfare @"thoroughfare" #define NAMES_timeout @"timeout" diff --git a/SmartDeviceLink/SDLShow.h b/SmartDeviceLink/SDLShow.h index 45849cd48..cf33fd64f 100644 --- a/SmartDeviceLink/SDLShow.h +++ b/SmartDeviceLink/SDLShow.h @@ -5,7 +5,9 @@ @class SDLImage; @class SDLSoftButton; +@class SDLMetadataStruct; @class SDLTextAlignment; +@class SDLTextFieldType; /** @@ -45,11 +47,17 @@ - (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 alignment:(SDLTextAlignment *)alignment; +- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLTextFieldType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLTextFieldType *)mainField2Type alignment:(SDLTextAlignment *)alignment; + - (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment; +- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLTextFieldType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLTextFieldType *)mainField2Type mainField3:(NSString *)mainField3 mainField3Type:(SDLTextFieldType *)mainField3Type mainField4:(NSString *)mainField4 mainField4Type:(SDLTextFieldType *)mainField4Type alignment:(SDLTextAlignment *)alignment; + - (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack; -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets; +- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets __deprecated_msg(("Use initWithMainField1:(NSString *)mainField1 (NSString *)mainField2 (NSString *)mainField3 (NSString *)mainField4 (SDLTextAlignment *)alignment (NSString *)statusBar (NSString *)mediaClock (NSString *)mediaTrack (SDLImage *)graphic (NSArray *)softButtons (NSArray *)customPresets (SDLMetadataStruct *)metadata instead")); + +- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets textFieldMetadata:(SDLMetadataStruct *)metadata; /** @@ -240,4 +248,17 @@ */ @property (strong) NSMutableArray *customPresets; +/** + * @abstract Text Field Metadata + * + * @discussion A Vector value representing the Custom Presets defined by the + * App + *

+ * App defined metadata information. See MetadataStruct. Uses mainField1, mainField2, mainField3, mainField4. + * If omitted on supported displays, the currently set metadata tags will not change. + * If any text field contains no tags or the none tag, the metadata tag for that textfield should be removed. + * @since SmartDeviceLink 2.0 + */ +@property (strong) SDLMetadataStruct *textFieldMetadata; + @end diff --git a/SmartDeviceLink/SDLShow.m b/SmartDeviceLink/SDLShow.m index ed6ab93ce..ae9bba3e1 100644 --- a/SmartDeviceLink/SDLShow.m +++ b/SmartDeviceLink/SDLShow.m @@ -5,6 +5,7 @@ #import "SDLShow.h" #import "SDLImage.h" +#import "SDLMetadataStruct.h" #import "SDLNames.h" #import "SDLSoftButton.h" #import "SDLTextAlignment.h" @@ -28,12 +29,58 @@ return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:nil mainField4:nil alignment:alignment]; } -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment { - return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:mainField3 mainField4:mainField4 alignment:alignment statusBar:nil mediaClock:nil mediaTrack:nil graphic:nil softButtons:nil customPresets:nil]; +- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLTextFieldType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLTextFieldType *)mainField2Type alignment:(SDLTextAlignment *)alignment { + self = [self init]; + if (!self) { + return nil; + } + + NSArray *field1Array = @[mainField1Type]; + NSArray *field2Array = @[mainField2Type]; + NSMutableDictionary* dict = [@{NAMES_mainField1Type: field1Array, + NAMES_mainField2Type: field2Array} mutableCopy]; + SDLMetadataStruct* fieldsStruct = [[SDLMetadataStruct alloc] initWithDictionary:dict]; + + self.mainField1 = mainField1; + self.mainField2 = mainField2; + self.alignment = alignment; + self.textFieldMetadata = fieldsStruct; + + return self; } - (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack { - return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:nil mainField4:nil alignment:alignment statusBar:statusBar mediaClock:mediaClock mediaTrack:mediaTrack graphic:nil softButtons:nil customPresets:nil]; + return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:nil mainField4:nil alignment:alignment statusBar:statusBar mediaClock:mediaClock mediaTrack:mediaTrack graphic:nil softButtons:nil customPresets:nil textFieldMetadata:nil]; +} + +- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment { + return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:mainField3 mainField4:mainField4 alignment:alignment statusBar:nil mediaClock:nil mediaTrack:nil graphic:nil softButtons:nil customPresets:nil textFieldMetadata:nil]; +} + +- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLTextFieldType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLTextFieldType *)mainField2Type mainField3:(NSString *)mainField3 mainField3Type:(SDLTextFieldType *)mainField3Type mainField4:(NSString *)mainField4 mainField4Type:(SDLTextFieldType *)mainField4Type alignment:(SDLTextAlignment *)alignment{ + self = [self init]; + if (!self) { + return nil; + } + + NSArray *field1Array = @[mainField1Type]; + NSArray *field2Array = @[mainField2Type]; + NSArray *field3Array = @[mainField3Type]; + NSArray *field4Array = @[mainField4Type]; + NSMutableDictionary* dict = [@{NAMES_mainField1Type: field1Array, + NAMES_mainField2Type: field2Array, + NAMES_mainField3Type: field3Array, + NAMES_mainField4Type: field4Array} mutableCopy]; + SDLMetadataStruct* fieldsStruct = [[SDLMetadataStruct alloc] initWithDictionary:dict]; + + self.mainField1 = mainField1; + self.mainField2 = mainField2; + self.mainField3 = mainField3; + self.mainField4 = mainField4; + self.alignment = alignment; + self.textFieldMetadata = fieldsStruct; + + return self; } - (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets { @@ -57,6 +104,29 @@ return self; } +- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets textFieldMetadata:(SDLMetadataStruct *)metadata { + self = [self init]; + if (!self) { + return nil; + } + + self.mainField1 = mainField1; + self.mainField2 = mainField2; + self.mainField3 = mainField3; + self.mainField4 = mainField4; + self.statusBar = statusBar; + self.mediaClock = mediaClock; + self.mediaTrack = mediaTrack; + self.alignment = alignment; + self.graphic = graphic; + self.softButtons = [softButtons mutableCopy]; + self.customPresets = [customPresets mutableCopy]; + self.textFieldMetadata = metadata; + + return self; + +} + - (void)setMainField1:(NSString *)mainField1 { if (mainField1 != nil) { [parameters setObject:mainField1 forKey:NAMES_mainField1]; @@ -227,4 +297,21 @@ return [parameters objectForKey:NAMES_customPresets]; } +- (void)setTextFieldMetadata:(SDLMetadataStruct *)textFieldMetadata { + if (textFieldMetadata != nil) { + [parameters setObject:textFieldMetadata forKey:NAMES_textFieldMetadata]; + } else { + [parameters removeObjectForKey:NAMES_textFieldMetadata]; + } +} + +- (SDLMetadataStruct *)textFieldMetadata { + NSObject *obj = [parameters objectForKey:NAMES_textFieldMetadata]; + if (obj == nil || [obj isKindOfClass:SDLMetadataStruct.class]) { + return (SDLMetadataStruct *)obj; + } else { + return [[SDLMetadataStruct alloc] initWithDictionary:(NSMutableDictionary *)obj]; + } +} + @end -- cgit v1.2.1 From fbc339706bb3bf754baedd91c203d0b647be3039 Mon Sep 17 00:00:00 2001 From: Brett W Date: Wed, 2 Aug 2017 11:58:19 -0400 Subject: finished tests --- SmartDeviceLink/SDLMetadataStruct.h | 2 ++ SmartDeviceLink/SDLMetadataStruct.m | 12 ++++++++ SmartDeviceLink/SDLShow.m | 10 ++----- .../RPCSpecs/RequestSpecs/SDLShowSpec.m | 32 ++++++++++++++++++++-- 4 files changed, 46 insertions(+), 10 deletions(-) diff --git a/SmartDeviceLink/SDLMetadataStruct.h b/SmartDeviceLink/SDLMetadataStruct.h index b15baaf51..7ac2662d6 100644 --- a/SmartDeviceLink/SDLMetadataStruct.h +++ b/SmartDeviceLink/SDLMetadataStruct.h @@ -29,6 +29,8 @@ /**ΩΩ * @abstract Constructs a newly alΩlocated SDLTextField object with NSArrays */ +- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2; + - (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 mainField3:(NSArray *)mainField3 mainField4:(NSArray *)mainField4; /** diff --git a/SmartDeviceLink/SDLMetadataStruct.m b/SmartDeviceLink/SDLMetadataStruct.m index 796b62039..abb2cc367 100644 --- a/SmartDeviceLink/SDLMetadataStruct.m +++ b/SmartDeviceLink/SDLMetadataStruct.m @@ -24,6 +24,18 @@ return self; } +- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 { + self = [self init]; + if (!self) { + return self; + } + + self.mainField1 = [mainField1 mutableCopy]; + self.mainField2 = [mainField2 mutableCopy]; + + return self; +} + - (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 mainField3:(NSArray *)mainField3 mainField4:(NSArray *)mainField4 { self = [self init]; if (!self) { diff --git a/SmartDeviceLink/SDLShow.m b/SmartDeviceLink/SDLShow.m index ae9bba3e1..48dfb0ca5 100644 --- a/SmartDeviceLink/SDLShow.m +++ b/SmartDeviceLink/SDLShow.m @@ -37,9 +37,7 @@ NSArray *field1Array = @[mainField1Type]; NSArray *field2Array = @[mainField2Type]; - NSMutableDictionary* dict = [@{NAMES_mainField1Type: field1Array, - NAMES_mainField2Type: field2Array} mutableCopy]; - SDLMetadataStruct* fieldsStruct = [[SDLMetadataStruct alloc] initWithDictionary:dict]; + SDLMetadataStruct* fieldsStruct = [[SDLMetadataStruct alloc] initWithTextFieldTypes:field1Array mainField2:field2Array]; self.mainField1 = mainField1; self.mainField2 = mainField2; @@ -67,11 +65,7 @@ NSArray *field2Array = @[mainField2Type]; NSArray *field3Array = @[mainField3Type]; NSArray *field4Array = @[mainField4Type]; - NSMutableDictionary* dict = [@{NAMES_mainField1Type: field1Array, - NAMES_mainField2Type: field2Array, - NAMES_mainField3Type: field3Array, - NAMES_mainField4Type: field4Array} mutableCopy]; - SDLMetadataStruct* fieldsStruct = [[SDLMetadataStruct alloc] initWithDictionary:dict]; + SDLMetadataStruct* fieldsStruct = [[SDLMetadataStruct alloc] initWithTextFieldTypes:field1Array mainField2:field2Array mainField3:field3Array mainField4:field4Array]; self.mainField1 = mainField1; self.mainField2 = mainField2; diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m index 3058872e6..f844f00a4 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m @@ -9,10 +9,12 @@ #import #import "SDLImage.h" +#import "SDLMetadataStruct.h" #import "SDLNames.h" #import "SDLShow.h" #import "SDLSoftButton.h" #import "SDLTextAlignment.h" +#import "SDLTextFieldType.h" QuickSpecBegin(SDLShowSpec) @@ -21,6 +23,9 @@ SDLImage* image1 = [[SDLImage alloc] init]; SDLImage* image2 = [[SDLImage alloc] init]; SDLSoftButton* button = [[SDLSoftButton alloc] init]; +NSArray *formatArray = @[[SDLTextFieldType MEDIA_ARTIST], [SDLTextFieldType MEDIA_TITLE]]; +SDLMetadataStruct* testMetadata = [[SDLMetadataStruct alloc] initWithTextFieldTypes:formatArray mainField2:formatArray mainField3:formatArray mainField4:formatArray]; + describe(@"Getter/Setter Tests", ^ { it(@"Should set and get correctly", ^ { SDLShow* testRequest = [[SDLShow alloc] init]; @@ -37,6 +42,7 @@ describe(@"Getter/Setter Tests", ^ { testRequest.secondaryGraphic = image2; testRequest.softButtons = [@[button] mutableCopy]; testRequest.customPresets = [@[@"preset1", @"preset2"] mutableCopy]; + testRequest.textFieldMetadata = testMetadata; expect(testRequest.mainField1).to(equal(@"field1")); expect(testRequest.mainField2).to(equal(@"field2")); @@ -50,6 +56,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testRequest.secondaryGraphic).to(equal(image2)); expect(testRequest.softButtons).to(equal([@[button] mutableCopy])); expect(testRequest.customPresets).to(equal([@[@"preset1", @"preset2"] mutableCopy])); + expect(testRequest.textFieldMetadata).to(equal(testMetadata)); }); it(@"Should get correctly when initialized", ^ { @@ -66,7 +73,8 @@ describe(@"Getter/Setter Tests", ^ { NAMES_graphic:image1, NAMES_secondaryGraphic:image2, NAMES_softButtons:[@[button] mutableCopy], - NAMES_customPresets:[@[@"preset1", @"preset2"] mutableCopy]}, + NAMES_customPresets:[@[@"preset1", @"preset2"] mutableCopy], + NAMES_textFieldMetadata: testMetadata}, NAMES_operation_name:NAMES_Show}} mutableCopy]; SDLShow* testRequest = [[SDLShow alloc] initWithDictionary:dict]; @@ -82,6 +90,25 @@ describe(@"Getter/Setter Tests", ^ { expect(testRequest.secondaryGraphic).to(equal(image2)); expect(testRequest.softButtons).to(equal([@[button] mutableCopy])); expect(testRequest.customPresets).to(equal([@[@"preset1", @"preset2"] mutableCopy])); + expect(testRequest.textFieldMetadata).to(equal(testMetadata)); + }); + + it(@"Should get correctly when initialized without a dictionary", ^ { + + SDLShow* testRequest = [[SDLShow alloc] initWithMainField1:@"field1" mainField2:@"field2" mainField3:@"field3" mainField4:@"field4" alignment:[SDLTextAlignment LEFT_ALIGNED] statusBar:@"status" mediaClock:@"TheTime" mediaTrack:@"In The Clear" graphic:image1 softButtons:[@[button] mutableCopy] customPresets:[@[@"preset1", @"preset2"] mutableCopy] textFieldMetadata:testMetadata]; + + expect(testRequest.mainField1).to(equal(@"field1")); + expect(testRequest.mainField2).to(equal(@"field2")); + expect(testRequest.mainField3).to(equal(@"field3")); + expect(testRequest.mainField4).to(equal(@"field4")); + expect(testRequest.alignment).to(equal([SDLTextAlignment LEFT_ALIGNED])); + expect(testRequest.statusBar).to(equal(@"status")); + expect(testRequest.mediaClock).to(equal(@"TheTime")); + expect(testRequest.mediaTrack).to(equal(@"In The Clear")); + expect(testRequest.graphic).to(equal(image1)); + expect(testRequest.softButtons).to(equal([@[button] mutableCopy])); + expect(testRequest.customPresets).to(equal([@[@"preset1", @"preset2"] mutableCopy])); + expect(testRequest.textFieldMetadata).to(equal(testMetadata)); }); it(@"Should return nil if not set", ^ { @@ -99,7 +126,8 @@ describe(@"Getter/Setter Tests", ^ { expect(testRequest.secondaryGraphic).to(beNil()); expect(testRequest.softButtons).to(beNil()); expect(testRequest.customPresets).to(beNil()); + expect(testRequest.textFieldMetadata).to(beNil()); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd -- cgit v1.2.1 From f8905515bb1f8ff268074616ec0a1a1be4d61dd7 Mon Sep 17 00:00:00 2001 From: Brett W Date: Wed, 2 Aug 2017 13:16:43 -0400 Subject: fixed comments --- SmartDeviceLink/SDLMetadataStruct.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SmartDeviceLink/SDLMetadataStruct.h b/SmartDeviceLink/SDLMetadataStruct.h index 7ac2662d6..92585fdf7 100644 --- a/SmartDeviceLink/SDLMetadataStruct.h +++ b/SmartDeviceLink/SDLMetadataStruct.h @@ -26,8 +26,8 @@ */ - (instancetype)initWithDictionary:(NSMutableDictionary *)dict; -/**ΩΩ - * @abstract Constructs a newly alΩlocated SDLTextField object with NSArrays +/** + * @abstract Constructs a newly allocated SDLTextField object with NSArrays */ - (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2; -- cgit v1.2.1 From 7a8b1d2b8deb9ff1076a183217e9ba31630aaa7b Mon Sep 17 00:00:00 2001 From: Brett W Date: Fri, 4 Aug 2017 08:38:14 -0400 Subject: fixed getters --- SmartDeviceLink/SDLMetadataStruct.m | 53 ++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 4 deletions(-) diff --git a/SmartDeviceLink/SDLMetadataStruct.m b/SmartDeviceLink/SDLMetadataStruct.m index abb2cc367..7830d20c0 100644 --- a/SmartDeviceLink/SDLMetadataStruct.m +++ b/SmartDeviceLink/SDLMetadataStruct.m @@ -59,9 +59,21 @@ } - (NSMutableArray *)mainField1 { - return [store objectForKey:NAMES_mainField1Type]; + NSMutableArray *array = [store objectForKey:NAMES_mainField1Type]; + if ([array isEqual:[NSNull null]]) { + return [NSMutableArray array]; + } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTextFieldType.class]) { + return array; + } else { + NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; + for (SDLTextFieldType *type in array) { + [newList addObject:type]; + } + return newList; + } } + - (void)setMainField2:(NSMutableArray *)mainField2 { if (mainField2 != nil) { [store setObject:mainField2 forKey:NAMES_mainField2Type]; @@ -71,7 +83,18 @@ } - (NSMutableArray *)mainField2 { - return [store objectForKey:NAMES_mainField2Type]; + NSMutableArray *array = [store objectForKey:NAMES_mainField2Type]; + if ([array isEqual:[NSNull null]]) { + return [NSMutableArray array]; + } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTextFieldType.class]) { + return array; + } else { + NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; + for (SDLTextFieldType *type in array) { + [newList addObject:type]; + } + return newList; + } } - (void)setMainField3:(NSMutableArray *)mainField3 { @@ -83,7 +106,18 @@ } - (NSMutableArray *)mainField3 { - return [store objectForKey:NAMES_mainField3Type]; + NSMutableArray *array = [store objectForKey:NAMES_mainField3Type]; + if ([array isEqual:[NSNull null]]) { + return [NSMutableArray array]; + } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTextFieldType.class]) { + return array; + } else { + NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; + for (SDLTextFieldType *type in array) { + [newList addObject:type]; + } + return newList; + } } - (void)setMainField4:(NSMutableArray *)mainField4 { @@ -95,7 +129,18 @@ } - (NSMutableArray *)mainField4 { - return [store objectForKey:NAMES_mainField4Type]; + NSMutableArray *array = [store objectForKey:NAMES_mainField4Type]; + if ([array isEqual:[NSNull null]]) { + return [NSMutableArray array]; + } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTextFieldType.class]) { + return array; + } else { + NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; + for (SDLTextFieldType *type in array) { + [newList addObject:type]; + } + return newList; + } } @end -- cgit v1.2.1 From 6163863eccfd21115fc9d1fb0fe9049d93916449 Mon Sep 17 00:00:00 2001 From: Brett W Date: Fri, 4 Aug 2017 08:40:47 -0400 Subject: removed extra line --- SmartDeviceLink/SDLMetadataStruct.m | 1 - 1 file changed, 1 deletion(-) diff --git a/SmartDeviceLink/SDLMetadataStruct.m b/SmartDeviceLink/SDLMetadataStruct.m index 7830d20c0..637fa0f66 100644 --- a/SmartDeviceLink/SDLMetadataStruct.m +++ b/SmartDeviceLink/SDLMetadataStruct.m @@ -73,7 +73,6 @@ } } - - (void)setMainField2:(NSMutableArray *)mainField2 { if (mainField2 != nil) { [store setObject:mainField2 forKey:NAMES_mainField2Type]; -- cgit v1.2.1 From af03d292b429b901a150386518c8edbaf4ed7dd4 Mon Sep 17 00:00:00 2001 From: Brett W Date: Wed, 16 Aug 2017 11:41:41 -0400 Subject: lots of renaming per proposal amendment --- SmartDeviceLink-iOS.xcodeproj/project.pbxproj | 48 +++---- SmartDeviceLink/SDLMetadataStruct.h | 72 ---------- SmartDeviceLink/SDLMetadataStruct.m | 145 --------------------- SmartDeviceLink/SDLMetadataTags.h | 71 ++++++++++ SmartDeviceLink/SDLMetadataTags.m | 145 +++++++++++++++++++++ SmartDeviceLink/SDLMetadataType.h | 119 +++++++++++++++++ SmartDeviceLink/SDLMetadataType.m | 140 ++++++++++++++++++++ SmartDeviceLink/SDLShow.h | 12 +- SmartDeviceLink/SDLShow.m | 34 ++--- SmartDeviceLink/SDLTextFieldType.h | 119 ----------------- SmartDeviceLink/SDLTextFieldType.m | 140 -------------------- .../RPCSpecs/EnumSpecs/SDLMetadataTypeSpec.m | 87 +++++++++++++ .../RPCSpecs/EnumSpecs/SDLTextFieldTypeSpec.m | 87 ------------- .../RPCSpecs/RequestSpecs/SDLShowSpec.m | 9 +- .../RPCSpecs/StructSpecs/SDLMetadataStructSpec.m | 56 -------- .../RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m | 56 ++++++++ 16 files changed, 669 insertions(+), 671 deletions(-) delete mode 100644 SmartDeviceLink/SDLMetadataStruct.h delete mode 100644 SmartDeviceLink/SDLMetadataStruct.m create mode 100644 SmartDeviceLink/SDLMetadataTags.h create mode 100644 SmartDeviceLink/SDLMetadataTags.m create mode 100644 SmartDeviceLink/SDLMetadataType.h create mode 100644 SmartDeviceLink/SDLMetadataType.m delete mode 100644 SmartDeviceLink/SDLTextFieldType.h delete mode 100644 SmartDeviceLink/SDLTextFieldType.m create mode 100644 SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMetadataTypeSpec.m delete mode 100644 SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldTypeSpec.m delete mode 100644 SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataStructSpec.m create mode 100644 SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj index 74d28810e..5978ccc95 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj +++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj @@ -936,6 +936,12 @@ 5DEE55C01B8509CB004F0D0F /* SDLURLRequestTaskSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DEE55BF1B8509CB004F0D0F /* SDLURLRequestTaskSpec.m */; }; 5DF2BB9D1B94E38A00CE5994 /* SDLURLSessionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DF2BB9C1B94E38A00CE5994 /* SDLURLSessionSpec.m */; }; 5DFFB9151BD7C89700DB3F04 /* SDLConnectionManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DFFB9141BD7C89700DB3F04 /* SDLConnectionManagerType.h */; }; + 8B06061F1F30BCED005ADB2F /* SDLMetadataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B06061D1F30BCED005ADB2F /* SDLMetadataType.h */; }; + 8B0606201F30BCED005ADB2F /* SDLMetadataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B06061E1F30BCED005ADB2F /* SDLMetadataType.m */; }; + 8B0606221F30C108005ADB2F /* SDLMetadataTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B0606211F30C108005ADB2F /* SDLMetadataTypeSpec.m */; }; + 8B0606291F3103CE005ADB2F /* SDLMetadataTags.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B0606271F3103CE005ADB2F /* SDLMetadataTags.h */; }; + 8B06062A1F3103CE005ADB2F /* SDLMetadataTags.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B0606281F3103CE005ADB2F /* SDLMetadataTags.m */; }; + 8B06062C1F310ED2005ADB2F /* SDLMetadataTagsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B06062B1F310ED2005ADB2F /* SDLMetadataTagsSpec.m */; }; 8BD729A61F2A2CF30029AC93 /* SDLVideoStreamingCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD729A41F2A2CF30029AC93 /* SDLVideoStreamingCodec.h */; }; 8BD729A71F2A2CF30029AC93 /* SDLVideoStreamingCodec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BD729A51F2A2CF30029AC93 /* SDLVideoStreamingCodec.m */; }; 8BD729AA1F2A41F40029AC93 /* SDLVideoStreamingProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD729A81F2A41F40029AC93 /* SDLVideoStreamingProtocol.h */; }; @@ -948,12 +954,6 @@ 8BD729B71F2A75FD0029AC93 /* SDLVideoStreamingProtocolSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BD729B61F2A75FD0029AC93 /* SDLVideoStreamingProtocolSpec.m */; }; 8BF9DE071F2BAEEE004FFCBB /* SDLVideoStreamingFormatSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BF9DE061F2BAEEE004FFCBB /* SDLVideoStreamingFormatSpec.m */; }; 8BF9DE091F2BAF0C004FFCBB /* SDLVideoStreamingCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BF9DE081F2BAF0C004FFCBB /* SDLVideoStreamingCapabilitySpec.m */; }; - 8B06061F1F30BCED005ADB2F /* SDLTextFieldType.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B06061D1F30BCED005ADB2F /* SDLTextFieldType.h */; }; - 8B0606201F30BCED005ADB2F /* SDLTextFieldType.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B06061E1F30BCED005ADB2F /* SDLTextFieldType.m */; }; - 8B0606221F30C108005ADB2F /* SDLTextFieldTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B0606211F30C108005ADB2F /* SDLTextFieldTypeSpec.m */; }; - 8B0606291F3103CE005ADB2F /* SDLMetadataStruct.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B0606271F3103CE005ADB2F /* SDLMetadataStruct.h */; }; - 8B06062A1F3103CE005ADB2F /* SDLMetadataStruct.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B0606281F3103CE005ADB2F /* SDLMetadataStruct.m */; }; - 8B06062C1F310ED2005ADB2F /* SDLMetadataStructSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B06062B1F310ED2005ADB2F /* SDLMetadataStructSpec.m */; }; 97E26DEC1E807AD70074A3C7 /* SDLMutableDataQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 97E26DEA1E807AD70074A3C7 /* SDLMutableDataQueue.h */; }; 97E26DED1E807AD70074A3C7 /* SDLMutableDataQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 97E26DEB1E807AD70074A3C7 /* SDLMutableDataQueue.m */; }; DA4353DF1D271FD10099B8C4 /* CGPointUtilSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA4353DE1D271FD10099B8C4 /* CGPointUtilSpec.m */; }; @@ -2047,6 +2047,12 @@ 5DEE55BF1B8509CB004F0D0F /* SDLURLRequestTaskSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLURLRequestTaskSpec.m; path = "UtilitiesSpecs/HTTP Connection/SDLURLRequestTaskSpec.m"; sourceTree = ""; }; 5DF2BB9C1B94E38A00CE5994 /* SDLURLSessionSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLURLSessionSpec.m; path = "UtilitiesSpecs/HTTP Connection/SDLURLSessionSpec.m"; sourceTree = ""; }; 5DFFB9141BD7C89700DB3F04 /* SDLConnectionManagerType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLConnectionManagerType.h; sourceTree = ""; }; + 8B06061D1F30BCED005ADB2F /* SDLMetadataType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMetadataType.h; sourceTree = ""; }; + 8B06061E1F30BCED005ADB2F /* SDLMetadataType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataType.m; sourceTree = ""; }; + 8B0606211F30C108005ADB2F /* SDLMetadataTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataTypeSpec.m; sourceTree = ""; }; + 8B0606271F3103CE005ADB2F /* SDLMetadataTags.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMetadataTags.h; sourceTree = ""; }; + 8B0606281F3103CE005ADB2F /* SDLMetadataTags.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataTags.m; sourceTree = ""; }; + 8B06062B1F310ED2005ADB2F /* SDLMetadataTagsSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataTagsSpec.m; sourceTree = ""; }; 8BD729A41F2A2CF30029AC93 /* SDLVideoStreamingCodec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVideoStreamingCodec.h; sourceTree = ""; }; 8BD729A51F2A2CF30029AC93 /* SDLVideoStreamingCodec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingCodec.m; sourceTree = ""; }; 8BD729A81F2A41F40029AC93 /* SDLVideoStreamingProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVideoStreamingProtocol.h; sourceTree = ""; }; @@ -2059,12 +2065,6 @@ 8BD729B61F2A75FD0029AC93 /* SDLVideoStreamingProtocolSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingProtocolSpec.m; sourceTree = ""; }; 8BF9DE061F2BAEEE004FFCBB /* SDLVideoStreamingFormatSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingFormatSpec.m; sourceTree = ""; }; 8BF9DE081F2BAF0C004FFCBB /* SDLVideoStreamingCapabilitySpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingCapabilitySpec.m; sourceTree = ""; }; - 8B06061D1F30BCED005ADB2F /* SDLTextFieldType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLTextFieldType.h; sourceTree = ""; }; - 8B06061E1F30BCED005ADB2F /* SDLTextFieldType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTextFieldType.m; sourceTree = ""; }; - 8B0606211F30C108005ADB2F /* SDLTextFieldTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTextFieldTypeSpec.m; sourceTree = ""; }; - 8B0606271F3103CE005ADB2F /* SDLMetadataStruct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMetadataStruct.h; sourceTree = ""; }; - 8B0606281F3103CE005ADB2F /* SDLMetadataStruct.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataStruct.m; sourceTree = ""; }; - 8B06062B1F310ED2005ADB2F /* SDLMetadataStructSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataStructSpec.m; sourceTree = ""; }; 97E26DEA1E807AD70074A3C7 /* SDLMutableDataQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMutableDataQueue.h; sourceTree = ""; }; 97E26DEB1E807AD70074A3C7 /* SDLMutableDataQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMutableDataQueue.m; sourceTree = ""; }; DA4353DE1D271FD10099B8C4 /* CGPointUtilSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CGPointUtilSpec.m; path = UtilitiesSpecs/Touches/CGPointUtilSpec.m; sourceTree = ""; }; @@ -2262,7 +2262,7 @@ 162E82161A9BDE8A00906325 /* SDLTBTStateSpec.m */, 162E82171A9BDE8A00906325 /* SDLTextAlignmentSpec.m */, 162E82181A9BDE8A00906325 /* SDLTextFieldNameSpec.m */, - 8B0606211F30C108005ADB2F /* SDLTextFieldTypeSpec.m */, + 8B0606211F30C108005ADB2F /* SDLMetadataTypeSpec.m */, 162E82191A9BDE8A00906325 /* SDLTimerModeSpec.m */, 162E821A1A9BDE8A00906325 /* SDLTouchTypeSpec.m */, 162E821B1A9BDE8A00906325 /* SDLTriggerSource.m */, @@ -2484,7 +2484,7 @@ 8BF9DE061F2BAEEE004FFCBB /* SDLVideoStreamingFormatSpec.m */, 8BF9DE081F2BAF0C004FFCBB /* SDLVideoStreamingCapabilitySpec.m */, 162E82B61A9BDE8A00906325 /* SDLVrHelpItemSpec.m */, - 8B06062B1F310ED2005ADB2F /* SDLMetadataStructSpec.m */, + 8B06062B1F310ED2005ADB2F /* SDLMetadataTagsSpec.m */, ); path = StructSpecs; sourceTree = ""; @@ -3073,8 +3073,8 @@ DA9F7E981DCC052C00ACAE48 /* SDLLocationDetails.m */, 5D61FB0B1A84238A00846EE7 /* SDLMenuParams.h */, 5D61FB0C1A84238A00846EE7 /* SDLMenuParams.m */, - 8B0606271F3103CE005ADB2F /* SDLMetadataStruct.h */, - 8B0606281F3103CE005ADB2F /* SDLMetadataStruct.m */, + 8B0606271F3103CE005ADB2F /* SDLMetadataTags.h */, + 8B0606281F3103CE005ADB2F /* SDLMetadataTags.m */, 5D61FB0D1A84238A00846EE7 /* SDLMyKey.h */, 5D61FB0E1A84238A00846EE7 /* SDLMyKey.m */, 5D00AC751F15283E004000D9 /* SDLNavigationCapability.h */, @@ -3247,8 +3247,8 @@ 5D61FBDB1A84238C00846EE7 /* SDLTextAlignment.m */, 5D61FBDE1A84238C00846EE7 /* SDLTextFieldName.h */, 5D61FBDF1A84238C00846EE7 /* SDLTextFieldName.m */, - 8B06061D1F30BCED005ADB2F /* SDLTextFieldType.h */, - 8B06061E1F30BCED005ADB2F /* SDLTextFieldType.m */, + 8B06061D1F30BCED005ADB2F /* SDLMetadataType.h */, + 8B06061E1F30BCED005ADB2F /* SDLMetadataType.m */, 5D61FBE01A84238C00846EE7 /* SDLTimerMode.h */, 5D61FBE11A84238C00846EE7 /* SDLTimerMode.m */, 5D61FBEA1A84238C00846EE7 /* SDLTouchType.h */, @@ -4349,7 +4349,7 @@ 5D00AC6F1F1511B9004000D9 /* SDLGetSystemCapability.h in Headers */, 5D61FD891A84238C00846EE7 /* SDLSetGlobalPropertiesResponse.h in Headers */, 5D61FD8D1A84238C00846EE7 /* SDLSetMediaClockTimerResponse.h in Headers */, - 8B0606291F3103CE005ADB2F /* SDLMetadataStruct.h in Headers */, + 8B0606291F3103CE005ADB2F /* SDLMetadataTags.h in Headers */, 5D61FD3B1A84238C00846EE7 /* SDLPresetBankCapabilities.h in Headers */, 5D8204311BD001C700D0A41B /* SDLArtwork.h in Headers */, 5D53C46D1B7A99B9003526EA /* SDLStreamingMediaManager.h in Headers */, @@ -4499,7 +4499,7 @@ 5D16545A1D3E7A1600554D93 /* SDLLifecycleManager.h in Headers */, 5D61FCBD1A84238C00846EE7 /* SDLHeadLampStatus.h in Headers */, 5D61FDC31A84238C00846EE7 /* SDLTBTState.h in Headers */, - 8B06061F1F30BCED005ADB2F /* SDLTextFieldType.h in Headers */, + 8B06061F1F30BCED005ADB2F /* SDLMetadataType.h in Headers */, 5D61FD951A84238C00846EE7 /* SDLShowResponse.h in Headers */, 5D61FCA31A84238C00846EE7 /* SDLEndAudioPassThru.h in Headers */, 5D61FCB11A84238C00846EE7 /* SDLGetDTCs.h in Headers */, @@ -4846,7 +4846,7 @@ 5D61FDB21A84238C00846EE7 /* SDLSubscribeVehicleData.m in Sources */, 5D61FC991A84238C00846EE7 /* SDLECallInfo.m in Sources */, 5D61FD601A84238C00846EE7 /* SDLRegisterAppInterfaceResponse.m in Sources */, - 8B0606201F30BCED005ADB2F /* SDLTextFieldType.m in Sources */, + 8B0606201F30BCED005ADB2F /* SDLMetadataType.m in Sources */, 5DB996581F268ECB002D8795 /* SDLControlFramePayloadAudioStartServiceAck.m in Sources */, DAC572621D10C5020004288B /* SDLPinchGesture.m in Sources */, 5D61FCF51A84238C00846EE7 /* SDLMaintenanceModeStatus.m in Sources */, @@ -5016,7 +5016,7 @@ 5D1665C51CF8CA2700CC4CA1 /* SDLListFilesOperation.m in Sources */, 5D61FE021A84238C00846EE7 /* SDLVehicleDataNotificationStatus.m in Sources */, 5D61FDD81A84238C00846EE7 /* SDLTouchType.m in Sources */, - 8B06062A1F3103CE005ADB2F /* SDLMetadataStruct.m in Sources */, + 8B06062A1F3103CE005ADB2F /* SDLMetadataTags.m in Sources */, 5D61FDD61A84238C00846EE7 /* SDLTouchEventCapabilities.m in Sources */, 5DA49CE61F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.m in Sources */, 5DA102A51D4122C700C15826 /* NSMutableDictionary+SafeRemove.m in Sources */, @@ -5124,7 +5124,7 @@ 162E83331A9BDE8B00906325 /* SDLPerformInteractionSpec.m in Sources */, 5D0A9F951F15585B00CC80DD /* SDLPhoneCapabilitySpec.m in Sources */, 1680B11A1A9CD7AD00DBD79E /* SDLAbstractProtocolSpec.m in Sources */, - 8B06062C1F310ED2005ADB2F /* SDLMetadataStructSpec.m in Sources */, + 8B06062C1F310ED2005ADB2F /* SDLMetadataTagsSpec.m in Sources */, 1680B1151A9CD7AD00DBD79E /* SDLV2ProtocolHeaderSpec.m in Sources */, 162E83101A9BDE8B00906325 /* SDLOnAudioPassThruSpec.m in Sources */, 162E82D91A9BDE8A00906325 /* SDLDisplayTypeSpec.m in Sources */, @@ -5134,7 +5134,7 @@ DA9F7EB41DCC086400ACAE48 /* SDLDateTimeSpec.m in Sources */, 162E830E1A9BDE8B00906325 /* SDLRPCRequestFactorySpec.m in Sources */, 162E82E41A9BDE8B00906325 /* SDLImageFieldNameSpec.m in Sources */, - 8B0606221F30C108005ADB2F /* SDLTextFieldTypeSpec.m in Sources */, + 8B0606221F30C108005ADB2F /* SDLMetadataTypeSpec.m in Sources */, 162E83991A9BDE8B00906325 /* SDLEnumSpec.m in Sources */, 162E82ED1A9BDE8B00906325 /* SDLMaintenanceModeStatusSpec.m in Sources */, 5DB92D2D1AC4A34F00C15BB0 /* SDLPrioritizedObjectCollectionSpec.m in Sources */, diff --git a/SmartDeviceLink/SDLMetadataStruct.h b/SmartDeviceLink/SDLMetadataStruct.h deleted file mode 100644 index 92585fdf7..000000000 --- a/SmartDeviceLink/SDLMetadataStruct.h +++ /dev/null @@ -1,72 +0,0 @@ -// -// SDLMetadataStruct.h -// SmartDeviceLink-iOS -// -// Created by Brett McIsaac on 8/1/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLRPCMessage.h" - -@class SDLTextFieldType; - -// TODO: CHANGE FILE NAME -@interface SDLMetadataStruct : SDLRPCStruct { -} - -/** - * @abstract Constructs a newly allocated SDLTextField object - */ -- (instancetype)init; - -/** - * @abstract Constructs a newly allocated SDLTextField object indicated by the dictionary parameter - * - * @param dict The dictionary to use to construct the object - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -/** - * @abstract Constructs a newly allocated SDLTextField object with NSArrays - */ -- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2; - -- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 mainField3:(NSArray *)mainField3 mainField4:(NSArray *)mainField4; - -/** - * @abstract The type of data contained in the "mainField1" text field, Optional. - * - * minsize= 0 - * - * maxsize= 5 - */ -@property (strong, nonatomic) NSMutableArray *mainField1; - -/** - * @abstract The type of data contained in the "mainField2" text field, Optional. - * - * minsize= 0 - * - * maxsize= 5 - */ -@property (strong, nonatomic) NSMutableArray *mainField2; - -/** - * @abstract The type of data contained in the "mainField3" text field, Optional. - * - * minsize= 0 - * - * maxsize= 5 - */ -@property (strong, nonatomic) NSMutableArray *mainField3; - -/** - * @abstract The type of data contained in the "mainField4" text field, Optional. - * - * minsize= 0 - * - * maxsize= 5 - */ -@property (strong, nonatomic) NSMutableArray *mainField4; - -@end diff --git a/SmartDeviceLink/SDLMetadataStruct.m b/SmartDeviceLink/SDLMetadataStruct.m deleted file mode 100644 index 637fa0f66..000000000 --- a/SmartDeviceLink/SDLMetadataStruct.m +++ /dev/null @@ -1,145 +0,0 @@ -// -// SDLMetadataStruct.m -// SmartDeviceLink-iOS -// -// Created by Brett McIsaac on 8/1/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLMetadataStruct.h" -#import "SDLNames.h" -#import "SDLTextFieldType.h" - -@implementation SDLMetadataStruct - -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 { - self = [self init]; - if (!self) { - return self; - } - - self.mainField1 = [mainField1 mutableCopy]; - self.mainField2 = [mainField2 mutableCopy]; - - return self; -} - -- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 mainField3:(NSArray *)mainField3 mainField4:(NSArray *)mainField4 { - self = [self init]; - if (!self) { - return self; - } - - self.mainField1 = [mainField1 mutableCopy]; - self.mainField2 = [mainField2 mutableCopy]; - self.mainField3 = [mainField3 mutableCopy]; - self.mainField4 = [mainField4 mutableCopy]; - - return self; -} - -- (void)setMainField1:(NSMutableArray *)mainField1 { - if (mainField1 != nil) { - [store setObject:mainField1 forKey:NAMES_mainField1Type]; - } else { - [store removeObjectForKey:NAMES_mainField1Type]; - } -} - -- (NSMutableArray *)mainField1 { - NSMutableArray *array = [store objectForKey:NAMES_mainField1Type]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTextFieldType.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (SDLTextFieldType *type in array) { - [newList addObject:type]; - } - return newList; - } -} - -- (void)setMainField2:(NSMutableArray *)mainField2 { - if (mainField2 != nil) { - [store setObject:mainField2 forKey:NAMES_mainField2Type]; - } else { - [store removeObjectForKey:NAMES_mainField2Type]; - } -} - -- (NSMutableArray *)mainField2 { - NSMutableArray *array = [store objectForKey:NAMES_mainField2Type]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTextFieldType.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (SDLTextFieldType *type in array) { - [newList addObject:type]; - } - return newList; - } -} - -- (void)setMainField3:(NSMutableArray *)mainField3 { - if (mainField3 != nil) { - [store setObject:mainField3 forKey:NAMES_mainField3Type]; - } else { - [store removeObjectForKey:NAMES_mainField3Type]; - } -} - -- (NSMutableArray *)mainField3 { - NSMutableArray *array = [store objectForKey:NAMES_mainField3Type]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTextFieldType.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (SDLTextFieldType *type in array) { - [newList addObject:type]; - } - return newList; - } -} - -- (void)setMainField4:(NSMutableArray *)mainField4 { - if (mainField4 != nil) { - [store setObject:mainField4 forKey:NAMES_mainField4Type]; - } else { - [store removeObjectForKey:NAMES_mainField4Type]; - } -} - -- (NSMutableArray *)mainField4 { - NSMutableArray *array = [store objectForKey:NAMES_mainField4Type]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTextFieldType.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (SDLTextFieldType *type in array) { - [newList addObject:type]; - } - return newList; - } -} - -@end diff --git a/SmartDeviceLink/SDLMetadataTags.h b/SmartDeviceLink/SDLMetadataTags.h new file mode 100644 index 000000000..dfa3c2812 --- /dev/null +++ b/SmartDeviceLink/SDLMetadataTags.h @@ -0,0 +1,71 @@ +// +// SDLMetadataTags.h +// SmartDeviceLink-iOS +// +// Created by Brett McIsaac on 8/1/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLRPCMessage.h" + +@class SDLMetadataType; + +@interface SDLMetadataTags : SDLRPCStruct { +} + +/** + * @abstract Constructs a newly allocated SDLMetadataTags object + */ +- (instancetype)init; + +/** + * @abstract Constructs a newly allocated SDLMetadataTags object indicated by the dictionary parameter + * + * @param dict The dictionary to use to construct the object + */ +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; + +/** + * @abstract Constructs a newly allocated SDLMetadataTags object with NSArrays + */ +- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2; + +- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 mainField3:(NSArray *)mainField3 mainField4:(NSArray *)mainField4; + +/** + * @abstract The type of data contained in the "mainField1" text field, Optional. + * + * minsize= 0 + * + * maxsize= 5 + */ +@property (strong, nonatomic) NSMutableArray *mainField1; + +/** + * @abstract The type of data contained in the "mainField2" text field, Optional. + * + * minsize= 0 + * + * maxsize= 5 + */ +@property (strong, nonatomic) NSMutableArray *mainField2; + +/** + * @abstract The type of data contained in the "mainField3" text field, Optional. + * + * minsize= 0 + * + * maxsize= 5 + */ +@property (strong, nonatomic) NSMutableArray *mainField3; + +/** + * @abstract The type of data contained in the "mainField4" text field, Optional. + * + * minsize= 0 + * + * maxsize= 5 + */ +@property (strong, nonatomic) NSMutableArray *mainField4; + +@end diff --git a/SmartDeviceLink/SDLMetadataTags.m b/SmartDeviceLink/SDLMetadataTags.m new file mode 100644 index 000000000..9a071ed0d --- /dev/null +++ b/SmartDeviceLink/SDLMetadataTags.m @@ -0,0 +1,145 @@ +// +// SDLMetadataTags.m +// SmartDeviceLink-iOS +// +// Created by Brett McIsaac on 8/1/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLMetadataTags.h" +#import "SDLMetadataType.h" +#import "SDLNames.h" + +@implementation SDLMetadataTags + +- (instancetype)init { + if (self = [super init]) { + } + return self; +} + +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { + if (self = [super initWithDictionary:dict]) { + } + return self; +} + +- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 { + self = [self init]; + if (!self) { + return self; + } + + self.mainField1 = [mainField1 mutableCopy]; + self.mainField2 = [mainField2 mutableCopy]; + + return self; +} + +- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 mainField3:(NSArray *)mainField3 mainField4:(NSArray *)mainField4 { + self = [self init]; + if (!self) { + return self; + } + + self.mainField1 = [mainField1 mutableCopy]; + self.mainField2 = [mainField2 mutableCopy]; + self.mainField3 = [mainField3 mutableCopy]; + self.mainField4 = [mainField4 mutableCopy]; + + return self; +} + +- (void)setMainField1:(NSMutableArray *)mainField1 { + if (mainField1 != nil) { + [store setObject:mainField1 forKey:NAMES_mainField1Type]; + } else { + [store removeObjectForKey:NAMES_mainField1Type]; + } +} + +- (NSMutableArray *)mainField1 { + NSMutableArray *array = [store objectForKey:NAMES_mainField1Type]; + if ([array isEqual:[NSNull null]]) { + return [NSMutableArray array]; + } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLMetadataType.class]) { + return array; + } else { + NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; + for (SDLMetadataType *type in array) { + [newList addObject:type]; + } + return newList; + } +} + +- (void)setMainField2:(NSMutableArray *)mainField2 { + if (mainField2 != nil) { + [store setObject:mainField2 forKey:NAMES_mainField2Type]; + } else { + [store removeObjectForKey:NAMES_mainField2Type]; + } +} + +- (NSMutableArray *)mainField2 { + NSMutableArray *array = [store objectForKey:NAMES_mainField2Type]; + if ([array isEqual:[NSNull null]]) { + return [NSMutableArray array]; + } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLMetadataType.class]) { + return array; + } else { + NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; + for (SDLMetadataType *type in array) { + [newList addObject:type]; + } + return newList; + } +} + +- (void)setMainField3:(NSMutableArray *)mainField3 { + if (mainField3 != nil) { + [store setObject:mainField3 forKey:NAMES_mainField3Type]; + } else { + [store removeObjectForKey:NAMES_mainField3Type]; + } +} + +- (NSMutableArray *)mainField3 { + NSMutableArray *array = [store objectForKey:NAMES_mainField3Type]; + if ([array isEqual:[NSNull null]]) { + return [NSMutableArray array]; + } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLMetadataType.class]) { + return array; + } else { + NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; + for (SDLMetadataType *type in array) { + [newList addObject:type]; + } + return newList; + } +} + +- (void)setMainField4:(NSMutableArray *)mainField4 { + if (mainField4 != nil) { + [store setObject:mainField4 forKey:NAMES_mainField4Type]; + } else { + [store removeObjectForKey:NAMES_mainField4Type]; + } +} + +- (NSMutableArray *)mainField4 { + NSMutableArray *array = [store objectForKey:NAMES_mainField4Type]; + if ([array isEqual:[NSNull null]]) { + return [NSMutableArray array]; + } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLMetadataType.class]) { + return array; + } else { + NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; + for (SDLMetadataType *type in array) { + [newList addObject:type]; + } + return newList; + } +} + +@end diff --git a/SmartDeviceLink/SDLMetadataType.h b/SmartDeviceLink/SDLMetadataType.h new file mode 100644 index 000000000..96e65552a --- /dev/null +++ b/SmartDeviceLink/SDLMetadataType.h @@ -0,0 +1,119 @@ +// +// SDLTextFieldType.h +// SmartDeviceLink-iOS +// +// Created by Brett McIsaac on 8/1/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * The list of possible metadata for text fields + * + * @since SDL 4.7.0 + */ +@interface SDLMetadataType : SDLEnum { +} + +/** + * Convert String to SDLTextAlignment + * + * @param value The value of the string to get an object for + * + * @return SDLTextAlignment + */ ++ (SDLMetadataType *)valueOf:(NSString *)value; + +/** + * @abstract Store the enumeration of all possible SDLTextFieldType + * + * @return an array that store all possible SDLTextFieldType + */ ++ (NSArray *)values; + +/** + * @abstract The data in this field contains the title of the currently playing audio track. + * + * @return A SDLTextFieldType object with value of *MEDIA_TITLE* + */ ++ (SDLMetadataType *)MEDIA_TITLE; + +/** + * @abstract The data in this field contains the artist or creator of the currently playing audio track. + * + * @return A SDLTextFieldType object with value of *MEDIA_ARTIST* + */ ++ (SDLMetadataType *)MEDIA_ARTIST; + +/** + * @abstract The data in this field contains the album title of the currently playing audio track. + * + * @return A SDLTextFieldType object with value of *MEDIA_ALBUM* + */ ++ (SDLMetadataType *)MEDIA_ALBUM; + +/** + * @abstract The data in this field contains the creation year of the currently playing audio track. + * + * @return A SDLTextFieldType object with value of *MEDIA_YEAR* + */ ++ (SDLMetadataType *)MEDIA_YEAR; + +/** + * @abstract The data in this field contains the genre of the currently playing audio track. + * + * @return A SDLTextFieldType object with value of *MEDIA_GENRE* + */ ++ (SDLMetadataType *)MEDIA_GENRE; + +/** + * @abstract The data in this field contains the name of the current source for the media. + * + * @return A SDLTextFieldType object with value of *MEDIA_STATION* + */ ++ (SDLMetadataType *)MEDIA_STATION; + +/** + * @abstract The data in this field is a rating. + * + * @return A SDLTextFieldType object with value of *RATING* + */ ++ (SDLMetadataType *)RATING; + +/** + * @abstract The data in this field is the current temperature. + * + * @return A SDLTextFieldType object with value of *CURRENT_TEMPERATURE* + */ ++ (SDLMetadataType *)CURRENT_TEMPERATURE; + +/** + * @abstract The data in this field is the maximum temperature for the day. + * + * @return A SDLTextFieldType object with value of *MAXIMUM_TEMPERATURE* + */ ++ (SDLMetadataType *)MAXIMUM_TEMPERATURE; + +/** + * @abstract The data in this field is the minimum temperature for the day. + * + * @return A SDLTextFieldType object with value of *MINIMUM_TEMPERATURE* + */ ++ (SDLMetadataType *)MINIMUM_TEMPERATURE; + +/** + * @abstract The data in this field describes the current weather (ex. cloudy, clear, etc.). + * + * @return A SDLTextFieldType object with value of *WEATHER_TERM* + */ ++ (SDLMetadataType *)WEATHER_TERM; + +/** + * @abstract The data in this field describes the current humidity value. + * + * @return A SDLTextFieldType object with value of *HUMIDITY* + */ ++ (SDLMetadataType *)HUMIDITY; + +@end diff --git a/SmartDeviceLink/SDLMetadataType.m b/SmartDeviceLink/SDLMetadataType.m new file mode 100644 index 000000000..8b5e448d8 --- /dev/null +++ b/SmartDeviceLink/SDLMetadataType.m @@ -0,0 +1,140 @@ +// +// SDLMetadataType.m +// SmartDeviceLink-iOS +// +// Created by Brett McIsaac on 8/1/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLMetadataType.h" + +SDLMetadataType *SDLMetadataType_MEDIA_TITLE = nil; +SDLMetadataType *SDLMetadataType_MEDIA_ARTIST = nil; +SDLMetadataType *SDLMetadataType_MEDIA_ALBUM = nil; +SDLMetadataType *SDLMetadataType_MEDIA_YEAR = nil; +SDLMetadataType *SDLMetadataType_MEDIA_GENRE = nil; +SDLMetadataType *SDLMetadataType_MEDIA_STATION = nil; +SDLMetadataType *SDLMetadataType_RATING = nil; +SDLMetadataType *SDLMetadataType_CURRENT_TEMPERATURE = nil; +SDLMetadataType *SDLMetadataType_MAXIMUM_TEMPERATURE = nil; +SDLMetadataType *SDLMetadataType_MINIMUM_TEMPERATURE = nil; +SDLMetadataType *SDLMetadataType_WEATHER_TERM = nil; +SDLMetadataType *SDLMetadataType_HUMIDITY = nil; + +NSArray *SDLMetadataType_values = nil; + +@implementation SDLMetadataType + ++ (SDLMetadataType *)valueOf:(NSString *)value { + for (SDLMetadataType *item in SDLMetadataType.values) { + if ([item.value isEqualToString:value]) { + return item; + } + } + return nil; +} + ++ (NSArray *)values { + if (SDLMetadataType_values == nil) { + SDLMetadataType_values = @[ + SDLMetadataType.MEDIA_TITLE, + SDLMetadataType.MEDIA_ARTIST, + SDLMetadataType.MEDIA_ALBUM, + SDLMetadataType.MEDIA_YEAR, + SDLMetadataType.MEDIA_GENRE, + SDLMetadataType.MEDIA_STATION, + SDLMetadataType.RATING, + SDLMetadataType.CURRENT_TEMPERATURE, + SDLMetadataType.MAXIMUM_TEMPERATURE, + SDLMetadataType.MINIMUM_TEMPERATURE, + SDLMetadataType.WEATHER_TERM, + SDLMetadataType.HUMIDITY]; + } + return SDLMetadataType_values; +} + ++ (SDLMetadataType *)MEDIA_TITLE { + if (SDLMetadataType_MEDIA_TITLE== nil) { + SDLMetadataType_MEDIA_TITLE = [[SDLMetadataType alloc] initWithValue:@"MEDIA_TITLE"]; + } + return SDLMetadataType_MEDIA_TITLE; +} + ++ (SDLMetadataType *)MEDIA_ARTIST { + if (SDLMetadataType_MEDIA_ARTIST== nil) { + SDLMetadataType_MEDIA_ARTIST = [[SDLMetadataType alloc] initWithValue:@"MEDIA_ARTIST"]; + } + return SDLMetadataType_MEDIA_ARTIST; +} + ++ (SDLMetadataType *)MEDIA_ALBUM { + if (SDLMetadataType_MEDIA_ALBUM== nil) { + SDLMetadataType_MEDIA_ALBUM = [[SDLMetadataType alloc] initWithValue:@"MEDIA_ALBUM"]; + } + return SDLMetadataType_MEDIA_ALBUM; +} + ++ (SDLMetadataType *)MEDIA_YEAR { + if (SDLMetadataType_MEDIA_YEAR== nil) { + SDLMetadataType_MEDIA_YEAR = [[SDLMetadataType alloc] initWithValue:@"MEDIA_YEAR"]; + } + return SDLMetadataType_MEDIA_YEAR; +} + ++ (SDLMetadataType *)MEDIA_GENRE { + if (SDLMetadataType_MEDIA_GENRE== nil) { + SDLMetadataType_MEDIA_GENRE = [[SDLMetadataType alloc] initWithValue:@"MEDIA_GENRE"]; + } + return SDLMetadataType_MEDIA_GENRE; +} + ++ (SDLMetadataType *)MEDIA_STATION { + if (SDLMetadataType_MEDIA_STATION== nil) { + SDLMetadataType_MEDIA_STATION = [[SDLMetadataType alloc] initWithValue:@"MEDIA_STATION"]; + } + return SDLMetadataType_MEDIA_STATION; +} + ++ (SDLMetadataType *)RATING { + if (SDLMetadataType_RATING== nil) { + SDLMetadataType_RATING = [[SDLMetadataType alloc] initWithValue:@"RATING"]; + } + return SDLMetadataType_RATING; +} + ++ (SDLMetadataType *)CURRENT_TEMPERATURE { + if (SDLMetadataType_CURRENT_TEMPERATURE== nil) { + SDLMetadataType_CURRENT_TEMPERATURE = [[SDLMetadataType alloc] initWithValue:@"CURRENT_TEMPERATURE"]; + } + return SDLMetadataType_CURRENT_TEMPERATURE; +} + ++ (SDLMetadataType *)MAXIMUM_TEMPERATURE { + if (SDLMetadataType_MAXIMUM_TEMPERATURE== nil) { + SDLMetadataType_MAXIMUM_TEMPERATURE = [[SDLMetadataType alloc] initWithValue:@"MAXIMUM_TEMPERATURE"]; + } + return SDLMetadataType_MAXIMUM_TEMPERATURE; +} + ++ (SDLMetadataType *)MINIMUM_TEMPERATURE { + if (SDLMetadataType_MINIMUM_TEMPERATURE== nil) { + SDLMetadataType_MINIMUM_TEMPERATURE = [[SDLMetadataType alloc] initWithValue:@"MINIMUM_TEMPERATURE"]; + } + return SDLMetadataType_MINIMUM_TEMPERATURE; +} + ++ (SDLMetadataType *)WEATHER_TERM { + if (SDLMetadataType_WEATHER_TERM== nil) { + SDLMetadataType_WEATHER_TERM = [[SDLMetadataType alloc] initWithValue:@"WEATHER_TERM"]; + } + return SDLMetadataType_WEATHER_TERM; +} + ++ (SDLMetadataType *)HUMIDITY { + if (SDLMetadataType_HUMIDITY== nil) { + SDLMetadataType_HUMIDITY = [[SDLMetadataType alloc] initWithValue:@"HUMIDITY"]; + } + return SDLMetadataType_HUMIDITY; +} + +@end diff --git a/SmartDeviceLink/SDLShow.h b/SmartDeviceLink/SDLShow.h index cf33fd64f..43932b722 100644 --- a/SmartDeviceLink/SDLShow.h +++ b/SmartDeviceLink/SDLShow.h @@ -5,9 +5,9 @@ @class SDLImage; @class SDLSoftButton; -@class SDLMetadataStruct; +@class SDLMetadataTags; @class SDLTextAlignment; -@class SDLTextFieldType; +@class SDLMetadataType; /** @@ -47,17 +47,17 @@ - (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 alignment:(SDLTextAlignment *)alignment; -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLTextFieldType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLTextFieldType *)mainField2Type alignment:(SDLTextAlignment *)alignment; +- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLMetadataType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLMetadataType *)mainField2Type alignment:(SDLTextAlignment *)alignment; - (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment; -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLTextFieldType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLTextFieldType *)mainField2Type mainField3:(NSString *)mainField3 mainField3Type:(SDLTextFieldType *)mainField3Type mainField4:(NSString *)mainField4 mainField4Type:(SDLTextFieldType *)mainField4Type alignment:(SDLTextAlignment *)alignment; +- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLMetadataType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLMetadataType *)mainField2Type mainField3:(NSString *)mainField3 mainField3Type:(SDLMetadataType *)mainField3Type mainField4:(NSString *)mainField4 mainField4Type:(SDLMetadataType *)mainField4Type alignment:(SDLTextAlignment *)alignment; - (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack; - (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets __deprecated_msg(("Use initWithMainField1:(NSString *)mainField1 (NSString *)mainField2 (NSString *)mainField3 (NSString *)mainField4 (SDLTextAlignment *)alignment (NSString *)statusBar (NSString *)mediaClock (NSString *)mediaTrack (SDLImage *)graphic (NSArray *)softButtons (NSArray *)customPresets (SDLMetadataStruct *)metadata instead")); -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets textFieldMetadata:(SDLMetadataStruct *)metadata; +- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets textFieldMetadata:(SDLMetadataTags *)metadata; /** @@ -259,6 +259,6 @@ * If any text field contains no tags or the none tag, the metadata tag for that textfield should be removed. * @since SmartDeviceLink 2.0 */ -@property (strong) SDLMetadataStruct *textFieldMetadata; +@property (strong) SDLMetadataTags *textFieldMetadata; @end diff --git a/SmartDeviceLink/SDLShow.m b/SmartDeviceLink/SDLShow.m index 48dfb0ca5..b687271b0 100644 --- a/SmartDeviceLink/SDLShow.m +++ b/SmartDeviceLink/SDLShow.m @@ -5,7 +5,7 @@ #import "SDLShow.h" #import "SDLImage.h" -#import "SDLMetadataStruct.h" +#import "SDLMetadataTags.h" #import "SDLNames.h" #import "SDLSoftButton.h" #import "SDLTextAlignment.h" @@ -29,15 +29,15 @@ return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:nil mainField4:nil alignment:alignment]; } -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLTextFieldType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLTextFieldType *)mainField2Type alignment:(SDLTextAlignment *)alignment { +- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLMetadataType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLMetadataType *)mainField2Type alignment:(SDLTextAlignment *)alignment { self = [self init]; if (!self) { return nil; } - NSArray *field1Array = @[mainField1Type]; - NSArray *field2Array = @[mainField2Type]; - SDLMetadataStruct* fieldsStruct = [[SDLMetadataStruct alloc] initWithTextFieldTypes:field1Array mainField2:field2Array]; + NSArray *field1Array = @[mainField1Type]; + NSArray *field2Array = @[mainField2Type]; + SDLMetadataTags* fieldsStruct = [[SDLMetadataTags alloc] initWithTextFieldTypes:field1Array mainField2:field2Array]; self.mainField1 = mainField1; self.mainField2 = mainField2; @@ -55,17 +55,17 @@ return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:mainField3 mainField4:mainField4 alignment:alignment statusBar:nil mediaClock:nil mediaTrack:nil graphic:nil softButtons:nil customPresets:nil textFieldMetadata:nil]; } -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLTextFieldType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLTextFieldType *)mainField2Type mainField3:(NSString *)mainField3 mainField3Type:(SDLTextFieldType *)mainField3Type mainField4:(NSString *)mainField4 mainField4Type:(SDLTextFieldType *)mainField4Type alignment:(SDLTextAlignment *)alignment{ +- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLMetadataType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLMetadataType *)mainField2Type mainField3:(NSString *)mainField3 mainField3Type:(SDLMetadataType *)mainField3Type mainField4:(NSString *)mainField4 mainField4Type:(SDLMetadataType *)mainField4Type alignment:(SDLTextAlignment *)alignment{ self = [self init]; if (!self) { return nil; } - NSArray *field1Array = @[mainField1Type]; - NSArray *field2Array = @[mainField2Type]; - NSArray *field3Array = @[mainField3Type]; - NSArray *field4Array = @[mainField4Type]; - SDLMetadataStruct* fieldsStruct = [[SDLMetadataStruct alloc] initWithTextFieldTypes:field1Array mainField2:field2Array mainField3:field3Array mainField4:field4Array]; + NSArray *field1Array = @[mainField1Type]; + NSArray *field2Array = @[mainField2Type]; + NSArray *field3Array = @[mainField3Type]; + NSArray *field4Array = @[mainField4Type]; + SDLMetadataTags* fieldsStruct = [[SDLMetadataTags alloc] initWithTextFieldTypes:field1Array mainField2:field2Array mainField3:field3Array mainField4:field4Array]; self.mainField1 = mainField1; self.mainField2 = mainField2; @@ -98,7 +98,7 @@ return self; } -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets textFieldMetadata:(SDLMetadataStruct *)metadata { +- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets textFieldMetadata:(SDLMetadataTags *)metadata { self = [self init]; if (!self) { return nil; @@ -291,7 +291,7 @@ return [parameters objectForKey:NAMES_customPresets]; } -- (void)setTextFieldMetadata:(SDLMetadataStruct *)textFieldMetadata { +- (void)setTextFieldMetadata:(SDLMetadataTags *)textFieldMetadata { if (textFieldMetadata != nil) { [parameters setObject:textFieldMetadata forKey:NAMES_textFieldMetadata]; } else { @@ -299,12 +299,12 @@ } } -- (SDLMetadataStruct *)textFieldMetadata { +- (SDLMetadataTags *)textFieldMetadata { NSObject *obj = [parameters objectForKey:NAMES_textFieldMetadata]; - if (obj == nil || [obj isKindOfClass:SDLMetadataStruct.class]) { - return (SDLMetadataStruct *)obj; + if (obj == nil || [obj isKindOfClass:SDLMetadataTags.class]) { + return (SDLMetadataTags *)obj; } else { - return [[SDLMetadataStruct alloc] initWithDictionary:(NSMutableDictionary *)obj]; + return [[SDLMetadataTags alloc] initWithDictionary:(NSMutableDictionary *)obj]; } } diff --git a/SmartDeviceLink/SDLTextFieldType.h b/SmartDeviceLink/SDLTextFieldType.h deleted file mode 100644 index f0210e5ff..000000000 --- a/SmartDeviceLink/SDLTextFieldType.h +++ /dev/null @@ -1,119 +0,0 @@ -// -// SDLTextFieldType.h -// SmartDeviceLink-iOS -// -// Created by Brett McIsaac on 8/1/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * The list of possible metadata for text fields - * - * @since SDL 4.7.0 - */ -@interface SDLTextFieldType : SDLEnum { -} - -/** - * Convert String to SDLTextAlignment - * - * @param value The value of the string to get an object for - * - * @return SDLTextAlignment - */ -+ (SDLTextFieldType *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLTextFieldType - * - * @return an array that store all possible SDLTextFieldType - */ -+ (NSArray *)values; - -/** - * @abstract The data in this field contains the title of the currently playing audio track. - * - * @return A SDLTextFieldType object with value of *MEDIA_TITLE* - */ -+ (SDLTextFieldType *)MEDIA_TITLE; - -/** - * @abstract The data in this field contains the artist or creator of the currently playing audio track. - * - * @return A SDLTextFieldType object with value of *MEDIA_ARTIST* - */ -+ (SDLTextFieldType *)MEDIA_ARTIST; - -/** - * @abstract The data in this field contains the album title of the currently playing audio track. - * - * @return A SDLTextFieldType object with value of *MEDIA_ALBUM* - */ -+ (SDLTextFieldType *)MEDIA_ALBUM; - -/** - * @abstract The data in this field contains the creation year of the currently playing audio track. - * - * @return A SDLTextFieldType object with value of *MEDIA_YEAR* - */ -+ (SDLTextFieldType *)MEDIA_YEAR; - -/** - * @abstract The data in this field contains the genre of the currently playing audio track. - * - * @return A SDLTextFieldType object with value of *MEDIA_GENRE* - */ -+ (SDLTextFieldType *)MEDIA_GENRE; - -/** - * @abstract The data in this field contains the name of the current source for the media. - * - * @return A SDLTextFieldType object with value of *MEDIA_STATION* - */ -+ (SDLTextFieldType *)MEDIA_STATION; - -/** - * @abstract The data in this field is a rating. - * - * @return A SDLTextFieldType object with value of *RATING* - */ -+ (SDLTextFieldType *)RATING; - -/** - * @abstract The data in this field is the current temperature. - * - * @return A SDLTextFieldType object with value of *CURRENT_TEMPERATURE* - */ -+ (SDLTextFieldType *)CURRENT_TEMPERATURE; - -/** - * @abstract The data in this field is the maximum temperature for the day. - * - * @return A SDLTextFieldType object with value of *MAXIMUM_TEMPERATURE* - */ -+ (SDLTextFieldType *)MAXIMUM_TEMPERATURE; - -/** - * @abstract The data in this field is the minimum temperature for the day. - * - * @return A SDLTextFieldType object with value of *MINIMUM_TEMPERATURE* - */ -+ (SDLTextFieldType *)MINIMUM_TEMPERATURE; - -/** - * @abstract The data in this field describes the current weather (ex. cloudy, clear, etc.). - * - * @return A SDLTextFieldType object with value of *WEATHER_TERM* - */ -+ (SDLTextFieldType *)WEATHER_TERM; - -/** - * @abstract The data in this field describes the current humidity value. - * - * @return A SDLTextFieldType object with value of *HUMIDITY* - */ -+ (SDLTextFieldType *)HUMIDITY; - -@end diff --git a/SmartDeviceLink/SDLTextFieldType.m b/SmartDeviceLink/SDLTextFieldType.m deleted file mode 100644 index cade7f8c4..000000000 --- a/SmartDeviceLink/SDLTextFieldType.m +++ /dev/null @@ -1,140 +0,0 @@ -// -// SDLTextFieldType.m -// SmartDeviceLink-iOS -// -// Created by Brett McIsaac on 8/1/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLTextFieldType.h" - -SDLTextFieldType *SDLTextFieldType_MEDIA_TITLE = nil; -SDLTextFieldType *SDLTextFieldType_MEDIA_ARTIST = nil; -SDLTextFieldType *SDLTextFieldType_MEDIA_ALBUM = nil; -SDLTextFieldType *SDLTextFieldType_MEDIA_YEAR = nil; -SDLTextFieldType *SDLTextFieldType_MEDIA_GENRE = nil; -SDLTextFieldType *SDLTextFieldType_MEDIA_STATION = nil; -SDLTextFieldType *SDLTextFieldType_RATING = nil; -SDLTextFieldType *SDLTextFieldType_CURRENT_TEMPERATURE = nil; -SDLTextFieldType *SDLTextFieldType_MAXIMUM_TEMPERATURE = nil; -SDLTextFieldType *SDLTextFieldType_MINIMUM_TEMPERATURE = nil; -SDLTextFieldType *SDLTextFieldType_WEATHER_TERM = nil; -SDLTextFieldType *SDLTextFieldType_HUMIDITY = nil; - -NSArray *SDLTextFieldType_values = nil; - -@implementation SDLTextFieldType - -+ (SDLTextFieldType *)valueOf:(NSString *)value { - for (SDLTextFieldType *item in SDLTextFieldType.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLTextFieldType_values == nil) { - SDLTextFieldType_values = @[ - SDLTextFieldType.MEDIA_TITLE, - SDLTextFieldType.MEDIA_ARTIST, - SDLTextFieldType.MEDIA_ALBUM, - SDLTextFieldType.MEDIA_YEAR, - SDLTextFieldType.MEDIA_GENRE, - SDLTextFieldType.MEDIA_STATION, - SDLTextFieldType.RATING, - SDLTextFieldType.CURRENT_TEMPERATURE, - SDLTextFieldType.MAXIMUM_TEMPERATURE, - SDLTextFieldType.MINIMUM_TEMPERATURE, - SDLTextFieldType.WEATHER_TERM, - SDLTextFieldType.HUMIDITY]; - } - return SDLTextFieldType_values; -} - -+ (SDLTextFieldType *)MEDIA_TITLE { - if (SDLTextFieldType_MEDIA_TITLE== nil) { - SDLTextFieldType_MEDIA_TITLE = [[SDLTextFieldType alloc] initWithValue:@"MEDIA_TITLE"]; - } - return SDLTextFieldType_MEDIA_TITLE; -} - -+ (SDLTextFieldType *)MEDIA_ARTIST { - if (SDLTextFieldType_MEDIA_ARTIST== nil) { - SDLTextFieldType_MEDIA_ARTIST = [[SDLTextFieldType alloc] initWithValue:@"MEDIA_ARTIST"]; - } - return SDLTextFieldType_MEDIA_ARTIST; -} - -+ (SDLTextFieldType *)MEDIA_ALBUM { - if (SDLTextFieldType_MEDIA_ALBUM== nil) { - SDLTextFieldType_MEDIA_ALBUM = [[SDLTextFieldType alloc] initWithValue:@"MEDIA_ALBUM"]; - } - return SDLTextFieldType_MEDIA_ALBUM; -} - -+ (SDLTextFieldType *)MEDIA_YEAR { - if (SDLTextFieldType_MEDIA_YEAR== nil) { - SDLTextFieldType_MEDIA_YEAR = [[SDLTextFieldType alloc] initWithValue:@"MEDIA_YEAR"]; - } - return SDLTextFieldType_MEDIA_YEAR; -} - -+ (SDLTextFieldType *)MEDIA_GENRE { - if (SDLTextFieldType_MEDIA_GENRE== nil) { - SDLTextFieldType_MEDIA_GENRE = [[SDLTextFieldType alloc] initWithValue:@"MEDIA_GENRE"]; - } - return SDLTextFieldType_MEDIA_GENRE; -} - -+ (SDLTextFieldType *)MEDIA_STATION { - if (SDLTextFieldType_MEDIA_STATION== nil) { - SDLTextFieldType_MEDIA_STATION = [[SDLTextFieldType alloc] initWithValue:@"MEDIA_STATION"]; - } - return SDLTextFieldType_MEDIA_STATION; -} - -+ (SDLTextFieldType *)RATING { - if (SDLTextFieldType_RATING== nil) { - SDLTextFieldType_RATING = [[SDLTextFieldType alloc] initWithValue:@"RATING"]; - } - return SDLTextFieldType_RATING; -} - -+ (SDLTextFieldType *)CURRENT_TEMPERATURE { - if (SDLTextFieldType_CURRENT_TEMPERATURE== nil) { - SDLTextFieldType_CURRENT_TEMPERATURE = [[SDLTextFieldType alloc] initWithValue:@"CURRENT_TEMPERATURE"]; - } - return SDLTextFieldType_CURRENT_TEMPERATURE; -} - -+ (SDLTextFieldType *)MAXIMUM_TEMPERATURE { - if (SDLTextFieldType_MAXIMUM_TEMPERATURE== nil) { - SDLTextFieldType_MAXIMUM_TEMPERATURE = [[SDLTextFieldType alloc] initWithValue:@"MAXIMUM_TEMPERATURE"]; - } - return SDLTextFieldType_MAXIMUM_TEMPERATURE; -} - -+ (SDLTextFieldType *)MINIMUM_TEMPERATURE { - if (SDLTextFieldType_MINIMUM_TEMPERATURE== nil) { - SDLTextFieldType_MINIMUM_TEMPERATURE = [[SDLTextFieldType alloc] initWithValue:@"MINIMUM_TEMPERATURE"]; - } - return SDLTextFieldType_MINIMUM_TEMPERATURE; -} - -+ (SDLTextFieldType *)WEATHER_TERM { - if (SDLTextFieldType_WEATHER_TERM== nil) { - SDLTextFieldType_WEATHER_TERM = [[SDLTextFieldType alloc] initWithValue:@"WEATHER_TERM"]; - } - return SDLTextFieldType_WEATHER_TERM; -} - -+ (SDLTextFieldType *)HUMIDITY { - if (SDLTextFieldType_HUMIDITY== nil) { - SDLTextFieldType_HUMIDITY = [[SDLTextFieldType alloc] initWithValue:@"HUMIDITY"]; - } - return SDLTextFieldType_HUMIDITY; -} - -@end diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMetadataTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMetadataTypeSpec.m new file mode 100644 index 000000000..3a1c0005a --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMetadataTypeSpec.m @@ -0,0 +1,87 @@ +// +// SDLTextFieldTypeSpec.m +// SmartDeviceLink-iOS +// +// Created by Brett McIsaac on 8/1/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import +#import + +#import "SDLMetadataType.h" + +QuickSpecBegin(SDLMetadataTypeSpec) + +describe(@"Individual Enum Value Tests", ^ { + it(@"Should match internal values", ^ { + expect([SDLMetadataType MEDIA_TITLE].value).to(equal(@"MEDIA_TITLE")); + expect([SDLMetadataType MEDIA_ARTIST].value).to(equal(@"MEDIA_ARTIST")); + expect([SDLMetadataType MEDIA_ALBUM].value).to(equal(@"MEDIA_ALBUM")); + expect([SDLMetadataType MEDIA_YEAR].value).to(equal(@"MEDIA_YEAR")); + expect([SDLMetadataType MEDIA_GENRE].value).to(equal(@"MEDIA_GENRE")); + expect([SDLMetadataType MEDIA_STATION].value).to(equal(@"MEDIA_STATION")); + expect([SDLMetadataType RATING].value).to(equal(@"RATING")); + expect([SDLMetadataType CURRENT_TEMPERATURE].value).to(equal(@"CURRENT_TEMPERATURE")); + expect([SDLMetadataType MAXIMUM_TEMPERATURE].value).to(equal(@"MAXIMUM_TEMPERATURE")); + expect([SDLMetadataType MINIMUM_TEMPERATURE].value).to(equal(@"MINIMUM_TEMPERATURE")); + expect([SDLMetadataType WEATHER_TERM].value).to(equal(@"WEATHER_TERM")); + expect([SDLMetadataType HUMIDITY].value).to(equal(@"HUMIDITY")); + + }); +}); +describe(@"ValueOf Tests", ^ { + it(@"Should return correct values when valid", ^ { + expect([SDLMetadataType valueOf:@"MEDIA_TITLE"]).to(equal([SDLMetadataType MEDIA_TITLE])); + expect([SDLMetadataType valueOf:@"MEDIA_ARTIST"]).to(equal([SDLMetadataType MEDIA_ARTIST])); + expect([SDLMetadataType valueOf:@"MEDIA_ALBUM"]).to(equal([SDLMetadataType MEDIA_ALBUM])); + expect([SDLMetadataType valueOf:@"MEDIA_YEAR"]).to(equal([SDLMetadataType MEDIA_YEAR])); + expect([SDLMetadataType valueOf:@"MEDIA_GENRE"]).to(equal([SDLMetadataType MEDIA_GENRE])); + expect([SDLMetadataType valueOf:@"MEDIA_STATION"]).to(equal([SDLMetadataType MEDIA_STATION])); + expect([SDLMetadataType valueOf:@"RATING"]).to(equal([SDLMetadataType RATING])); + expect([SDLMetadataType valueOf:@"CURRENT_TEMPERATURE"]).to(equal([SDLMetadataType CURRENT_TEMPERATURE])); + expect([SDLMetadataType valueOf:@"MAXIMUM_TEMPERATURE"]).to(equal([SDLMetadataType MAXIMUM_TEMPERATURE])); + expect([SDLMetadataType valueOf:@"MINIMUM_TEMPERATURE"]).to(equal([SDLMetadataType MINIMUM_TEMPERATURE])); + expect([SDLMetadataType valueOf:@"WEATHER_TERM"]).to(equal([SDLMetadataType WEATHER_TERM])); + expect([SDLMetadataType valueOf:@"HUMIDITY"]).to(equal([SDLMetadataType HUMIDITY])); + }); + + it(@"Should return nil when invalid", ^ { + expect([SDLMetadataType valueOf:nil]).to(beNil()); + expect([SDLMetadataType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); + }); +}); +describe(@"Value List Tests", ^ { + NSArray* storedValues = [SDLMetadataType values]; + __block NSArray* definedValues; + beforeSuite(^ { + definedValues = [@[[SDLMetadataType MEDIA_TITLE], + [SDLMetadataType MEDIA_ARTIST], + [SDLMetadataType MEDIA_ALBUM], + [SDLMetadataType MEDIA_YEAR], + [SDLMetadataType MEDIA_GENRE], + [SDLMetadataType MEDIA_STATION], + [SDLMetadataType RATING], + [SDLMetadataType CURRENT_TEMPERATURE], + [SDLMetadataType MAXIMUM_TEMPERATURE], + [SDLMetadataType MINIMUM_TEMPERATURE], + [SDLMetadataType WEATHER_TERM], + [SDLMetadataType HUMIDITY]] copy]; + }); + + it(@"Should contain all defined enum values", ^ { + for (int i = 0; i < definedValues.count; i++) { + expect(storedValues).to(contain(definedValues[i])); + } + }); + + it(@"Should contain only defined enum values", ^ { + for (int i = 0; i < storedValues.count; i++) { + expect(definedValues).to(contain(storedValues[i])); + } + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldTypeSpec.m deleted file mode 100644 index 68780bca7..000000000 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldTypeSpec.m +++ /dev/null @@ -1,87 +0,0 @@ -// -// SDLTextFieldTypeSpec.m -// SmartDeviceLink-iOS -// -// Created by Brett McIsaac on 8/1/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import -#import - -#import "SDLTextFieldType.h" - -QuickSpecBegin(SDLTextFieldTypeSpec) - -describe(@"Individual Enum Value Tests", ^ { - it(@"Should match internal values", ^ { - expect([SDLTextFieldType MEDIA_TITLE].value).to(equal(@"MEDIA_TITLE")); - expect([SDLTextFieldType MEDIA_ARTIST].value).to(equal(@"MEDIA_ARTIST")); - expect([SDLTextFieldType MEDIA_ALBUM].value).to(equal(@"MEDIA_ALBUM")); - expect([SDLTextFieldType MEDIA_YEAR].value).to(equal(@"MEDIA_YEAR")); - expect([SDLTextFieldType MEDIA_GENRE].value).to(equal(@"MEDIA_GENRE")); - expect([SDLTextFieldType MEDIA_STATION].value).to(equal(@"MEDIA_STATION")); - expect([SDLTextFieldType RATING].value).to(equal(@"RATING")); - expect([SDLTextFieldType CURRENT_TEMPERATURE].value).to(equal(@"CURRENT_TEMPERATURE")); - expect([SDLTextFieldType MAXIMUM_TEMPERATURE].value).to(equal(@"MAXIMUM_TEMPERATURE")); - expect([SDLTextFieldType MINIMUM_TEMPERATURE].value).to(equal(@"MINIMUM_TEMPERATURE")); - expect([SDLTextFieldType WEATHER_TERM].value).to(equal(@"WEATHER_TERM")); - expect([SDLTextFieldType HUMIDITY].value).to(equal(@"HUMIDITY")); - - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLTextFieldType valueOf:@"MEDIA_TITLE"]).to(equal([SDLTextFieldType MEDIA_TITLE])); - expect([SDLTextFieldType valueOf:@"MEDIA_ARTIST"]).to(equal([SDLTextFieldType MEDIA_ARTIST])); - expect([SDLTextFieldType valueOf:@"MEDIA_ALBUM"]).to(equal([SDLTextFieldType MEDIA_ALBUM])); - expect([SDLTextFieldType valueOf:@"MEDIA_YEAR"]).to(equal([SDLTextFieldType MEDIA_YEAR])); - expect([SDLTextFieldType valueOf:@"MEDIA_GENRE"]).to(equal([SDLTextFieldType MEDIA_GENRE])); - expect([SDLTextFieldType valueOf:@"MEDIA_STATION"]).to(equal([SDLTextFieldType MEDIA_STATION])); - expect([SDLTextFieldType valueOf:@"RATING"]).to(equal([SDLTextFieldType RATING])); - expect([SDLTextFieldType valueOf:@"CURRENT_TEMPERATURE"]).to(equal([SDLTextFieldType CURRENT_TEMPERATURE])); - expect([SDLTextFieldType valueOf:@"MAXIMUM_TEMPERATURE"]).to(equal([SDLTextFieldType MAXIMUM_TEMPERATURE])); - expect([SDLTextFieldType valueOf:@"MINIMUM_TEMPERATURE"]).to(equal([SDLTextFieldType MINIMUM_TEMPERATURE])); - expect([SDLTextFieldType valueOf:@"WEATHER_TERM"]).to(equal([SDLTextFieldType WEATHER_TERM])); - expect([SDLTextFieldType valueOf:@"HUMIDITY"]).to(equal([SDLTextFieldType HUMIDITY])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLTextFieldType valueOf:nil]).to(beNil()); - expect([SDLTextFieldType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLTextFieldType values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLTextFieldType MEDIA_TITLE], - [SDLTextFieldType MEDIA_ARTIST], - [SDLTextFieldType MEDIA_ALBUM], - [SDLTextFieldType MEDIA_YEAR], - [SDLTextFieldType MEDIA_GENRE], - [SDLTextFieldType MEDIA_STATION], - [SDLTextFieldType RATING], - [SDLTextFieldType CURRENT_TEMPERATURE], - [SDLTextFieldType MAXIMUM_TEMPERATURE], - [SDLTextFieldType MINIMUM_TEMPERATURE], - [SDLTextFieldType WEATHER_TERM], - [SDLTextFieldType HUMIDITY]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } - }); -}); - -QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m index f844f00a4..c63325cfb 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m @@ -9,13 +9,12 @@ #import #import "SDLImage.h" -#import "SDLMetadataStruct.h" +#import "SDLMetadataTags.h" +#import "SDLMetadataType.h" #import "SDLNames.h" #import "SDLShow.h" #import "SDLSoftButton.h" #import "SDLTextAlignment.h" -#import "SDLTextFieldType.h" - QuickSpecBegin(SDLShowSpec) @@ -23,8 +22,8 @@ SDLImage* image1 = [[SDLImage alloc] init]; SDLImage* image2 = [[SDLImage alloc] init]; SDLSoftButton* button = [[SDLSoftButton alloc] init]; -NSArray *formatArray = @[[SDLTextFieldType MEDIA_ARTIST], [SDLTextFieldType MEDIA_TITLE]]; -SDLMetadataStruct* testMetadata = [[SDLMetadataStruct alloc] initWithTextFieldTypes:formatArray mainField2:formatArray mainField3:formatArray mainField4:formatArray]; +NSArray *formatArray = @[[SDLMetadataType MEDIA_ARTIST], [SDLMetadataType MEDIA_TITLE]]; +SDLMetadataTags* testMetadata = [[SDLMetadataTags alloc] initWithTextFieldTypes:formatArray mainField2:formatArray mainField3:formatArray mainField4:formatArray]; describe(@"Getter/Setter Tests", ^ { it(@"Should set and get correctly", ^ { diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataStructSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataStructSpec.m deleted file mode 100644 index 2c3d6afd2..000000000 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataStructSpec.m +++ /dev/null @@ -1,56 +0,0 @@ -// -// SDLMetadataStructSpec.m -// SmartDeviceLink-iOS -// -// Created by Brett McIsaac on 8/1/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import -#import - -#import "SDLNames.h" -#import "SDLMetadataStruct.h" -#import "SDLTextFieldType.h" - -QuickSpecBegin(SDLMetadataStructSpec) - -describe(@"Initialization tests", ^{ - it(@"Should get correctly when initialized with a dictionary", ^ { - NSArray *formatArray = @[[SDLTextFieldType MEDIA_ARTIST], [SDLTextFieldType MEDIA_TITLE]]; - NSMutableDictionary* dict = [@{NAMES_mainField1Type: formatArray, - NAMES_mainField2Type: formatArray, - NAMES_mainField3Type: formatArray, - NAMES_mainField4Type: formatArray} mutableCopy]; - - SDLMetadataStruct* testStruct = [[SDLMetadataStruct alloc] initWithDictionary:dict]; - - expect(testStruct.mainField1).to(equal(formatArray)); - expect(testStruct.mainField2).to(equal(formatArray)); - expect(testStruct.mainField3).to(equal(formatArray)); - expect(testStruct.mainField4).to(equal(formatArray)); - }); - - it(@"Should return nil if not set", ^ { - SDLMetadataStruct* testStruct = [[SDLMetadataStruct alloc] init]; - - expect(testStruct.mainField1).to(beNil()); - expect(testStruct.mainField2).to(beNil()); - expect(testStruct.mainField3).to(beNil()); - expect(testStruct.mainField4).to(beNil()); - }); - - it(@"Should get correctly when initialized with Arrays", ^ { - NSArray *formatArray = @[[SDLTextFieldType MEDIA_ARTIST], [SDLTextFieldType MEDIA_TITLE]]; - SDLMetadataStruct* testStruct = [[SDLMetadataStruct alloc] initWithTextFieldTypes:formatArray mainField2:formatArray mainField3:formatArray mainField4:formatArray]; - - expect(testStruct.mainField1).to(equal(formatArray)); - expect(testStruct.mainField2).to(equal(formatArray)); - expect(testStruct.mainField3).to(equal(formatArray)); - expect(testStruct.mainField4).to(equal(formatArray)); - }); -}); - -QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m new file mode 100644 index 000000000..62f43e85e --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m @@ -0,0 +1,56 @@ +// +// SDLMetadataTagsSpec.m +// SmartDeviceLink-iOS +// +// Created by Brett McIsaac on 8/1/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import +#import + +#import "SDLNames.h" +#import "SDLMetadataTags.h" +#import "SDLMetadataType.h" + +QuickSpecBegin(SDLMetadataTagsSpec) + +describe(@"Initialization tests", ^{ + it(@"Should get correctly when initialized with a dictionary", ^ { + NSArray *formatArray = @[[SDLMetadataType MEDIA_ARTIST], [SDLMetadataType MEDIA_TITLE]]; + NSMutableDictionary* dict = [@{NAMES_mainField1Type: formatArray, + NAMES_mainField2Type: formatArray, + NAMES_mainField3Type: formatArray, + NAMES_mainField4Type: formatArray} mutableCopy]; + + SDLMetadataTags* testStruct = [[SDLMetadataTags alloc] initWithDictionary:dict]; + + expect(testStruct.mainField1).to(equal(formatArray)); + expect(testStruct.mainField2).to(equal(formatArray)); + expect(testStruct.mainField3).to(equal(formatArray)); + expect(testStruct.mainField4).to(equal(formatArray)); + }); + + it(@"Should return nil if not set", ^ { + SDLMetadataTags* testStruct = [[SDLMetadataTags alloc] init]; + + expect(testStruct.mainField1).to(beNil()); + expect(testStruct.mainField2).to(beNil()); + expect(testStruct.mainField3).to(beNil()); + expect(testStruct.mainField4).to(beNil()); + }); + + it(@"Should get correctly when initialized with Arrays", ^ { + NSArray *formatArray = @[[SDLMetadataType MEDIA_ARTIST], [SDLMetadataType MEDIA_TITLE]]; + SDLMetadataTags* testStruct = [[SDLMetadataTags alloc] initWithTextFieldTypes:formatArray mainField2:formatArray mainField3:formatArray mainField4:formatArray]; + + expect(testStruct.mainField1).to(equal(formatArray)); + expect(testStruct.mainField2).to(equal(formatArray)); + expect(testStruct.mainField3).to(equal(formatArray)); + expect(testStruct.mainField4).to(equal(formatArray)); + }); +}); + +QuickSpecEnd -- cgit v1.2.1 From 450b5728c72fa837378e3be53f2c8e324c856b17 Mon Sep 17 00:00:00 2001 From: Brett W Date: Wed, 16 Aug 2017 14:35:17 -0400 Subject: finished renaming show param --- SmartDeviceLink/SDLNames.h | 2 +- SmartDeviceLink/SDLShow.h | 2 +- SmartDeviceLink/SDLShow.m | 18 +++++++++--------- .../RPCSpecs/RequestSpecs/SDLShowSpec.m | 12 ++++++------ 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/SmartDeviceLink/SDLNames.h b/SmartDeviceLink/SDLNames.h index 0979c3983..e34f02b2d 100644 --- a/SmartDeviceLink/SDLNames.h +++ b/SmartDeviceLink/SDLNames.h @@ -216,6 +216,7 @@ #define NAMES_messageData @"messageData" #define NAMES_messageDataResult @"messageDataResult" #define NAMES_messageLength @"messageLength" +#define NAMES_metadataTags @"metadataTags" #define NAMES_middleRow1BeltDeployed @"middleRow1BeltDeployed" #define NAMES_middleRow1BuckleBelted @"middleRow1BuckleBelted" #define NAMES_middleRow2BuckleBelted @"middleRow2BuckleBelted" @@ -398,7 +399,6 @@ #define NAMES_tertiaryText @"tertiaryText" #define NAMES_text @"text" #define NAMES_textFields @"textFields" -#define NAMES_textFieldMetadata @"textFieldMetadata" #define NAMES_textMsgAvailable @"textMsgAvailable" #define NAMES_thoroughfare @"thoroughfare" #define NAMES_timeout @"timeout" diff --git a/SmartDeviceLink/SDLShow.h b/SmartDeviceLink/SDLShow.h index 43932b722..b941d1625 100644 --- a/SmartDeviceLink/SDLShow.h +++ b/SmartDeviceLink/SDLShow.h @@ -259,6 +259,6 @@ * If any text field contains no tags or the none tag, the metadata tag for that textfield should be removed. * @since SmartDeviceLink 2.0 */ -@property (strong) SDLMetadataTags *textFieldMetadata; +@property (strong) SDLMetadataTags *metadataTags; @end diff --git a/SmartDeviceLink/SDLShow.m b/SmartDeviceLink/SDLShow.m index b687271b0..0a7949b3e 100644 --- a/SmartDeviceLink/SDLShow.m +++ b/SmartDeviceLink/SDLShow.m @@ -42,7 +42,7 @@ self.mainField1 = mainField1; self.mainField2 = mainField2; self.alignment = alignment; - self.textFieldMetadata = fieldsStruct; + self.metadataTags = fieldsStruct; return self; } @@ -72,7 +72,7 @@ self.mainField3 = mainField3; self.mainField4 = mainField4; self.alignment = alignment; - self.textFieldMetadata = fieldsStruct; + self.metadataTags = fieldsStruct; return self; } @@ -115,7 +115,7 @@ self.graphic = graphic; self.softButtons = [softButtons mutableCopy]; self.customPresets = [customPresets mutableCopy]; - self.textFieldMetadata = metadata; + self.metadataTags = metadata; return self; @@ -291,16 +291,16 @@ return [parameters objectForKey:NAMES_customPresets]; } -- (void)setTextFieldMetadata:(SDLMetadataTags *)textFieldMetadata { - if (textFieldMetadata != nil) { - [parameters setObject:textFieldMetadata forKey:NAMES_textFieldMetadata]; +- (void)setMetadataTags:(SDLMetadataTags *)metadataTags { + if (metadataTags != nil) { + [parameters setObject:metadataTags forKey:NAMES_metadataTags]; } else { - [parameters removeObjectForKey:NAMES_textFieldMetadata]; + [parameters removeObjectForKey:NAMES_metadataTags]; } } -- (SDLMetadataTags *)textFieldMetadata { - NSObject *obj = [parameters objectForKey:NAMES_textFieldMetadata]; +- (SDLMetadataTags *)metadataTags { + NSObject *obj = [parameters objectForKey:NAMES_metadataTags]; if (obj == nil || [obj isKindOfClass:SDLMetadataTags.class]) { return (SDLMetadataTags *)obj; } else { diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m index c63325cfb..8d0896240 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m @@ -41,7 +41,7 @@ describe(@"Getter/Setter Tests", ^ { testRequest.secondaryGraphic = image2; testRequest.softButtons = [@[button] mutableCopy]; testRequest.customPresets = [@[@"preset1", @"preset2"] mutableCopy]; - testRequest.textFieldMetadata = testMetadata; + testRequest.metadataTags = testMetadata; expect(testRequest.mainField1).to(equal(@"field1")); expect(testRequest.mainField2).to(equal(@"field2")); @@ -55,7 +55,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testRequest.secondaryGraphic).to(equal(image2)); expect(testRequest.softButtons).to(equal([@[button] mutableCopy])); expect(testRequest.customPresets).to(equal([@[@"preset1", @"preset2"] mutableCopy])); - expect(testRequest.textFieldMetadata).to(equal(testMetadata)); + expect(testRequest.metadataTags).to(equal(testMetadata)); }); it(@"Should get correctly when initialized", ^ { @@ -73,7 +73,7 @@ describe(@"Getter/Setter Tests", ^ { NAMES_secondaryGraphic:image2, NAMES_softButtons:[@[button] mutableCopy], NAMES_customPresets:[@[@"preset1", @"preset2"] mutableCopy], - NAMES_textFieldMetadata: testMetadata}, + NAMES_metadataTags: testMetadata}, NAMES_operation_name:NAMES_Show}} mutableCopy]; SDLShow* testRequest = [[SDLShow alloc] initWithDictionary:dict]; @@ -89,7 +89,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testRequest.secondaryGraphic).to(equal(image2)); expect(testRequest.softButtons).to(equal([@[button] mutableCopy])); expect(testRequest.customPresets).to(equal([@[@"preset1", @"preset2"] mutableCopy])); - expect(testRequest.textFieldMetadata).to(equal(testMetadata)); + expect(testRequest.metadataTags).to(equal(testMetadata)); }); it(@"Should get correctly when initialized without a dictionary", ^ { @@ -107,7 +107,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testRequest.graphic).to(equal(image1)); expect(testRequest.softButtons).to(equal([@[button] mutableCopy])); expect(testRequest.customPresets).to(equal([@[@"preset1", @"preset2"] mutableCopy])); - expect(testRequest.textFieldMetadata).to(equal(testMetadata)); + expect(testRequest.metadataTags).to(equal(testMetadata)); }); it(@"Should return nil if not set", ^ { @@ -125,7 +125,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testRequest.secondaryGraphic).to(beNil()); expect(testRequest.softButtons).to(beNil()); expect(testRequest.customPresets).to(beNil()); - expect(testRequest.textFieldMetadata).to(beNil()); + expect(testRequest.metadataTags).to(beNil()); }); }); -- cgit v1.2.1 From 78f7d34bb28c5a1a0a1b19def383d31faeac10cb Mon Sep 17 00:00:00 2001 From: Brett W Date: Thu, 17 Aug 2017 13:52:04 -0400 Subject: fixed permissions / podspec --- SmartDeviceLink-iOS.podspec | 4 +++- SmartDeviceLink-iOS.xcodeproj/project.pbxproj | 4 ++-- SmartDeviceLink.podspec | 4 +++- SmartDeviceLink/SmartDeviceLink.h | 2 ++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/SmartDeviceLink-iOS.podspec b/SmartDeviceLink-iOS.podspec index 9b3df7a26..7a927c04f 100644 --- a/SmartDeviceLink-iOS.podspec +++ b/SmartDeviceLink-iOS.podspec @@ -289,7 +289,9 @@ s.public_header_files = [ 'SmartDeviceLink/SDLNotificationConstants.h', 'SmartDeviceLink/SDLRequestHandler.h', 'SmartDeviceLink/SDLRPCNotificationNotification.h', -'SmartDeviceLink/SDLRPCResponseNotification.h' +'SmartDeviceLink/SDLRPCResponseNotification.h', +'SmartDeviceLink/SDLMetadataTags.h', +'SmartDeviceLink/SDLMetadataType.h' ] end diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj index 5978ccc95..c147bd893 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj +++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj @@ -936,10 +936,10 @@ 5DEE55C01B8509CB004F0D0F /* SDLURLRequestTaskSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DEE55BF1B8509CB004F0D0F /* SDLURLRequestTaskSpec.m */; }; 5DF2BB9D1B94E38A00CE5994 /* SDLURLSessionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DF2BB9C1B94E38A00CE5994 /* SDLURLSessionSpec.m */; }; 5DFFB9151BD7C89700DB3F04 /* SDLConnectionManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DFFB9141BD7C89700DB3F04 /* SDLConnectionManagerType.h */; }; - 8B06061F1F30BCED005ADB2F /* SDLMetadataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B06061D1F30BCED005ADB2F /* SDLMetadataType.h */; }; + 8B06061F1F30BCED005ADB2F /* SDLMetadataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B06061D1F30BCED005ADB2F /* SDLMetadataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8B0606201F30BCED005ADB2F /* SDLMetadataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B06061E1F30BCED005ADB2F /* SDLMetadataType.m */; }; 8B0606221F30C108005ADB2F /* SDLMetadataTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B0606211F30C108005ADB2F /* SDLMetadataTypeSpec.m */; }; - 8B0606291F3103CE005ADB2F /* SDLMetadataTags.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B0606271F3103CE005ADB2F /* SDLMetadataTags.h */; }; + 8B0606291F3103CE005ADB2F /* SDLMetadataTags.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B0606271F3103CE005ADB2F /* SDLMetadataTags.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8B06062A1F3103CE005ADB2F /* SDLMetadataTags.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B0606281F3103CE005ADB2F /* SDLMetadataTags.m */; }; 8B06062C1F310ED2005ADB2F /* SDLMetadataTagsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B06062B1F310ED2005ADB2F /* SDLMetadataTagsSpec.m */; }; 8BD729A61F2A2CF30029AC93 /* SDLVideoStreamingCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD729A41F2A2CF30029AC93 /* SDLVideoStreamingCodec.h */; }; diff --git a/SmartDeviceLink.podspec b/SmartDeviceLink.podspec index 39855a2fe..fd973d6ee 100644 --- a/SmartDeviceLink.podspec +++ b/SmartDeviceLink.podspec @@ -289,7 +289,9 @@ s.public_header_files = [ 'SmartDeviceLink/SDLNotificationConstants.h', 'SmartDeviceLink/SDLRequestHandler.h', 'SmartDeviceLink/SDLRPCNotificationNotification.h', -'SmartDeviceLink/SDLRPCResponseNotification.h' +'SmartDeviceLink/SDLRPCResponseNotification.h', +'SmartDeviceLink/SDLMetadataTags.h', +'SmartDeviceLink/SDLMetadataType.h' ] end diff --git a/SmartDeviceLink/SmartDeviceLink.h b/SmartDeviceLink/SmartDeviceLink.h index 573f4711f..bd2689b42 100644 --- a/SmartDeviceLink/SmartDeviceLink.h +++ b/SmartDeviceLink/SmartDeviceLink.h @@ -199,6 +199,8 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLLocationCoordinate.h" #import "SDLLocationDetails.h" #import "SDLMenuParams.h" +#import "SDLMetadataTags.h" +#import "SDLMetadataType.h" #import "SDLMyKey.h" #import "SDLNavigationCapability.h" #import "SDLParameterPermissions.h" -- cgit v1.2.1 From 26e18958846ec5acc0782eff85a7737c7b64a3e0 Mon Sep 17 00:00:00 2001 From: Brett W Date: Thu, 17 Aug 2017 13:57:13 -0400 Subject: fixed placement of import --- SmartDeviceLink/SmartDeviceLink.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SmartDeviceLink/SmartDeviceLink.h b/SmartDeviceLink/SmartDeviceLink.h index bd2689b42..798866fbf 100644 --- a/SmartDeviceLink/SmartDeviceLink.h +++ b/SmartDeviceLink/SmartDeviceLink.h @@ -200,7 +200,6 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLLocationDetails.h" #import "SDLMenuParams.h" #import "SDLMetadataTags.h" -#import "SDLMetadataType.h" #import "SDLMyKey.h" #import "SDLNavigationCapability.h" #import "SDLParameterPermissions.h" @@ -264,6 +263,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLLockScreenStatus.h" #import "SDLMaintenanceModeStatus.h" #import "SDLMediaClockFormat.h" +#import "SDLMetadataType.h" #import "SDLPRNDL.h" #import "SDLPermissionStatus.h" #import "SDLPowerModeQualificationStatus.h" -- cgit v1.2.1 From 9eddd132a86c68da95286d109c78a6546bec0cb1 Mon Sep 17 00:00:00 2001 From: Joel Fischer Date: Thu, 17 Aug 2017 15:59:17 -0400 Subject: Fix incorrect parameters for metadata types --- SmartDeviceLink/SDLMetadataTags.m | 24 +++++++++--------- SmartDeviceLink/SDLMetadataType.h | 7 ++++++ SmartDeviceLink/SDLMetadataType.m | 53 +++++++++++++++++++++++---------------- SmartDeviceLink/SDLNames.h | 4 --- 4 files changed, 50 insertions(+), 38 deletions(-) diff --git a/SmartDeviceLink/SDLMetadataTags.m b/SmartDeviceLink/SDLMetadataTags.m index 9a071ed0d..745e43a39 100644 --- a/SmartDeviceLink/SDLMetadataTags.m +++ b/SmartDeviceLink/SDLMetadataTags.m @@ -52,14 +52,14 @@ - (void)setMainField1:(NSMutableArray *)mainField1 { if (mainField1 != nil) { - [store setObject:mainField1 forKey:NAMES_mainField1Type]; + [store setObject:mainField1 forKey:NAMES_mainField1]; } else { - [store removeObjectForKey:NAMES_mainField1Type]; + [store removeObjectForKey:NAMES_mainField1]; } } - (NSMutableArray *)mainField1 { - NSMutableArray *array = [store objectForKey:NAMES_mainField1Type]; + NSMutableArray *array = [store objectForKey:NAMES_mainField1]; if ([array isEqual:[NSNull null]]) { return [NSMutableArray array]; } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLMetadataType.class]) { @@ -75,14 +75,14 @@ - (void)setMainField2:(NSMutableArray *)mainField2 { if (mainField2 != nil) { - [store setObject:mainField2 forKey:NAMES_mainField2Type]; + [store setObject:mainField2 forKey:NAMES_mainField2]; } else { - [store removeObjectForKey:NAMES_mainField2Type]; + [store removeObjectForKey:NAMES_mainField2]; } } - (NSMutableArray *)mainField2 { - NSMutableArray *array = [store objectForKey:NAMES_mainField2Type]; + NSMutableArray *array = [store objectForKey:NAMES_mainField2]; if ([array isEqual:[NSNull null]]) { return [NSMutableArray array]; } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLMetadataType.class]) { @@ -98,14 +98,14 @@ - (void)setMainField3:(NSMutableArray *)mainField3 { if (mainField3 != nil) { - [store setObject:mainField3 forKey:NAMES_mainField3Type]; + [store setObject:mainField3 forKey:NAMES_mainField3]; } else { - [store removeObjectForKey:NAMES_mainField3Type]; + [store removeObjectForKey:NAMES_mainField3]; } } - (NSMutableArray *)mainField3 { - NSMutableArray *array = [store objectForKey:NAMES_mainField3Type]; + NSMutableArray *array = [store objectForKey:NAMES_mainField3]; if ([array isEqual:[NSNull null]]) { return [NSMutableArray array]; } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLMetadataType.class]) { @@ -121,14 +121,14 @@ - (void)setMainField4:(NSMutableArray *)mainField4 { if (mainField4 != nil) { - [store setObject:mainField4 forKey:NAMES_mainField4Type]; + [store setObject:mainField4 forKey:NAMES_mainField4]; } else { - [store removeObjectForKey:NAMES_mainField4Type]; + [store removeObjectForKey:NAMES_mainField4]; } } - (NSMutableArray *)mainField4 { - NSMutableArray *array = [store objectForKey:NAMES_mainField4Type]; + NSMutableArray *array = [store objectForKey:NAMES_mainField4]; if ([array isEqual:[NSNull null]]) { return [NSMutableArray array]; } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLMetadataType.class]) { diff --git a/SmartDeviceLink/SDLMetadataType.h b/SmartDeviceLink/SDLMetadataType.h index 96e65552a..2141756cc 100644 --- a/SmartDeviceLink/SDLMetadataType.h +++ b/SmartDeviceLink/SDLMetadataType.h @@ -116,4 +116,11 @@ */ + (SDLMetadataType *)HUMIDITY; +/** + The data in this field is not of a common type or should not be processed. Any time a field does not have a type parameter it is considered as the none type. + + @return A SDLTextFieldType object with value of *none* + */ ++ (SDLMetadataType *)NONE; + @end diff --git a/SmartDeviceLink/SDLMetadataType.m b/SmartDeviceLink/SDLMetadataType.m index 8b5e448d8..c232b0948 100644 --- a/SmartDeviceLink/SDLMetadataType.m +++ b/SmartDeviceLink/SDLMetadataType.m @@ -20,6 +20,7 @@ SDLMetadataType *SDLMetadataType_MAXIMUM_TEMPERATURE = nil; SDLMetadataType *SDLMetadataType_MINIMUM_TEMPERATURE = nil; SDLMetadataType *SDLMetadataType_WEATHER_TERM = nil; SDLMetadataType *SDLMetadataType_HUMIDITY = nil; +SDLMetadataType *SDLMetadataType_NONE = nil; NSArray *SDLMetadataType_values = nil; @@ -48,93 +49,101 @@ NSArray *SDLMetadataType_values = nil; SDLMetadataType.MAXIMUM_TEMPERATURE, SDLMetadataType.MINIMUM_TEMPERATURE, SDLMetadataType.WEATHER_TERM, - SDLMetadataType.HUMIDITY]; + SDLMetadataType.HUMIDITY, + SDLMetadataType_NONE]; } return SDLMetadataType_values; } + (SDLMetadataType *)MEDIA_TITLE { if (SDLMetadataType_MEDIA_TITLE== nil) { - SDLMetadataType_MEDIA_TITLE = [[SDLMetadataType alloc] initWithValue:@"MEDIA_TITLE"]; + SDLMetadataType_MEDIA_TITLE = [[SDLMetadataType alloc] initWithValue:@"mediaTitle"]; } return SDLMetadataType_MEDIA_TITLE; } + (SDLMetadataType *)MEDIA_ARTIST { if (SDLMetadataType_MEDIA_ARTIST== nil) { - SDLMetadataType_MEDIA_ARTIST = [[SDLMetadataType alloc] initWithValue:@"MEDIA_ARTIST"]; + SDLMetadataType_MEDIA_ARTIST = [[SDLMetadataType alloc] initWithValue:@"mediaArtist"]; } return SDLMetadataType_MEDIA_ARTIST; } + (SDLMetadataType *)MEDIA_ALBUM { if (SDLMetadataType_MEDIA_ALBUM== nil) { - SDLMetadataType_MEDIA_ALBUM = [[SDLMetadataType alloc] initWithValue:@"MEDIA_ALBUM"]; + SDLMetadataType_MEDIA_ALBUM = [[SDLMetadataType alloc] initWithValue:@"mediaAlbum"]; } return SDLMetadataType_MEDIA_ALBUM; } + (SDLMetadataType *)MEDIA_YEAR { - if (SDLMetadataType_MEDIA_YEAR== nil) { - SDLMetadataType_MEDIA_YEAR = [[SDLMetadataType alloc] initWithValue:@"MEDIA_YEAR"]; + if (SDLMetadataType_MEDIA_YEAR == nil) { + SDLMetadataType_MEDIA_YEAR = [[SDLMetadataType alloc] initWithValue:@"mediaArtist"]; } return SDLMetadataType_MEDIA_YEAR; } + (SDLMetadataType *)MEDIA_GENRE { - if (SDLMetadataType_MEDIA_GENRE== nil) { - SDLMetadataType_MEDIA_GENRE = [[SDLMetadataType alloc] initWithValue:@"MEDIA_GENRE"]; + if (SDLMetadataType_MEDIA_GENRE == nil) { + SDLMetadataType_MEDIA_GENRE = [[SDLMetadataType alloc] initWithValue:@"mediaGenre"]; } return SDLMetadataType_MEDIA_GENRE; } + (SDLMetadataType *)MEDIA_STATION { - if (SDLMetadataType_MEDIA_STATION== nil) { - SDLMetadataType_MEDIA_STATION = [[SDLMetadataType alloc] initWithValue:@"MEDIA_STATION"]; + if (SDLMetadataType_MEDIA_STATION == nil) { + SDLMetadataType_MEDIA_STATION = [[SDLMetadataType alloc] initWithValue:@"mediaStation"]; } return SDLMetadataType_MEDIA_STATION; } + (SDLMetadataType *)RATING { - if (SDLMetadataType_RATING== nil) { - SDLMetadataType_RATING = [[SDLMetadataType alloc] initWithValue:@"RATING"]; + if (SDLMetadataType_RATING == nil) { + SDLMetadataType_RATING = [[SDLMetadataType alloc] initWithValue:@"rating"]; } return SDLMetadataType_RATING; } + (SDLMetadataType *)CURRENT_TEMPERATURE { - if (SDLMetadataType_CURRENT_TEMPERATURE== nil) { - SDLMetadataType_CURRENT_TEMPERATURE = [[SDLMetadataType alloc] initWithValue:@"CURRENT_TEMPERATURE"]; + if (SDLMetadataType_CURRENT_TEMPERATURE == nil) { + SDLMetadataType_CURRENT_TEMPERATURE = [[SDLMetadataType alloc] initWithValue:@"currentTemperature"]; } return SDLMetadataType_CURRENT_TEMPERATURE; } + (SDLMetadataType *)MAXIMUM_TEMPERATURE { - if (SDLMetadataType_MAXIMUM_TEMPERATURE== nil) { - SDLMetadataType_MAXIMUM_TEMPERATURE = [[SDLMetadataType alloc] initWithValue:@"MAXIMUM_TEMPERATURE"]; + if (SDLMetadataType_MAXIMUM_TEMPERATURE == nil) { + SDLMetadataType_MAXIMUM_TEMPERATURE = [[SDLMetadataType alloc] initWithValue:@"maximumTemperature"]; } return SDLMetadataType_MAXIMUM_TEMPERATURE; } + (SDLMetadataType *)MINIMUM_TEMPERATURE { - if (SDLMetadataType_MINIMUM_TEMPERATURE== nil) { - SDLMetadataType_MINIMUM_TEMPERATURE = [[SDLMetadataType alloc] initWithValue:@"MINIMUM_TEMPERATURE"]; + if (SDLMetadataType_MINIMUM_TEMPERATURE == nil) { + SDLMetadataType_MINIMUM_TEMPERATURE = [[SDLMetadataType alloc] initWithValue:@"minimumTemperature"]; } return SDLMetadataType_MINIMUM_TEMPERATURE; } + (SDLMetadataType *)WEATHER_TERM { - if (SDLMetadataType_WEATHER_TERM== nil) { - SDLMetadataType_WEATHER_TERM = [[SDLMetadataType alloc] initWithValue:@"WEATHER_TERM"]; + if (SDLMetadataType_WEATHER_TERM == nil) { + SDLMetadataType_WEATHER_TERM = [[SDLMetadataType alloc] initWithValue:@"weatherTerm"]; } return SDLMetadataType_WEATHER_TERM; } + (SDLMetadataType *)HUMIDITY { - if (SDLMetadataType_HUMIDITY== nil) { - SDLMetadataType_HUMIDITY = [[SDLMetadataType alloc] initWithValue:@"HUMIDITY"]; + if (SDLMetadataType_HUMIDITY == nil) { + SDLMetadataType_HUMIDITY = [[SDLMetadataType alloc] initWithValue:@"humidity"]; } return SDLMetadataType_HUMIDITY; } ++ (SDLMetadataType *)NONE { + if (SDLMetadataType_NONE == nil) { + SDLMetadataType_NONE = [[SDLMetadataType alloc] initWithValue:@"none"]; + } + return SDLMetadataType_NONE; +} + @end diff --git a/SmartDeviceLink/SDLNames.h b/SmartDeviceLink/SDLNames.h index e34f02b2d..5b468d034 100644 --- a/SmartDeviceLink/SDLNames.h +++ b/SmartDeviceLink/SDLNames.h @@ -193,10 +193,6 @@ #define NAMES_mainField2 @"mainField2" #define NAMES_mainField3 @"mainField3" #define NAMES_mainField4 @"mainField4" -#define NAMES_mainField1Type @"mainField1Type" -#define NAMES_mainField2Type @"mainField2Type" -#define NAMES_mainField3Type @"mainField3Type" -#define NAMES_mainField4Type @"mainField4Type" #define NAMES_majorVersion @"majorVersion" #define NAMES_make @"make" #define NAMES_maneuverComplete @"maneuverComplete" -- cgit v1.2.1 From 6bb4030dbc5579b9db126c837e9d85a91810c4b1 Mon Sep 17 00:00:00 2001 From: Joel Fischer Date: Thu, 17 Aug 2017 16:13:56 -0400 Subject: Fix metadatatype mediaYear --- SmartDeviceLink/SDLMetadataType.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SmartDeviceLink/SDLMetadataType.m b/SmartDeviceLink/SDLMetadataType.m index c232b0948..f9a8c3cc9 100644 --- a/SmartDeviceLink/SDLMetadataType.m +++ b/SmartDeviceLink/SDLMetadataType.m @@ -78,7 +78,7 @@ NSArray *SDLMetadataType_values = nil; + (SDLMetadataType *)MEDIA_YEAR { if (SDLMetadataType_MEDIA_YEAR == nil) { - SDLMetadataType_MEDIA_YEAR = [[SDLMetadataType alloc] initWithValue:@"mediaArtist"]; + SDLMetadataType_MEDIA_YEAR = [[SDLMetadataType alloc] initWithValue:@"mediaYear"]; } return SDLMetadataType_MEDIA_YEAR; } -- cgit v1.2.1 From 4b5420c7b348f58fb4d88b84933d87b0369f7c7b Mon Sep 17 00:00:00 2001 From: Joel Fischer Date: Thu, 17 Aug 2017 16:36:48 -0400 Subject: Fix tests and MetadataType NONE --- SmartDeviceLink/SDLMetadataType.m | 2 +- .../RPCSpecs/EnumSpecs/SDLMetadataTypeSpec.m | 55 ++++++++++++---------- .../RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m | 8 ++-- 3 files changed, 34 insertions(+), 31 deletions(-) diff --git a/SmartDeviceLink/SDLMetadataType.m b/SmartDeviceLink/SDLMetadataType.m index f9a8c3cc9..7e089230d 100644 --- a/SmartDeviceLink/SDLMetadataType.m +++ b/SmartDeviceLink/SDLMetadataType.m @@ -50,7 +50,7 @@ NSArray *SDLMetadataType_values = nil; SDLMetadataType.MINIMUM_TEMPERATURE, SDLMetadataType.WEATHER_TERM, SDLMetadataType.HUMIDITY, - SDLMetadataType_NONE]; + SDLMetadataType.NONE]; } return SDLMetadataType_values; } diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMetadataTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMetadataTypeSpec.m index 3a1c0005a..5eea451e1 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMetadataTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMetadataTypeSpec.m @@ -17,35 +17,36 @@ QuickSpecBegin(SDLMetadataTypeSpec) describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLMetadataType MEDIA_TITLE].value).to(equal(@"MEDIA_TITLE")); - expect([SDLMetadataType MEDIA_ARTIST].value).to(equal(@"MEDIA_ARTIST")); - expect([SDLMetadataType MEDIA_ALBUM].value).to(equal(@"MEDIA_ALBUM")); - expect([SDLMetadataType MEDIA_YEAR].value).to(equal(@"MEDIA_YEAR")); - expect([SDLMetadataType MEDIA_GENRE].value).to(equal(@"MEDIA_GENRE")); - expect([SDLMetadataType MEDIA_STATION].value).to(equal(@"MEDIA_STATION")); - expect([SDLMetadataType RATING].value).to(equal(@"RATING")); - expect([SDLMetadataType CURRENT_TEMPERATURE].value).to(equal(@"CURRENT_TEMPERATURE")); - expect([SDLMetadataType MAXIMUM_TEMPERATURE].value).to(equal(@"MAXIMUM_TEMPERATURE")); - expect([SDLMetadataType MINIMUM_TEMPERATURE].value).to(equal(@"MINIMUM_TEMPERATURE")); - expect([SDLMetadataType WEATHER_TERM].value).to(equal(@"WEATHER_TERM")); - expect([SDLMetadataType HUMIDITY].value).to(equal(@"HUMIDITY")); - + expect([SDLMetadataType MEDIA_TITLE].value).to(equal(@"mediaTitle")); + expect([SDLMetadataType MEDIA_ARTIST].value).to(equal(@"mediaArtist")); + expect([SDLMetadataType MEDIA_ALBUM].value).to(equal(@"mediaAlbum")); + expect([SDLMetadataType MEDIA_YEAR].value).to(equal(@"mediaYear")); + expect([SDLMetadataType MEDIA_GENRE].value).to(equal(@"mediaGenre")); + expect([SDLMetadataType MEDIA_STATION].value).to(equal(@"mediaStation")); + expect([SDLMetadataType RATING].value).to(equal(@"rating")); + expect([SDLMetadataType CURRENT_TEMPERATURE].value).to(equal(@"currentTemperature")); + expect([SDLMetadataType MAXIMUM_TEMPERATURE].value).to(equal(@"maximumTemperature")); + expect([SDLMetadataType MINIMUM_TEMPERATURE].value).to(equal(@"minimumTemperature")); + expect([SDLMetadataType WEATHER_TERM].value).to(equal(@"weatherTerm")); + expect([SDLMetadataType HUMIDITY].value).to(equal(@"humidity")); + expect([SDLMetadataType NONE].value).to(equal(@"none")); }); }); describe(@"ValueOf Tests", ^ { it(@"Should return correct values when valid", ^ { - expect([SDLMetadataType valueOf:@"MEDIA_TITLE"]).to(equal([SDLMetadataType MEDIA_TITLE])); - expect([SDLMetadataType valueOf:@"MEDIA_ARTIST"]).to(equal([SDLMetadataType MEDIA_ARTIST])); - expect([SDLMetadataType valueOf:@"MEDIA_ALBUM"]).to(equal([SDLMetadataType MEDIA_ALBUM])); - expect([SDLMetadataType valueOf:@"MEDIA_YEAR"]).to(equal([SDLMetadataType MEDIA_YEAR])); - expect([SDLMetadataType valueOf:@"MEDIA_GENRE"]).to(equal([SDLMetadataType MEDIA_GENRE])); - expect([SDLMetadataType valueOf:@"MEDIA_STATION"]).to(equal([SDLMetadataType MEDIA_STATION])); - expect([SDLMetadataType valueOf:@"RATING"]).to(equal([SDLMetadataType RATING])); - expect([SDLMetadataType valueOf:@"CURRENT_TEMPERATURE"]).to(equal([SDLMetadataType CURRENT_TEMPERATURE])); - expect([SDLMetadataType valueOf:@"MAXIMUM_TEMPERATURE"]).to(equal([SDLMetadataType MAXIMUM_TEMPERATURE])); - expect([SDLMetadataType valueOf:@"MINIMUM_TEMPERATURE"]).to(equal([SDLMetadataType MINIMUM_TEMPERATURE])); - expect([SDLMetadataType valueOf:@"WEATHER_TERM"]).to(equal([SDLMetadataType WEATHER_TERM])); - expect([SDLMetadataType valueOf:@"HUMIDITY"]).to(equal([SDLMetadataType HUMIDITY])); + expect([SDLMetadataType valueOf:@"mediaTitle"]).to(equal([SDLMetadataType MEDIA_TITLE])); + expect([SDLMetadataType valueOf:@"mediaArtist"]).to(equal([SDLMetadataType MEDIA_ARTIST])); + expect([SDLMetadataType valueOf:@"mediaAlbum"]).to(equal([SDLMetadataType MEDIA_ALBUM])); + expect([SDLMetadataType valueOf:@"mediaYear"]).to(equal([SDLMetadataType MEDIA_YEAR])); + expect([SDLMetadataType valueOf:@"mediaGenre"]).to(equal([SDLMetadataType MEDIA_GENRE])); + expect([SDLMetadataType valueOf:@"mediaStation"]).to(equal([SDLMetadataType MEDIA_STATION])); + expect([SDLMetadataType valueOf:@"rating"]).to(equal([SDLMetadataType RATING])); + expect([SDLMetadataType valueOf:@"currentTemperature"]).to(equal([SDLMetadataType CURRENT_TEMPERATURE])); + expect([SDLMetadataType valueOf:@"maximumTemperature"]).to(equal([SDLMetadataType MAXIMUM_TEMPERATURE])); + expect([SDLMetadataType valueOf:@"minimumTemperature"]).to(equal([SDLMetadataType MINIMUM_TEMPERATURE])); + expect([SDLMetadataType valueOf:@"weatherTerm"]).to(equal([SDLMetadataType WEATHER_TERM])); + expect([SDLMetadataType valueOf:@"humidity"]).to(equal([SDLMetadataType HUMIDITY])); + expect([SDLMetadataType valueOf:@"none"]).to(equal([SDLMetadataType NONE])); }); it(@"Should return nil when invalid", ^ { @@ -53,6 +54,7 @@ describe(@"ValueOf Tests", ^ { expect([SDLMetadataType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); }); }); + describe(@"Value List Tests", ^ { NSArray* storedValues = [SDLMetadataType values]; __block NSArray* definedValues; @@ -68,7 +70,8 @@ describe(@"Value List Tests", ^ { [SDLMetadataType MAXIMUM_TEMPERATURE], [SDLMetadataType MINIMUM_TEMPERATURE], [SDLMetadataType WEATHER_TERM], - [SDLMetadataType HUMIDITY]] copy]; + [SDLMetadataType HUMIDITY], + [SDLMetadataType NONE]] copy]; }); it(@"Should contain all defined enum values", ^ { diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m index 62f43e85e..aa1b10ac3 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m @@ -20,10 +20,10 @@ QuickSpecBegin(SDLMetadataTagsSpec) describe(@"Initialization tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { NSArray *formatArray = @[[SDLMetadataType MEDIA_ARTIST], [SDLMetadataType MEDIA_TITLE]]; - NSMutableDictionary* dict = [@{NAMES_mainField1Type: formatArray, - NAMES_mainField2Type: formatArray, - NAMES_mainField3Type: formatArray, - NAMES_mainField4Type: formatArray} mutableCopy]; + NSMutableDictionary* dict = [@{NAMES_mainField1: formatArray, + NAMES_mainField2: formatArray, + NAMES_mainField3: formatArray, + NAMES_mainField4: formatArray} mutableCopy]; SDLMetadataTags* testStruct = [[SDLMetadataTags alloc] initWithDictionary:dict]; -- cgit v1.2.1