BrazeInAppMessage constructor

BrazeInAppMessage(
  1. String _data
)

Implementation

BrazeInAppMessage(String _data) {
  inAppMessageJsonString = _data;
  var inAppMessageJson = json.jsonDecode(_data);

  var messageJson = inAppMessageJson["message"];
  if (messageJson is String) {
    message = messageJson;
  }
  var headerJson = inAppMessageJson["header"];
  if (headerJson is String) {
    header = headerJson;
  }
  var uriJson = inAppMessageJson["uri"];
  if (uriJson is String) {
    uri = uriJson;
  }
  var imageUrlJson = inAppMessageJson["image_url"];
  if (imageUrlJson is String) {
    imageUrl = imageUrlJson;
  }
  var zippedAssetsUrlJson = inAppMessageJson["zipped_assets_url"];
  if (zippedAssetsUrlJson is String) {
    zippedAssetsUrl = zippedAssetsUrlJson;
  }
  var useWebViewJson = inAppMessageJson["use_webview"];
  if (useWebViewJson is bool) {
    useWebView = useWebViewJson;
  }
  var durationJson = inAppMessageJson["duration"];
  if (durationJson is int) {
    duration = durationJson;
  }
  var clickActionJson = inAppMessageJson["click_action"];
  if (clickActionJson is String) {
    for (ClickAction action in ClickAction.values) {
      if (action
          .toString()
          .toLowerCase()
          .endsWith(clickActionJson.toLowerCase())) {
        clickAction = action;
      }
    }
  }
  var dismissTypeJson = inAppMessageJson["message_close"];
  if (dismissTypeJson is String) {
    for (DismissType type in DismissType.values) {
      if (type
          .toString()
          .toLowerCase()
          .endsWith(dismissTypeJson.toLowerCase())) {
        dismissType = type;
      }
    }
  }
  var messageTypeJson = inAppMessageJson["type"];
  if (messageTypeJson is String) {
    for (MessageType type in MessageType.values) {
      if (type
          .toString()
          .toLowerCase()
          .endsWith(messageTypeJson.toLowerCase())) {
        messageType = type;
      }
    }
  }
  var extrasJson = inAppMessageJson["extras"];
  if (extrasJson is Map<String, dynamic>) {
    extrasJson.forEach((key, value) {
      if (extrasJson[key] is String) {
        extras[key] = value;
      }
    });
  }
  var buttonsJson = inAppMessageJson["btns"];
  if (buttonsJson is List<dynamic>) {
    for (var buttonJson in buttonsJson) {
      buttons.add(BrazeButton(buttonJson));
    }
  }
}