inAppMessageFromJsonDictionary static method

MBInAppMessage inAppMessageFromJsonDictionary(
  1. Map<String, dynamic> jsonDictionary
)

Creates and initializes an in app message object from a JSON object. @param jsonDictionary The dictionary from the JSON. @returns The in app message created.

Implementation

static MBInAppMessage inAppMessageFromJsonDictionary(
    Map<String, dynamic> jsonDictionary) {
  int id = jsonDictionary['id'];
  String styleString = jsonDictionary['style'];
  bool isBlocking = jsonDictionary['isBlocking'];
  double duration = jsonDictionary['duration'];

  String? title = jsonDictionary['title'];
  int? titleColor = jsonDictionary['titleColor'];

  String? body = jsonDictionary['body'];
  int? bodyColor = jsonDictionary['bodyColor'];

  String? image = jsonDictionary['image'];

  int? backgroundColor = jsonDictionary['backgroundColor'];

  List<MBInAppMessageButton>? buttons;
  if (jsonDictionary['buttons'] != null) {
    buttons = [];
    List<Map<String, dynamic>> buttonsDictionaries =
        List.castFrom<dynamic, Map<String, dynamic>>(
            jsonDictionary['buttons']);
    for (Map<String, dynamic> buttonDictionary in buttonsDictionaries) {
      buttons.add(
          MBInAppMessageSavingUtility._inAppMessageButtonFromJsonDictionary(
              buttonDictionary));
    }
  }

  return MBInAppMessage(
    id: id,
    style: _inAppMessageStyleForString(styleString),
    isBlocking: isBlocking,
    duration: duration,
    title: title,
    titleColor: titleColor != null ? Color(titleColor) : null,
    body: body,
    bodyColor: bodyColor != null ? Color(bodyColor) : null,
    image: image,
    backgroundColor: backgroundColor != null ? Color(backgroundColor) : null,
    buttons: buttons,
  );
}