summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett W <brett@buhz.com>2017-08-02 10:52:18 -0400
committerBrett W <brett@buhz.com>2017-08-02 10:52:18 -0400
commita63541b20ae4c2e710772671bf25c3a2d03dc7f1 (patch)
treeca2a6c126d4a07d4e0dac3e41b0d1ca6e6d17537
parent84e4ef3afb89e615e6d3aa7730088ac1b375e955 (diff)
downloadsdl_ios-a63541b20ae4c2e710772671bf25c3a2d03dc7f1.tar.gz
modified show, still need to make tests
-rw-r--r--SmartDeviceLink/SDLMetadataStruct.h6
-rw-r--r--SmartDeviceLink/SDLNames.h1
-rw-r--r--SmartDeviceLink/SDLShow.h23
-rw-r--r--SmartDeviceLink/SDLShow.m93
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