FastAppInfoDocument.fromJson constructor

FastAppInfoDocument.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory FastAppInfoDocument.fromJson(Map<String, dynamic> json) {
  final productIdentifiers = json['productIdentifiers'] as List<dynamic>?;
  final productIdentifiersSafe = <String>[];

  if (productIdentifiers != null) {
    for (final productIdentifier in productIdentifiers) {
      if (productIdentifier is String) {
        productIdentifiersSafe.add(productIdentifier);
      }
    }
  }

  final appDisclaimerLastModified =
      json['appDisclaimerLastModified'] as String?;

  final appPrivacyPolicyLastModified =
      json['appPrivacyPolicyLastModified'] as String?;

  final appTermsOfServiceLastModified =
      json['appTermsOfServiceLastModified'] as String?;

  return FastAppInfoDocument(
    // Ignore supportedLocales
    hasDisclaimer:
        json['hasDisclaimer'] as bool? ?? kFastAppSettingsHasDisclaimer,
    appName: json['appName'] as String? ?? kFastEmptyString,
    askForReviewMinLaunches: json['askForReviewMinLaunches'] as int? ??
        kFastAppSettingsAskForReviewMinLaunches,
    askForReviewMinDays: json['askForReviewMinDays'] as int? ??
        kFastAppSettingsAskForReviewMinDays,
    remindForReviewMinLaunches: json['remindForReviewMinLaunches'] as int? ??
        kFastAppSettingsRemindForReviewMinLaunches,
    remindForReviewMinDays: json['remindForReviewMinDays'] as int? ??
        kFastAppSettingsRemindForReviewMinDays,
    appVersion: json['appVersion'] as String?,
    appBuildNumber: json['appBuildNumber'] as String?,
    appAuthor: json['appAuthor'] as String?,
    appIdentifier: json['appIdentifier'] as String?,
    appTermsOfServiceUrl: json['appTermsOfServiceUrl'] as String?,
    appPrivacyPolicyUrl: json['appPrivacyPolicyUrl'] as String?,
    appDisclaimerUrl: json['appDisclaimerUrl'] as String?,
    supportEmail: json['supportEmail'] as String?,
    bugReportEmail: json['bugReportEmail'] as String?,
    facebookUrl: json['facebookUrl'] as String?,
    homepageUrl: json['homepageUrl'] as String?,
    instagramUrl: json['instagramUrl'] as String?,
    shareAppUrl: json['shareAppUrl'] as String?,
    databaseVersion: json['databaseVersion'] as int?,
    googlePlayIdentifier: json['googlePlayIdentifier'] as String?,
    appStoreIdentifier: json['appStoreIdentifier'] as String?,
    productIdentifiers: productIdentifiersSafe,
    premiumProductIdentifier: json['premiumProductIdentifier'] as String?,
    promoUrl: json['promoUrl'] as String?,
    appLaunchCounter: json['appLaunchCounter'] as int? ?? 0,
    previousDatabaseVersion: json['previousDatabaseVersion'] as int?,
    deviceLanguageCode: json['deviceLanguageCode'] as String?,
    deviceCountryCode: json['deviceCountryCode'] as String?,
    twitterUrl: json['twitterUrl'] as String?,
    appDisclaimerLastModified: appDisclaimerLastModified != null
        ? DateTime.parse(appDisclaimerLastModified)
        : null,
    appPrivacyPolicyLastModified: appPrivacyPolicyLastModified != null
        ? DateTime.parse(appPrivacyPolicyLastModified)
        : null,
    appTermsOfServiceLastModified: appTermsOfServiceLastModified != null
        ? DateTime.parse(appTermsOfServiceLastModified)
        : null,
  );
}