diff options
author | Brett W <brett@buhz.com> | 2017-08-02 10:52:18 -0400 |
---|---|---|
committer | Brett W <brett@buhz.com> | 2017-08-02 10:52:18 -0400 |
commit | a63541b20ae4c2e710772671bf25c3a2d03dc7f1 (patch) | |
tree | ca2a6c126d4a07d4e0dac3e41b0d1ca6e6d17537 | |
parent | 84e4ef3afb89e615e6d3aa7730088ac1b375e955 (diff) | |
download | sdl_ios-a63541b20ae4c2e710772671bf25c3a2d03dc7f1.tar.gz |
modified show, still need to make tests
-rw-r--r-- | SmartDeviceLink/SDLMetadataStruct.h | 6 | ||||
-rw-r--r-- | SmartDeviceLink/SDLNames.h | 1 | ||||
-rw-r--r-- | SmartDeviceLink/SDLShow.h | 23 | ||||
-rw-r--r-- | 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<SDLTextFieldType *> *)mainField1 mainField2:(NSArray<SDLTextFieldType *> *)mainField2 mainField3:(NSArray<SDLTextFieldType *> *)mainField3 mainField4:(NSArray<SDLTextFieldType *> *)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<SDLSoftButton *> *)softButtons customPresets:(NSArray<NSString *> *)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<SDLSoftButton *> *)softButtons customPresets:(NSArray<NSString *> *)customPresets __deprecated_msg(("Use initWithMainField1:(NSString *)mainField1 (NSString *)mainField2 (NSString *)mainField3 (NSString *)mainField4 (SDLTextAlignment *)alignment (NSString *)statusBar (NSString *)mediaClock (NSString *)mediaTrack (SDLImage *)graphic (NSArray<SDLSoftButton *> *)softButtons (NSArray<NSString *> *)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<SDLSoftButton *> *)softButtons customPresets:(NSArray<NSString *> *)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 + * <p> + * 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<SDLTextFieldType *> *field1Array = @[mainField1Type]; + NSArray<SDLTextFieldType *> *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<SDLTextFieldType *> *field1Array = @[mainField1Type]; + NSArray<SDLTextFieldType *> *field2Array = @[mainField2Type]; + NSArray<SDLTextFieldType *> *field3Array = @[mainField3Type]; + NSArray<SDLTextFieldType *> *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<SDLSoftButton *> *)softButtons customPresets:(NSArray<NSString *> *)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<SDLSoftButton *> *)softButtons customPresets:(NSArray<NSString *> *)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 |