dialog_pp_flutter 1.0.25 copy "dialog_pp_flutter: ^1.0.25" to clipboard
dialog_pp_flutter: ^1.0.25 copied to clipboard

Perosnal Use

example/lib/main.dart

import 'dart:async';

import 'package:dialog_pp_flutter/api_call.dart';
import 'package:dialog_pp_flutter/dialog_pp_flutter.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

Future<void> main() async {
  await PPDialog.newVersionCode();
  await await advertisementDrawerApi("");
  await fetchAlbum();
  await advertisement_UpdateAppList_Api(
      modelApi!.comBitlinksBrazilIptvM3Ulist.appUpdate.appList);
  await advertisementDrawerApi(modelApi!.comBitlinksBrazilIptvM3Ulist.moreLiveApps);
  runApp(ScreenUtilInit(
      builder: (context, child) => const GetMaterialApp(
            home: MYYYYY(),
          )));
}

class MYYYYY extends StatefulWidget {
  const MYYYYY({Key? key}) : super(key: key);

  @override
  State<MYYYYY> createState() => _MYYYYYState();
}

class _MYYYYYState extends State<MYYYYY> {
  ondansd() async {
    await advertisementDrawerApi("");
    Future.delayed(const Duration(seconds: 3), () {
      Get.to(const MyApp());
    });
  }

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    // PPDialog.internetDialogCheck(callback: );
    ondansd();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("asd6as56d456as4d56as4d56as4d56as4d56as4d")),
    );
  }
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  checkVersion() async {}

  onCompletetete() {
    print("done done");
  }

  ondansd() {
    print("connection done done go go  gogogogogo");
  }

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    PPDialog.termsConditions(context,
        privacyPolicyUrl:
            "https://pages.flycricket.io/ipl-live-2022/terms.html",
        termsConditionUrl:
            "https://pages.flycricket.io/ipl-live-2022/terms.html",
        isPrivacyPolicy: true);
  }

  @override
  Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: () {
        return Future.value(false);
      },
      child: Scaffold(
        drawer: PPDialog.drawerScreen(
            appLogo: "logo",
            privacyPolicy: "privacyPolicy",
            feedbackEmailId: "feedbackEmailId",
            emailSubject: "emailSubject",
            emailMessage: "emailMessage", apiAppVersionCode: 50),
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: InkWell(
              onTap: () {
// PPDialog.rateDialogCustom(context, logoApp: 'logoApp');
/* PPDialog.updateDialog(context,
                    isUpdateRequired: modelApi!
                        .comBitlinksBrazilIptvM3Ulist.appUpdate.isUpdateRequire,
                    isPopup: modelApi!
                        .comBitlinksBrazilIptvM3Ulist.appUpdate.isPopupDialog,
                    apiVersionCode: modelApi!.comBitlinksBrazilIptvM3Ulist
                        .appUpdate.updatedVersionCode,
                    adSettingAppVersionCode: modelApi!
                        .comBitlinksBrazilIptvM3Ulist.adSetting.appVersionCode,
                    shuffle: modelApi!
                        .comBitlinksBrazilIptvM3Ulist.appUpdate.isShuffle,
                    clickCount: modelApi!.comBitlinksBrazilIptvM3Ulist.appUpdate
                        .changeDialogdataClickCount);*/
                /*PPDialog.rewardDialog(rewardMessage: "kkkkkkkksdfsdfhgadhjsfkadshfjkhjsdgfgsdhjfghjgsdfhjgdsj", onTap: () {},);*/
              PPDialog.rateDialogCustom(context, logoApp: "logoApp");

              },
              child: const Text('dsfdsfdsfn\ndsfdsf\ndfsgdsfds\ndfdsfdsfdsfds')),
        ),
      ),
    );
  }
}

Settings? modelApi;

Future<Settings?> fetchAlbum() async {
  final response = await http.get(Uri.parse(
      "https://gitlab.com/ks.bitcoding/test_random-appupdate-list/-/raw/main/test.json"));
  if (response.statusCode == 200) {
    return modelApi = Settings.fromJson(jsonDecode(response.body));
  } else {
    throw Exception('Failed to load album');
  }
}

Settings settingsFromJson(String str) => Settings.fromJson(json.decode(str));

String settingsToJson(Settings data) => json.encode(data.toJson());

class Settings {
  Settings({
    required this.comBitlinksBrazilIptvM3Ulist,
  });

  ComBitlinksBrazilIptvM3Ulist comBitlinksBrazilIptvM3Ulist;

