001package com.intentsoftware.addapptr;
002
003public enum AdNetwork {
004
005    ADCOLONY("AdColony", true),
006    ADMOB("AdMob", true),
007    ADX("RTB2", "RTB2", true),
008    AMAZONHB("AmazonHB", false),
009    APPLOVIN("AppLovin", true),
010    APPNEXUS("AppNexus", true),
011    CRITEOSDK("CriteoSDK", true),
012    DFP("DFP", true),
013    EMPTY("Empty", false),
014    FACEBOOK("Facebook", true),
015    GENERICVAST("GenericVAST", false),
016    HUAWEI("Huawei", false),
017    INMOBI("Inmobi", true),
018    MOPUB("MoPub", true),
019    OGURY("Ogury", false),
020    PUBNATIVE("PubNative", true),
021    RUBICON("Rubicon", false),
022    SMAATO("Smaato", true),
023    SMARTAD("SmartAd", true),
024    SMARTADSERVERDIRECT("SmartAdServerDirect", true),
025    SPOTX("SpotX", false),
026    TEADS("Teads", false),
027    UNITYADS("Unity", "UNITY", true),
028    YANDEX("Yandex", false),
029    BLUESTACK("Bluestack", true);
030
031    private final String reportingName;
032    private final String serverConfigName;
033    private final boolean requiresSDK;
034
035    AdNetwork(String reportingName, boolean requiresSDK) {
036        this.reportingName = reportingName;
037        this.serverConfigName = this.toString();
038        this.requiresSDK = requiresSDK;
039    }
040
041    @SuppressWarnings("SameParameterValue")
042    AdNetwork(String name, String serverConfigName, boolean requiresSDK) {
043        this.reportingName = name;
044        this.serverConfigName = serverConfigName;
045        this.requiresSDK = requiresSDK;
046    }
047
048    String getReportingName() {
049        return reportingName;
050    }
051
052    boolean requiresSDK() {
053        return requiresSDK;
054    }
055
056    public static AdNetwork fromServerConfigName(String name) {
057        for (AdNetwork n : AdNetwork.values()) {
058            if (n.serverConfigName.equals(name)) {
059                return n;
060            }
061        }
062
063        return null;
064    }
065
066}