Commit 5a20e0cb authored by leichao.gao's avatar leichao.gao

update 请求失败

parent 9bc2e765
package com.base.datarecovery.ads; package com.base.datarecovery.ads;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.util.Log;
import com.base.datarecovery.MyApplication;
import com.base.datarecovery.help.BaseApplication; import com.base.datarecovery.help.BaseApplication;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
...@@ -12,26 +14,35 @@ import java.util.Locale; ...@@ -12,26 +14,35 @@ import java.util.Locale;
public class AdDisplayUtils { public class AdDisplayUtils {
private static final int DEFAULT_MAX_AD_DISPLAY_COUNT = 45; // 总广告展示次数限制默认值 private static final int DEFAULT_MAX_AD_DISPLAY_COUNT = 45; // 总广告展示次数限制默认值
private static final int DEFAULT_MAX_AD_CLICK_COUNT = 10; // 单个广告点击次数限制默认值 private static final int DEFAULT_MAX_AD_CLICK_COUNT = 10; // 单个广告点击次数限制默认值
private static final int DEFAULT_MAX_AD_REQUEST_FAIL_COUNT = 20; // 单个广告点击次数限制默认值
private static final String AD_PREFS_NAME = "ad_prefs"; // SharedPreferences 名称 private static final String AD_PREFS_NAME = "ad_prefs"; // SharedPreferences 名称
private static final String AD_DISPLAY_COUNT_KEY = "ad_display_count"; // 广告展示次数的键 private static final String AD_DISPLAY_COUNT_KEY = "ad_display_count"; // 广告展示次数的键
private static final String AD_CLICK_COUNT_KEY = "ad_click_count"; // 广告点击次数的键 private static final String AD_CLICK_COUNT_KEY = "ad_click_count"; // 广告点击次数的键
private static final String MAX_AD_DISPLAY_COUNT_KEY = "max_ad_display_count"; // 总广告展示次数限制的键 private static final String MAX_AD_DISPLAY_COUNT_KEY = "max_ad_display_count"; // 总广告展示次数限制的键
private static final String MAX_AD_CLICK_COUNT_KEY = "max_ad_click_count"; // 单个广告点击次数限制的键 private static final String MAX_AD_CLICK_COUNT_KEY = "max_ad_click_count"; // 单个广告点击次数限制的键
private static final String MAX_AD_REQUEST_FAIL_COUNT_KEY = "max_ad_request_fail_count"; // 单个广告点击次数限制的键
private static final String AD_REQUEST_FAIL_COUNT_KEY = "ad_request_fail_count"; // 单个广告点击次数限制的键
private static AdDisplayUtils instance; // 单例对象 private static AdDisplayUtils instance; // 单例对象
private int adDisplayCount = 0; // 当前广告展示次数 private int adDisplayCount = 0; // 当前广告展示次数
private int adClickCount = 0; // 当前广告点击次数 private int adClickCount = 0; // 当前广告点击次数
private int maxAdDisplayCount; // 总广告展示次数限制 private int maxAdDisplayCount; // 总广告展示次数限制
private int maxAdClickCount; // 单个广告点击次数限制 private int maxAdClickCount; // 单个广告点击次数限制
private int maxAdRequestFailCount; // 请求失败总
private int adRequestFailCount = 0; // 请求失败当前
private String currentDate; // 当前日期 private String currentDate; // 当前日期
private AdDisplayUtils() { private AdDisplayUtils() {
currentDate = getCurrentDate(); currentDate = getCurrentDate();
SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0); SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
maxAdDisplayCount = prefs.getInt(MAX_AD_DISPLAY_COUNT_KEY, DEFAULT_MAX_AD_DISPLAY_COUNT); maxAdDisplayCount = prefs.getInt(MAX_AD_DISPLAY_COUNT_KEY, DEFAULT_MAX_AD_DISPLAY_COUNT);
maxAdClickCount = prefs.getInt(MAX_AD_CLICK_COUNT_KEY, DEFAULT_MAX_AD_CLICK_COUNT); maxAdClickCount = prefs.getInt(MAX_AD_CLICK_COUNT_KEY, DEFAULT_MAX_AD_CLICK_COUNT);
maxAdRequestFailCount = prefs.getInt(MAX_AD_REQUEST_FAIL_COUNT_KEY, DEFAULT_MAX_AD_REQUEST_FAIL_COUNT);
adDisplayCount = prefs.getInt(getAdDisplayCountKey(), 0); adDisplayCount = prefs.getInt(getAdDisplayCountKey(), 0);
adClickCount = prefs.getInt(getAdClickCountKey(), 0); adClickCount = prefs.getInt(getAdClickCountKey(), 0);
adRequestFailCount = prefs.getInt(getAdRequestFailCountKey(), 0);
} }
public static synchronized AdDisplayUtils getInstance() { public static synchronized AdDisplayUtils getInstance() {
...@@ -45,12 +56,16 @@ public class AdDisplayUtils { ...@@ -45,12 +56,16 @@ public class AdDisplayUtils {
return adDisplayCount < getMaxAdDisplayCount(); return adDisplayCount < getMaxAdDisplayCount();
} }
public boolean shouldIncrementRequestFailAd() {
return adRequestFailCount < getMaxAdRequestFailCount();
}
public boolean shouldIncrementClickCount() { public boolean shouldIncrementClickCount() {
return adClickCount < getMaxAdClickCount(); return adClickCount < getMaxAdClickCount();
} }
public boolean shouldShowAd() { public boolean shouldShowAd() {
return shouldDisplayAd() || shouldIncrementClickCount(); return shouldDisplayAd() && shouldIncrementClickCount() && shouldIncrementRequestFailAd();
} }
public void incrementAdDisplayCount() { public void incrementAdDisplayCount() {
...@@ -71,6 +86,17 @@ public class AdDisplayUtils { ...@@ -71,6 +86,17 @@ public class AdDisplayUtils {
saveAdClickCount(); saveAdClickCount();
} }
public void incrementAdRequestFailCount() {
if (!currentDate.equals(getCurrentDate())) {
currentDate = getCurrentDate();
adRequestFailCount = 0;
}
adRequestFailCount++;
saveAdRequestFailCount();
Log.d("glc","广告请求失败:"+adRequestFailCount);
}
public void setAdClickCount(int s) { public void setAdClickCount(int s) {
if (!currentDate.equals(getCurrentDate())) { if (!currentDate.equals(getCurrentDate())) {
currentDate = getCurrentDate(); currentDate = getCurrentDate();
...@@ -139,4 +165,31 @@ public class AdDisplayUtils { ...@@ -139,4 +165,31 @@ public class AdDisplayUtils {
editor.putInt(MAX_AD_CLICK_COUNT_KEY, maxAdClickCount); editor.putInt(MAX_AD_CLICK_COUNT_KEY, maxAdClickCount);
editor.apply(); editor.apply();
} }
public int getMaxAdRequestFailCount() {
return maxAdRequestFailCount;
}
public void setMaxAdRequestFailCount(int maxAdRequestFailCount) {
this.maxAdRequestFailCount = maxAdRequestFailCount;
saveMaxAdRequestFailCount();
}
private void saveMaxAdRequestFailCount() {
SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(MAX_AD_REQUEST_FAIL_COUNT_KEY, maxAdRequestFailCount);
editor.apply();
}
private void saveAdRequestFailCount() {
SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(getAdRequestFailCountKey(), adRequestFailCount);
editor.apply();
}
private String getAdRequestFailCountKey() {
return AD_REQUEST_FAIL_COUNT_KEY + "_" + currentDate;
}
} }
...@@ -96,6 +96,9 @@ object NewComUtils { ...@@ -96,6 +96,9 @@ object NewComUtils {
) )
AdDisplayUtils.getInstance().maxAdClickCount = AdDisplayUtils.getInstance().maxAdClickCount =
AppPreferences.getInstance().getString("adClickCount", "10").toInt() AppPreferences.getInstance().getString("adClickCount", "10").toInt()
AdDisplayUtils.getInstance().maxAdRequestFailCount =
AppPreferences.getInstance().getString("adRequestFailCount", "20").toInt()
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment