diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRChoiceSetViewDataSource.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRChoiceSetViewDataSource.h index 3c7c7b2523..58747677fd 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRChoiceSetViewDataSource.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRChoiceSetViewDataSource.h @@ -5,6 +5,7 @@ // Copyright © 2018 Microsoft. All rights reserved. // +#import "ACOBaseCardElement.h" #import "ACRIBaseInputHandler.h" #import "ChoiceInput.h" #import "ChoiceSetInput.h" @@ -22,8 +23,10 @@ extern NSString *uncheckedRadioButtonReuseID; @interface ACRChoiceSetViewDataSource : NSObject @property NSString *id; @property BOOL isMultiChoicesAllowed; +@property ACRContainerStyle parentStyle; + +- (instancetype)initWithInputChoiceSet:(std::shared_ptr const &)choiceSet WithHostConfig:(std::shared_ptr const &)hostConfig; -- (instancetype)initWithInputChoiceSet:(std::shared_ptr const &)choiceSet; - (void)getDefaultInput:(NSMutableDictionary *)dictionary; diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRChoiceSetViewDataSource.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRChoiceSetViewDataSource.mm index 477d248741..f87c534d40 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRChoiceSetViewDataSource.mm +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRChoiceSetViewDataSource.mm @@ -6,6 +6,7 @@ // #import "ACRChoiceSetViewDataSource.h" +#import "UtiliOS.h" #import using namespace AdaptiveCards; @@ -53,9 +54,10 @@ @implementation ACRChoiceSetViewDataSource { NSMutableSet *_defaultValuesSet; NSArray *_defaultValuesArray; BOOL _shouldWrap; + std::shared_ptr _config; } -- (instancetype)initWithInputChoiceSet:(std::shared_ptr const &)choiceSet +- (instancetype)initWithInputChoiceSet:(std::shared_ptr const &)choiceSet WithHostConfig:(std::shared_ptr const &)hostConfig; { self = [super init]; if (self) { @@ -66,6 +68,9 @@ - (instancetype)initWithInputChoiceSet:(std::shared_ptrGetWrap(); _userSelections = [[NSMutableDictionary alloc] init]; _currentSelectedIndexPath = nil; + _config = hostConfig; + _parentStyle = ACRContainerStyle::ACRNone; + NSString *defaultValues = [NSString stringWithCString:_choiceSetDataSource->GetValue().c_str() encoding:NSUTF8StringEncoding]; _defaultValuesArray = [defaultValues componentsSeparatedByCharactersInSet: @@ -122,6 +127,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N NSString *title = [NSString stringWithCString:_choiceSetDataSource->GetChoices()[indexPath.row]->GetTitle().c_str() encoding:NSUTF8StringEncoding]; cell.textLabel.text = title; + cell.textLabel.textColor = getForegroundUIColorFromAdaptiveAttribute(_config, _parentStyle); cell.textLabel.lineBreakMode = NSLineBreakByTruncatingTail; cell.selectionStyle = UITableViewCellSelectionStyleNone; diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRInputChoiceSetRenderer.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRInputChoiceSetRenderer.mm index f7b37aea5d..b67001471d 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRInputChoiceSetRenderer.mm +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRInputChoiceSetRenderer.mm @@ -54,7 +54,7 @@ - (UIView *)render:(UIView *)viewGroup dataSource = [[ACRChoiceSetViewDataSourceCompactStyle alloc] initWithInputChoiceSet:choiceSet rootView:rootView]; [choiceSetView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; } else { - dataSource = [[ACRChoiceSetViewDataSource alloc] initWithInputChoiceSet:choiceSet]; + dataSource = [[ACRChoiceSetViewDataSource alloc] initWithInputChoiceSet:choiceSet WithHostConfig:config]; [choiceSetView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; } diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRInputToggleRenderer.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRInputToggleRenderer.mm index 05ec664abe..f1f5af30d5 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRInputToggleRenderer.mm +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRInputToggleRenderer.mm @@ -47,6 +47,7 @@ - (UIView *)render:(UIView *)viewGroup inputTableView.frame = CGRectMake(0, 0, viewGroup.frame.size.width, viewGroup.frame.size.height); [inputTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; ACRToggleInputDataSource *dataSource = [[ACRToggleInputDataSource alloc] initWithInputToggle:toggleBlck WithHostConfig:config]; + dataSource.parentStyle = viewGroup.style; inputTableView.delegate = dataSource; inputTableView.dataSource = dataSource; diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRTextField.xib b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRTextField.xib index d0cbd9290c..9de216a5ee 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRTextField.xib +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRTextField.xib @@ -1,11 +1,9 @@ - - - - + + - + @@ -14,8 +12,6 @@ - - diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRToggleInputDataSource.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRToggleInputDataSource.h index 424eb48029..4456ee2d70 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRToggleInputDataSource.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRToggleInputDataSource.h @@ -5,6 +5,7 @@ // Copyright © 2018 Microsoft. All rights reserved. // +#import "ACOBaseCardElement.h" #import "ACRColumnSetView.h" #import "ACRIBaseCardElementRenderer.h" #import "ACRIBaseInputHandler.h" @@ -13,6 +14,7 @@ @interface ACRToggleInputDataSource : NSObject +@property ACRContainerStyle parentStyle; @property NSString *id; @property NSString *valueOn; @property NSString *valueOff; diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRToggleInputDataSource.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRToggleInputDataSource.mm index 30d116997b..97d4561b76 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRToggleInputDataSource.mm +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRToggleInputDataSource.mm @@ -10,6 +10,7 @@ #import "ACRIBaseCardElementRenderer.h" #import "ACRUILabel.h" #import "HostConfig.h" +#import "UtiliOS.h" #import using namespace AdaptiveCards; @@ -33,6 +34,7 @@ - (instancetype)initWithInputToggle:(std::shared_ptr const &)toggle _toggleSwitch = [[UISwitch alloc] init]; _toggleInputDataSource = toggleInput; _config = hostConfig; + _parentStyle = ACRContainerStyle::ACRNone; self.id = [[NSString alloc] initWithCString:_toggleInputDataSource->GetId().c_str() encoding:NSUTF8StringEncoding]; _shouldWrap = toggleInput->GetWrap(); @@ -67,6 +69,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N reuseIdentifier:identifier]; } cell.textLabel.text = _title; + cell.textLabel.textColor = getForegroundUIColorFromAdaptiveAttribute(_config, _parentStyle); cell.textLabel.adjustsFontSizeToFitWidth = NO; cell.textLabel.numberOfLines = 0; cell.textLabel.lineBreakMode = NSLineBreakByTruncatingTail; diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/UtiliOS.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/UtiliOS.h index 1f8a955609..6c6fc4fa6b 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/UtiliOS.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/UtiliOS.h @@ -68,3 +68,5 @@ void TextRunToRichTextElementProperties(const std::shared_ptr &textRun, void buildIntermediateResultForText(ACRView *rootView, ACOHostConfig *hostConfig, RichTextElementProperties const &textProperties, NSString *elementId); ACOBaseActionElement *deserializeUnknownActionToCustomAction(const std::shared_ptr action); + +UIColor *getForegroundUIColorFromAdaptiveAttribute(std::shared_ptr const &config, ACRContainerStyle style, ForegroundColor textColor = ForegroundColor::Default, bool isSubtle = false); diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/UtiliOS.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/UtiliOS.mm index c02da2da06..3e3787b523 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/UtiliOS.mm +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/UtiliOS.mm @@ -678,3 +678,9 @@ void TextRunToRichTextElementProperties(const std::shared_ptr &textRun, } return customAction; } + +UIColor *getForegroundUIColorFromAdaptiveAttribute(std::shared_ptr const &config, ACRContainerStyle style, ForegroundColor textColor, bool isSubtle) +{ + const std::string str = config->GetForegroundColor([ACOHostConfig getSharedContainerStyle:style], textColor, isSubtle); + return [ACOHostConfig convertHexColorCodeToUIColor:str]; +}