  factory Settings.fromJson(Map<String, dynamic> json) => Settings(
        comBitlinksBrazilIptvM3Ulist: ComBitlinksBrazilIptvM3Ulist.fromJson(
            json["com.bitlinks.brazil.iptv.m3ulist"]),
      );

  Map<String, dynamic> toJson() => {
        "com.bitlinks.brazil.iptv.m3ulist":
            comBitlinksBrazilIptvM3Ulist.toJson(),
      };
}

class ComBitlinksBrazilIptvM3Ulist {
  ComBitlinksBrazilIptvM3Ulist({
    required this.adsSequence,
    required this.moreAppUrl,
    required this.extraUrl,
    required this.moreLiveApps,
    required this.iptvPlayerUrl,
    required this.adSetting,
    required this.appUpdate,
    required this.exitDialog,
    required this.rewardDialog,
    required this.aboutApp,
    required this.rateApp,
    required this.shareApp,
    required this.privacyPolicy,
    required this.termsOfUse,
    required this.errorReport,
    required this.feedbackSupport,
    required this.googleAds,
    required this.facebookAds,
    required this.customAds,
    required this.appLovin,
    required this.unityAds,
  });

  List<String> adsSequence;
  String moreAppUrl;
  String extraUrl;
  String moreLiveApps;
  String iptvPlayerUrl;
  AdSetting adSetting;
  AppUpdate appUpdate;
  ExitDialog exitDialog;
  RewardDialog rewardDialog;
  AboutApp aboutApp;
  RateApp rateApp;
  ShareApp shareApp;
  PrivacyPolicy privacyPolicy;
  TermsOfUse termsOfUse;
  ErrorReport errorReport;
  FeedbackSupport feedbackSupport;
  Ads googleAds;
  Ads facebookAds;
  CustomAds customAds;
  AppLovin appLovin;
  UnityAds unityAds;

  factory ComBitlinksBrazilIptvM3Ulist.fromJson(Map<String, dynamic> json) =>
      ComBitlinksBrazilIptvM3Ulist(
        adsSequence: List<String>.from(json["ads_sequence"].map((x) => x)),
        moreAppUrl: json["more_app_url"],
        extraUrl: json["extra_url"],
        moreLiveApps: json["more_live_apps"],
        iptvPlayerUrl: json["iptv_player_url"],
        adSetting: AdSetting.fromJson(json["ad_setting"]),
        appUpdate: AppUpdate.fromJson(json["app_update"]),
        exitDialog: ExitDialog.fromJson(json["exit_dialog"]),
        rewardDialog: RewardDialog.fromJson(json["reward_dialog"]),
        aboutApp: AboutApp.fromJson(json["About_App"]),
        rateApp: RateApp.fromJson(json["rate_app"]),
        shareApp: ShareApp.fromJson(json["share_app"]),
        privacyPolicy: PrivacyPolicy.fromJson(json["privacy_policy"]),
        termsOfUse: TermsOfUse.fromJson(json["terms_of_use"]),
        errorReport: ErrorReport.fromJson(json["error_report"]),
        feedbackSupport: FeedbackSupport.fromJson(json["feedback_support"]),
        googleAds: Ads.fromJson(json["google_ads"]),
        facebookAds: Ads.fromJson(json["facebook_ads"]),
        customAds: CustomAds.fromJson(json["custom_ads"]),
        appLovin: AppLovin.fromJson(json["app_lovin"]),
        unityAds: UnityAds.fromJson(json["unity_ads"]),
      );

  Map<String, dynamic> toJson() => {
        "ads_sequence": List<dynamic>.from(adsSequence.map((x) => x)),
        "more_app_url": moreAppUrl,
        "extra_url": extraUrl,
        "more_live_apps": moreLiveApps,
        "iptv_player_url": iptvPlayerUrl,
        "ad_setting": adSetting.toJson(),
        "app_update": appUpdate.toJson(),
        "exit_dialog": exitDialog.toJson(),
        "reward_dialog": rewardDialog.toJson(),
        "About_App": aboutApp.toJson(),
        "rate_app": rateApp.toJson(),
        "share_app": shareApp.toJson(),
        "privacy_policy": privacyPolicy.toJson(),
        "terms_of_use": termsOfUse.toJson(),
        "error_report": errorReport.toJson(),
        "feedback_support": feedbackSupport.toJson(),
        "google_ads": googleAds.toJson(),
        "facebook_ads": facebookAds.toJson(),
        "custom_ads": customAds.toJson(),
        "app_lovin": appLovin.toJson(),
        "unity_ads": unityAds.toJson(),
      };
}

