customOptionsMap property
Consolidated Map of custom options/colors for native ad factories
Implementation
Map<String, String>? get customOptionsMap {
final Map<String, String> map = customOptions?.toMap() ?? {};
// Map normalized camelCase keys for consistency across Android and iOS factories
if (map.containsKey('bgcolor') && !map.containsKey('backgroundColor')) {
map['backgroundColor'] = map['bgcolor']!;
}
if (map.containsKey('buttoncolor') && !map.containsKey('buttonColor')) {
map['buttonColor'] = map['buttoncolor']!;
}
if (map.containsKey('buttontxtcolor') && !map.containsKey('textColor')) {
map['textColor'] = map['buttontxtcolor']!;
}
if (map.containsKey('headertextcolor') && !map.containsKey('titleColor')) {
map['titleColor'] = map['headertextcolor']!;
}
if (map.containsKey('header1textcolor') &&
!map.containsKey('bodyTextColor')) {
map['bodyTextColor'] = map['header1textcolor']!;
}
if (map.containsKey('adbadgebgcolor') &&
!map.containsKey('adBadgeBgColor')) {
map['adBadgeBgColor'] = map['adbadgebgcolor']!;
}
if (map.containsKey('adbadgetextcolor') &&
!map.containsKey('adBadgeTextColor')) {
map['adBadgeTextColor'] = map['adbadgetextcolor']!;
}
if (map.containsKey('adbadgebordercolor') &&
!map.containsKey('adBadgeBorderColor')) {
map['adBadgeBorderColor'] = map['adbadgebordercolor']!;
}
if (map.containsKey('bordercolor') && !map.containsKey('borderColor')) {
map['borderColor'] = map['bordercolor']!;
}
if (map.containsKey('iconcolor') && !map.containsKey('iconColor')) {
map['iconColor'] = map['iconcolor']!;
}
if (map.containsKey('iconbgcolor') && !map.containsKey('iconBgColor')) {
map['iconBgColor'] = map['iconbgcolor']!;
}
// Fallback to customColors sub-object if present
if (customColors != null) {
if ((customColors!.buttonColor?.isNotEmpty ?? false) &&
!map.containsKey('buttonColor')) {
map['buttonColor'] = customColors!.buttonColor!;
}
if ((customColors!.textColor?.isNotEmpty ?? false) &&
!map.containsKey('textColor')) {
map['textColor'] = customColors!.textColor!;
}
if ((customColors!.primary?.isNotEmpty ?? false) &&
!map.containsKey('titleColor')) {
map['titleColor'] = customColors!.primary!;
}
if ((customColors!.screenBackgroundColor?.isNotEmpty ?? false) &&
!map.containsKey('backgroundColor')) {
map['backgroundColor'] = customColors!.screenBackgroundColor!;
}
}
return map.isEmpty ? null : map;
}