package com.jdroid.android.google.admob;
import android.preference.PreferenceManager;
import com.jdroid.android.application.AbstractApplication;
import com.jdroid.android.context.AbstractAppContext;
import com.jdroid.android.context.UsageStats;
import com.jdroid.android.firebase.remoteconfig.FirebaseRemoteConfigHelper;
import com.jdroid.java.collections.Sets;
import com.jdroid.java.date.DateUtils;
import com.jdroid.java.utils.StringUtils;
import java.util.Set;
public class AdMobAppContext extends AbstractAppContext {
public static final String TEST_AD_UNIT_ID_ENABLED = "TEST_AD_UNIT_ID_ENABLED";
public Boolean areAdsEnabledByDefault() {
return FirebaseRemoteConfigHelper.getBoolean(AdMobRemoteConfigParameter.ADS_ENABLED);
}
/**
* @return Whether the application has ads enabled or not
*/
public Boolean areAdsEnabled() {
Boolean prefEnabled = PreferenceManager.getDefaultSharedPreferences(AbstractApplication.get()).getBoolean(AdMobRemoteConfigParameter.ADS_ENABLED.getKey(), areAdsEnabledByDefault());
Boolean enoughDaysSinceFirstAppLoad = DateUtils.millisecondsToDays(UsageStats.getFirstAppLoadTimestamp()) >= getMinDaysSinceFirstAppLoad();
Boolean enoughAppLoads = UsageStats.getAppLoads() >= getMinAppLoadsToDisplayAds() ;
return prefEnabled && enoughDaysSinceFirstAppLoad && enoughAppLoads;
}
protected Long getMinAppLoadsToDisplayAds() {
return 5L;
}
protected Long getMinDaysSinceFirstAppLoad() {
return 7L;
}
public Boolean isTestAdUnitIdEnabled() {
return PreferenceManager.getDefaultSharedPreferences(AbstractApplication.get()).getBoolean(TEST_AD_UNIT_ID_ENABLED, true);
}
/**
* @return The MD5-hashed ID of the devices that should display mocked ads
*/
public Set<String> getTestDevicesIds() {
String testDevicesIds = getBuildConfigValue("ADS_TEST_DEVICES_IDS", null);
return testDevicesIds != null ? Sets.newHashSet(StringUtils.splitToCollectionWithCommaSeparator(testDevicesIds)) : Sets.<String>newHashSet();
}
/**
* @return The AdMob Publisher ID
*/
public String getDefaultAdUnitId() {
return FirebaseRemoteConfigHelper.getString(AdMobRemoteConfigParameter.DEFAULT_AD_UNIT_ID);
}
public String getAdMobAppId() {
return FirebaseRemoteConfigHelper.getString(AdMobRemoteConfigParameter.ADMOB_APP_ID);
}
}