class AboutApp {
  AboutApp({
    required this.isOverride,
    required this.isAboutApp,
    required this.aboutTitle,
    required this.aboutMessage,
    required this.registrationDetail,
    required this.versionDetail,
  });

  bool isOverride;
  bool isAboutApp;
  String aboutTitle;
  String aboutMessage;
  String registrationDetail;
  String versionDetail;

  factory AboutApp.fromJson(Map<String, dynamic> json) => AboutApp(
        isOverride: json["is_override"],
        isAboutApp: json["is_about_app"],
        aboutTitle: json["about_title"],
        aboutMessage: json["about_message"],
        registrationDetail: json["registration_detail"],
        versionDetail: json["version_detail"],
      );

  Map<String, dynamic> toJson() => {
        "is_override": isOverride,
        "is_about_app": isAboutApp,
        "about_title": aboutTitle,
        "about_message": aboutMessage,
        "registration_detail": registrationDetail,
        "version_detail": versionDetail,
      };
}

class AdSetting {
  AdSetting({
    required this.appVersionCode,
    required this.isFullAds,
    required this.onesignalId,
    required this.adsLoadingText,
    required this.globalIntraIntervalClick,
    required this.interstitialAdTimeInterval,
  });

  int appVersionCode;
  bool isFullAds;
  String onesignalId;
  String adsLoadingText;
  int globalIntraIntervalClick;
  int interstitialAdTimeInterval;

  factory AdSetting.fromJson(Map<String, dynamic> json) => AdSetting(
        appVersionCode: json["app_version_code"],
        isFullAds: json["is_full_ads"],
        onesignalId: json["onesignal_id"],
        adsLoadingText: json["ads_loading_text"],
        globalIntraIntervalClick: json["global_intra_interval_click"],
        interstitialAdTimeInterval: json["interstitial_ad_time_interval"],
      );

  Map<String, dynamic> toJson() => {
        "app_version_code": appVersionCode,
        "is_full_ads": isFullAds,
        "onesignal_id": onesignalId,
        "ads_loading_text": adsLoadingText,
        "global_intra_interval_click": globalIntraIntervalClick,
        "interstitial_ad_time_interval": interstitialAdTimeInterval,
      };
}

class AppLovin {
  AppLovin({
    required this.sdkKey,
    required this.isUnlimitedAds,
    required this.idUnitBanner,
    required this.idUnitIntra,
    required this.idUnitNative,
    required this.idUnitOpen,
    required this.idUnitNativeMultiple,
    required this.rewaredAdsUnitId,
    required this.isBannerAds,
    required this.isInterstitialAds,
    required this.isOpenAds,
    required this.isNativeAds,
    required this.isRewaredAds,
  });

  String sdkKey;
  bool isUnlimitedAds;
  String idUnitBanner;
  String idUnitIntra;
  String idUnitNative;
  String idUnitOpen;
  IdUnitNativeMultiple idUnitNativeMultiple;
  String rewaredAdsUnitId;
  bool isBannerAds;
  bool isInterstitialAds;
  bool isOpenAds;
  bool isNativeAds;
  bool isRewaredAds;

  factory AppLovin.fromJson(Map<String, dynamic> json) => AppLovin(
        sdkKey: json["sdk_key"],
        isUnlimitedAds: json["is_unlimited_ads"],
        idUnitBanner: json["id_unit_banner"],
        idUnitIntra: json["id_unit_intra"],
        idUnitNative: json["id_unit_native"],
        idUnitOpen: json["id_unit_open"],
        idUnitNativeMultiple:
            IdUnitNativeMultiple.fromJson(json["id_unit_native_multiple"]),
        rewaredAdsUnitId: json["rewared_ads_unit_id"],
        isBannerAds: json["is_banner_ads"],
        isInterstitialAds: json["is_interstitial_ads"],
        isOpenAds: json["is_open_ads"],
        isNativeAds: json["is_native_ads"],
        isRewaredAds: json["is_rewared_ads"],
      );

  Map<String, dynamic> toJson() => {
        "sdk_key": sdkKey,
        "is_unlimited_ads": isUnlimitedAds,
        "id_unit_banner": idUnitBanner,
        "id_unit_intra": idUnitIntra,
        "id_unit_native": idUnitNative,
        "id_unit_open": idUnitOpen,
        "id_unit_native_multiple": idUnitNativeMultiple.toJson(),
        "rewared_ads_unit_id": rewaredAdsUnitId,
        "is_banner_ads": isBannerAds,
        "is_interstitial_ads": isInterstitialAds,
        "is_open_ads": isOpenAds,
        "is_native_ads": isNativeAds,
        "is_rewared_ads": isRewaredAds,
      };
}

class IdUnitNativeMultiple {
  IdUnitNativeMultiple({
    required this.small,
    required this.medium,
    required this.manual,
  });

  String small;
  String medium;
  String manual;

  factory IdUnitNativeMultiple.fromJson(Map<String, dynamic> json) =>
      IdUnitNativeMultiple(
        small: json["small"],
        medium: json["medium"],
        manual: json["manual"],
      );

  Map<String, dynamic> toJson() => {
        "small": small,
        "medium": medium,
        "manual": manual,
      };
}

class AppUpdate {
  AppUpdate({
    required this.isPopupDialog,
    required this.isUpdateRequire,
    required this.updatedVersionCode,
    required this.isShuffle,
    required this.changeDialogdataClickCount,
    required this.appList,
  });

  bool isPopupDialog;
  bool isUpdateRequire;
  int updatedVersionCode;
  bool isShuffle;
  int changeDialogdataClickCount;
  String appList;

  factory AppUpdate.fromJson(Map<String, dynamic> json) => AppUpdate(
        isPopupDialog: json["is_popup_dialog"],
        isUpdateRequire: json["is_update_require"],
        updatedVersionCode: json["updated_version_code"],
        isShuffle: json["is_shuffle"],
        changeDialogdataClickCount: json["change_dialogdata_click_count"],
        appList: json["app_list"],
      );

  Map<String, dynamic> toJson() => {
        "is_popup_dialog": isPopupDialog,
        "is_update_require": isUpdateRequire,
        "updated_version_code": updatedVersionCode,
        "is_shuffle": isShuffle,
        "change_dialogdata_click_count": changeDialogdataClickCount,
        "app_list": appList,
      };
}

class CustomAds {
  CustomAds({
    required this.qurekaLink,
    required this.isQurakaBanner,
    required this.isQurakaIntera,
    required this.isQurakaNative,
    required this.closeButtonToDirectWeb,
    required this.qurakaIntraImage,
    required this.qurakaNativeImage,
    required this.qurakaBannerImage,
  });

  String qurekaLink;
  bool isQurakaBanner;
  bool isQurakaIntera;
  bool isQurakaNative;
  bool closeButtonToDirectWeb;
  List<String> qurakaIntraImage;
  List<String> qurakaNativeImage;
  List<String> qurakaBannerImage;

  factory CustomAds.fromJson(Map<String, dynamic> json) => CustomAds(
        qurekaLink: json["qureka_link"],
        isQurakaBanner: json["is_quraka_banner"],
        isQurakaIntera: json["is_quraka_intera"],
        isQurakaNative: json["is_quraka_native"],
        closeButtonToDirectWeb: json["close_button_to_direct_web"],
        qurakaIntraImage:
            List<String>.from(json["quraka_intra_image"].map((x) => x)),
        qurakaNativeImage:
            List<String>.from(json["quraka_native_image"].map((x) => x)),
        qurakaBannerImage:
            List<String>.from(json["quraka_banner_image"].map((x) => x)),
      );

  Map<String, dynamic> toJson() => {
        "qureka_link": qurekaLink,
        "is_quraka_banner": isQurakaBanner,
        "is_quraka_intera": isQurakaIntera,
        "is_quraka_native": isQurakaNative,
        "close_button_to_direct_web": closeButtonToDirectWeb,
        "quraka_intra_image":
            List<dynamic>.from(qurakaIntraImage.map((x) => x)),
        "quraka_native_image":
            List<dynamic>.from(qurakaNativeImage.map((x) => x)),
        "quraka_banner_image":
            List<dynamic>.from(qurakaBannerImage.map((x) => x)),
      };
}

class ErrorReport {
  ErrorReport({
    required this.isErrorReportSupport,
    required this.emailId,
  });

  bool isErrorReportSupport;
  String emailId;

  factory ErrorReport.fromJson(Map<String, dynamic> json) => ErrorReport(
        isErrorReportSupport: json["is_error_report_support"],
        emailId: json["email_id"],
      );

  Map<String, dynamic> toJson() => {
        "is_error_report_support": isErrorReportSupport,
        "email_id": emailId,
      };
}

class ExitDialog {
  ExitDialog({
    required this.isExitRequire,
    required this.exitTitle,
    required this.exitMessage,
  });

  bool isExitRequire;
  String exitTitle;
  String exitMessage;

  factory ExitDialog.fromJson(Map<String, dynamic> json) => ExitDialog(
        isExitRequire: json["is_exit_require"],
        exitTitle: json["exit_title"],
        exitMessage: json["exit_message"],
      );

  Map<String, dynamic> toJson() => {
        "is_exit_require": isExitRequire,
        "exit_title": exitTitle,
        "exit_message": exitMessage,
      };
}

class Ads {
  Ads({
    required this.bannerAdUnitIdAndroid,
    required this.interstitialAdUnitIdAndroid,
    required this.rewaredAdsUnitId,
    required this.nativeAdsUnitIdAndroid,
    required this.isBannerAds,
    required this.isInterstitialAds,
    required this.isRewaredAds,
    required this.isNativeAds,
    required this.noOfClickInterstitial,
    required this.appOpenAdUnitIdAndroid,
    required this.nativeVideoAdsUnitIdAndroid,
    required this.isOpenAds,
  });

  String bannerAdUnitIdAndroid;
  String interstitialAdUnitIdAndroid;
  String rewaredAdsUnitId;
  String nativeAdsUnitIdAndroid;
  bool isBannerAds;
  bool isInterstitialAds;
  bool isRewaredAds;
  bool isNativeAds;
  int noOfClickInterstitial;
  String appOpenAdUnitIdAndroid;
  String nativeVideoAdsUnitIdAndroid;
  bool isOpenAds;

  factory Ads.fromJson(Map<String, dynamic> json) => Ads(
        bannerAdUnitIdAndroid: json["banner_ad_unit_id_android"],
        interstitialAdUnitIdAndroid: json["interstitial_ad_unit_id_android"],
        rewaredAdsUnitId: json["rewared_ads_unit_id"],
        nativeAdsUnitIdAndroid: json["native_ads_unit_id_android"],
        isBannerAds: json["is_banner_ads"],
        isInterstitialAds: json["is_interstitial_ads"],
        isRewaredAds: json["is_rewared_ads"],
        isNativeAds: json["is_native_ads"],
        noOfClickInterstitial: json["no_of_click_interstitial"],
        appOpenAdUnitIdAndroid: json["app_open_ad_unit_id_android"] == null
            ? ""
            : json["app_open_ad_unit_id_android"],
        nativeVideoAdsUnitIdAndroid:
            json["native_video_ads_unit_id_android"] == null
                ? ""
                : json["native_video_ads_unit_id_android"],
        isOpenAds: json["is_open_ads"] == null ? false : json["is_open_ads"],
      );

  Map<String, dynamic> toJson() => {
        "banner_ad_unit_id_android": bannerAdUnitIdAndroid,
        "interstitial_ad_unit_id_android": interstitialAdUnitIdAndroid,
        "rewared_ads_unit_id": rewaredAdsUnitId,
        "native_ads_unit_id_android": nativeAdsUnitIdAndroid,
        "is_banner_ads": isBannerAds,
        "is_interstitial_ads": isInterstitialAds,
        "is_rewared_ads": isRewaredAds,
        "is_native_ads": isNativeAds,
        "no_of_click_interstitial": noOfClickInterstitial,
        "app_open_ad_unit_id_android":
            appOpenAdUnitIdAndroid == null ? null : appOpenAdUnitIdAndroid,
        "native_video_ads_unit_id_android": nativeVideoAdsUnitIdAndroid == null
            ? null
            : nativeVideoAdsUnitIdAndroid,
        "is_open_ads": isOpenAds == null ? null : isOpenAds,
      };
}

class FeedbackSupport {
  FeedbackSupport({
    required this.isFeedbackSupport,
    required this.emailId,
    required this.feedbackTitle,
    required this.feedbackMessage,
    required this.emailSubject,
    required this.emailMessage,
  });

  bool isFeedbackSupport;
  String emailId;
  String feedbackTitle;
  String feedbackMessage;
  String emailSubject;
  String emailMessage;

  factory FeedbackSupport.fromJson(Map<String, dynamic> json) =>
      FeedbackSupport(
        isFeedbackSupport: json["is_feedback_support"],
        emailId: json["email_id"],
        feedbackTitle: json["feedback_title"],
        feedbackMessage: json["feedback_message"],
        emailSubject: json["email_subject"],
        emailMessage: json["email_message"],
      );

  Map<String, dynamic> toJson() => {
        "is_feedback_support": isFeedbackSupport,
        "email_id": emailId,
        "feedback_title": feedbackTitle,
        "feedback_message": feedbackMessage,
        "email_subject": emailSubject,
        "email_message": emailMessage,
      };
}

class PrivacyPolicy {
  PrivacyPolicy({
    required this.isPrivacyPolicy,
    required this.isSystemBrowser,
    required this.privacyPolicy,
  });

  bool isPrivacyPolicy;
  bool isSystemBrowser;
  String privacyPolicy;

  factory PrivacyPolicy.fromJson(Map<String, dynamic> json) => PrivacyPolicy(
        isPrivacyPolicy: json["is_privacy_policy"],
        isSystemBrowser: json["is_system_browser"],
        privacyPolicy: json["privacy_policy"],
      );

  Map<String, dynamic> toJson() => {
        "is_privacy_policy": isPrivacyPolicy,
        "is_system_browser": isSystemBrowser,
        "privacy_policy": privacyPolicy,
      };
}

class RateApp {
  RateApp({
    required this.isRateApp,
    required this.packageId,
    required this.rateAppUrl,
    required this.rateMessage,
  });

  bool isRateApp;
  String packageId;
  String rateAppUrl;
  String rateMessage;

  factory RateApp.fromJson(Map<String, dynamic> json) => RateApp(
        isRateApp: json["is_rate_app"],
        packageId: json["package_id"],
        rateAppUrl: json["rate_app_url"],
        rateMessage: json["rate_message"],
      );

  Map<String, dynamic> toJson() => {
        "is_rate_app": isRateApp,
        "package_id": packageId,
        "rate_app_url": rateAppUrl,
        "rate_message": rateMessage,
      };
}

class RewardDialog {
  RewardDialog({
    required this.isRewardRequire,
    required this.rewardMessage,
  });

  bool isRewardRequire;
  String rewardMessage;

  factory RewardDialog.fromJson(Map<String, dynamic> json) => RewardDialog(
        isRewardRequire: json["is_reward_require"],
        rewardMessage: json["reward_message"],
      );

  Map<String, dynamic> toJson() => {
        "is_reward_require": isRewardRequire,
        "reward_message": rewardMessage,
      };
}

class ShareApp {
  ShareApp({
    required this.isShareApp,
    required this.shareTitle,
    required this.shareMessage,
  });

  bool isShareApp;
  String shareTitle;
  String shareMessage;

  factory ShareApp.fromJson(Map<String, dynamic> json) => ShareApp(
        isShareApp: json["is_share_app"],
        shareTitle: json["share_title"],
        shareMessage: json["share_message"],
      );

  Map<String, dynamic> toJson() => {
        "is_share_app": isShareApp,
        "share_title": shareTitle,
        "share_message": shareMessage,
      };
}

class TermsOfUse {
  TermsOfUse({
    required this.isTermsOfUse,
    required this.isSystemBrowser,
    required this.termsOfUse,
  });

  bool isTermsOfUse;
  bool isSystemBrowser;
  String termsOfUse;

  factory TermsOfUse.fromJson(Map<String, dynamic> json) => TermsOfUse(
        isTermsOfUse: json["is_terms_of_use"],
        isSystemBrowser: json["is_system_browser"],
        termsOfUse: json["terms_of_use"],
      );

  Map<String, dynamic> toJson() => {
        "is_terms_of_use": isTermsOfUse,
        "is_system_browser": isSystemBrowser,
        "terms_of_use": termsOfUse,
      };
}

class UnityAds {
  UnityAds({
    required this.gameId,
    required this.isIntraAds,
    required this.isBannerAds,
    required this.isRewaredAds,
  });

  String gameId;
  bool isIntraAds;
  bool isBannerAds;
  bool isRewaredAds;

  factory UnityAds.fromJson(Map<String, dynamic> json) => UnityAds(
        gameId: json["game_id"],
        isIntraAds: json["is_intra_ads"],
        isBannerAds: json["is_banner_ads"],
        isRewaredAds: json["is_rewared_ads"],
      );

  Map<String, dynamic> toJson() => {
        "game_id": gameId,
        "is_intra_ads": isIntraAds,
        "is_banner_ads": isBannerAds,
        "is_rewared_ads": isRewaredAds,
      };
}