Commit 3ffa0b02 authored by wanglei's avatar wanglei

...

parent 55e94a3f
...@@ -50,8 +50,8 @@ class MyApplication : BaseApplication() { ...@@ -50,8 +50,8 @@ class MyApplication : BaseApplication() {
} }
} }
fun initApp(isFirst: Boolean = false) { fun initApp(isStartClick: Boolean = false) {
if (!isFirst) { if (!isStartClick) {
@Suppress("DEPRECATION") @Suppress("DEPRECATION")
FacebookSdk.sdkInitialize(applicationContext) FacebookSdk.sdkInitialize(applicationContext)
// FacebookSdk.setIsDebugEnabled(true) // FacebookSdk.setIsDebugEnabled(true)
......
...@@ -2,7 +2,6 @@ package com.base.datarecovery.ads; ...@@ -2,7 +2,6 @@ package com.base.datarecovery.ads;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.util.Log; import android.util.Log;
import com.base.datarecovery.BuildConfig; import com.base.datarecovery.BuildConfig;
import com.base.datarecovery.MyApplication; import com.base.datarecovery.MyApplication;
import com.base.datarecovery.help.BaseApplication; import com.base.datarecovery.help.BaseApplication;
...@@ -10,7 +9,6 @@ import com.base.datarecovery.utils.AppPreferences; ...@@ -10,7 +9,6 @@ import com.base.datarecovery.utils.AppPreferences;
import com.base.datarecovery.utils.EventUtils; import com.base.datarecovery.utils.EventUtils;
import com.base.datarecovery.utils.LogEx; import com.base.datarecovery.utils.LogEx;
import com.facebook.appevents.AppEventsLogger; import com.facebook.appevents.AppEventsLogger;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
...@@ -20,40 +18,37 @@ import java.util.Locale; ...@@ -20,40 +18,37 @@ import java.util.Locale;
public class AdDisplayUtils { public class AdDisplayUtils {
private String TAG = "AdDisplayUtils"; private String TAG = "AdDisplayUtils";
private static final int DEFAULT_MAX_AD_REQUEST_COUNT = 100; // 广告请求次数限制默认值 public static final int DEFAULT_MAX_AD_REQUEST_COUNT = 100; // 广告请求次数限制默认值
private static final int DEFAULT_MAX_AD_REQUEST_FAIL_COUNT = 20; // 单个广告点击次数限制默认值 public static final int DEFAULT_MAX_AD_REQUEST_FAIL_COUNT = 20; // 广告请求失败次数限制默认值
private static final int DEFAULT_MAX_AD_DISPLAY_COUNT = 45; // 总广告展示次数限制默认值 public static final int DEFAULT_MAX_AD_DISPLAY_COUNT = 45; // 总广告展示次数限制默认值
private static final int DEFAULT_MAX_AD_CLICK_COUNT = 10; // 单个广告点击次数限制默认值 public static final int DEFAULT_MAX_AD_CLICK_COUNT = 10; // 单个广告点击次数限制默认值
private static final String AD_PREFS_NAME = "ad_prefs"; // SharedPreferences 名称 private static final String AD_PREFS_NAME = "ad_prefs"; // SharedPreferences 名称
private static final String MAX_AD_DISPLAY_COUNT_KEY = "max_ad_display_count"; // 总广告展示次数限制的键 private static AdDisplayUtils instance; // 单例对象
private static final String MAX_AD_REQUEST_COUNT_KEY = "max_ad_request_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_DISPLAY_COUNT_KEY = "ad_display_count"; // 广告展示次数的键 private String currentDate; // 当前日期
private static final String AD_CLICK_COUNT_KEY = "ad_click_count"; // 广告点击次数的键
private static final String AD_REQUEST_FAIL_COUNT_KEY = "ad_request_fail_count"; // 单个广告点击次数限制的键
private static final String AD_REQUEST_COUNT_KEY = "ad_request_count";//广告请求次数
private static AdDisplayUtils instance; // 单例对象 public void saveSp() {
private int maxAdRequestCount = DEFAULT_MAX_AD_REQUEST_COUNT; // 最大广告请求次数
private int maxAdRequestFailCount = DEFAULT_MAX_AD_REQUEST_FAIL_COUNT; // 请求失败总
private int maxAdDisplayCount = DEFAULT_MAX_AD_DISPLAY_COUNT; // 总广告展示次数限制
private int maxAdClickCount = DEFAULT_MAX_AD_CLICK_COUNT; // 单个广告点击次数限制
private int adRequestCount = 0; // 当前广告请求次数 this.maxAdRequestCount = Integer.parseInt(AppPreferences.getInstance().getString("adMaxRequestCount", String.valueOf(DEFAULT_MAX_AD_REQUEST_COUNT)));
private int adRequestFailCount = 0; // 请求失败当前 saveMaxAdRequestCount();
private int adDisplayCount = 0; // 当前广告展示次数
private int adClickCount = 0; // 当前广告点击次数
this.maxAdRequestFailCount = Integer.parseInt(AppPreferences.getInstance().getString("adRequestFailCount", String.valueOf(DEFAULT_MAX_AD_REQUEST_FAIL_COUNT)));
saveMaxAdRequestFailCount();
private String currentDate; // 当前日期 this.maxAdDisplayCount = Integer.parseInt(AppPreferences.getInstance().getString("adShowCount", String.valueOf(DEFAULT_MAX_AD_DISPLAY_COUNT)));
saveMaxAdDisplayCount();
this.maxAdClickCount = Integer.parseInt(AppPreferences.getInstance().getString("adClickCount", String.valueOf(DEFAULT_MAX_AD_CLICK_COUNT)));
saveMaxAdClickCount();
}
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);
maxAdRequestCount = prefs.getInt(MAX_AD_REQUEST_COUNT_KEY, DEFAULT_MAX_AD_REQUEST_COUNT); maxAdRequestCount = prefs.getInt(MAX_AD_REQUEST_COUNT_KEY, DEFAULT_MAX_AD_REQUEST_COUNT);
maxAdRequestFailCount = prefs.getInt(MAX_AD_REQUEST_FAIL_COUNT_KEY, DEFAULT_MAX_AD_REQUEST_FAIL_COUNT); maxAdRequestFailCount = prefs.getInt(MAX_AD_REQUEST_FAIL_COUNT_KEY, DEFAULT_MAX_AD_REQUEST_FAIL_COUNT);
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);
...@@ -72,41 +67,20 @@ public class AdDisplayUtils { ...@@ -72,41 +67,20 @@ public class AdDisplayUtils {
return instance; return instance;
} }
private String getAdRequestCountKey() {
return AD_REQUEST_COUNT_KEY + "_" + currentDate;
}
public boolean shouldDisplayAd() {
return adDisplayCount < getMaxAdDisplayCount();
}
public boolean shouldIncrementRequestFailAd() {
return adRequestFailCount < getMaxAdRequestFailCount();
}
public boolean shouldIncrementClickCount() {
return adClickCount < getMaxAdClickCount();
}
public boolean shouldSendAdRequest() { public boolean shouldSendAdRequest() {
return adRequestCount < getMaxAdRequestCount(); return adRequestCount < maxAdRequestCount;
} }
public void setMaxAdRequestCount(int maxAdRequestCount) { public boolean shouldIncrementRequestFailAd() {
LogEx.INSTANCE.logDebug(TAG, "maxAdRequestCount" + maxAdRequestCount, false); return adRequestFailCount < maxAdRequestFailCount;
this.maxAdRequestCount = maxAdRequestCount;
saveMaxAdRequestCount();
} }
private void saveMaxAdRequestCount() { public boolean shouldDisplayAd() {
SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0); return adDisplayCount < maxAdDisplayCount;
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(MAX_AD_REQUEST_COUNT_KEY, maxAdRequestCount);
editor.apply();
} }
public int getMaxAdRequestCount() { public boolean shouldIncrementClickCount() {
return maxAdRequestCount; return adClickCount < maxAdClickCount;
} }
public boolean shouldShowAd(String ad_unit) { public boolean shouldShowAd(String ad_unit) {
...@@ -118,53 +92,78 @@ public class AdDisplayUtils { ...@@ -118,53 +92,78 @@ public class AdDisplayUtils {
boolean shouldIncrementRequestFailAd = shouldIncrementRequestFailAd(); boolean shouldIncrementRequestFailAd = shouldIncrementRequestFailAd();
boolean shouldSendAdRequest = shouldSendAdRequest(); boolean shouldSendAdRequest = shouldSendAdRequest();
LogEx.INSTANCE.logDebug(TAG, "shouldDisplayAd=" + shouldDisplayAd, false);
LogEx.INSTANCE.logDebug(TAG, "shouldIncrementClickCount=" + shouldIncrementClickCount, false);
LogEx.INSTANCE.logDebug(TAG, "shouldIncrementRequestFailAd=" + shouldIncrementRequestFailAd, false);
LogEx.INSTANCE.logDebug(TAG, "shouldSendAdRequest=" + shouldSendAdRequest, false); LogEx.INSTANCE.logDebug(TAG, "shouldSendAdRequest=" + shouldSendAdRequest, false);
LogEx.INSTANCE.logDebug(TAG, "shouldIncrementRequestFailAd=" + shouldIncrementRequestFailAd, false);
LogEx.INSTANCE.logDebug(TAG, "shouldIncrementClickCount=" + shouldIncrementClickCount, false);
LogEx.INSTANCE.logDebug(TAG, "shouldDisplayAd=" + shouldDisplayAd, false);
boolean s = shouldDisplayAd && shouldIncrementClickCount && shouldIncrementRequestFailAd && shouldSendAdRequest; boolean show = shouldIncrementRequestFailAd && shouldSendAdRequest && shouldDisplayAd && shouldIncrementClickCount;
if (!s) { if (!show) {
LogEx.INSTANCE.logDebug("glc", "!shouldShowAd", false); LogEx.INSTANCE.logDebug("glc", "!shouldShowAd", false);
JSONObject obj2 = new JSONObject(); JSONObject obj2 = new JSONObject();
try { try {
obj2.put("reason", "ad limit"); obj2.put("reason", "ad limit");
obj2.put("shouldSendAdRequest", shouldSendAdRequest);
obj2.put("shouldIncrementRequestFailAd", shouldIncrementRequestFailAd);
obj2.put("shouldDisplayAd", shouldDisplayAd); obj2.put("shouldDisplayAd", shouldDisplayAd);
obj2.put("shouldIncrementClickCount", shouldIncrementClickCount); obj2.put("shouldIncrementClickCount", shouldIncrementClickCount);
obj2.put("shouldIncrementRequestFailAd", shouldIncrementRequestFailAd);
obj2.put("shouldSendAdRequest", shouldSendAdRequest);
obj2.put("ad_unit", ad_unit); obj2.put("ad_unit", ad_unit);
EventUtils.INSTANCE.event("ad_show_error", null, obj2, false); EventUtils.INSTANCE.event("ad_show_error", null, obj2, false);
} catch (JSONException e) { } catch (JSONException ignored) {
} }
} }
return s; return show;
} }
public void incrementAdDisplayCount() {
//region AdRequestCount
private int maxAdRequestCount = 0; // 最大广告请求次数
private int adRequestCount = 0; // 当前广告请求次数
private static final String MAX_AD_REQUEST_COUNT_KEY = "max_ad_request_count"; // 广告请求次数限制的键
private static final String AD_REQUEST_COUNT_KEY = "ad_request_count";//广告请求次数
private void saveMaxAdRequestCount() {
SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(MAX_AD_REQUEST_COUNT_KEY, maxAdRequestCount);
editor.apply();
}
public void incrementAdRequestCount() {
if (!currentDate.equals(getCurrentDate())) { if (!currentDate.equals(getCurrentDate())) {
currentDate = getCurrentDate(); currentDate = getCurrentDate();
adDisplayCount = 0; adRequestCount = 0;
} }
adDisplayCount++; adRequestCount++;
int max = AppPreferences.getInstance().getInt("facebookAdShowEventCount", 3); saveAdRequestCount();
if (adClickCount >= max && max != -1) {
AppEventsLogger logger = AppEventsLogger.newLogger(MyApplication.context);
logger.logEvent("ad_show");
AppPreferences.getInstance().put("facebookAdShowEventCount", -1);
} }
saveAdDisplayCount();
private String getAdRequestCountKey() {
return AD_REQUEST_COUNT_KEY + "_" + currentDate;
} }
public void incrementAdClickCount() { private void saveAdRequestCount() {
if (!currentDate.equals(getCurrentDate())) { SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
currentDate = getCurrentDate(); SharedPreferences.Editor editor = prefs.edit();
adClickCount = 0; editor.putInt(getAdRequestCountKey(), adRequestCount);
editor.apply();
} }
adClickCount++; //endregion
saveAdClickCount();
//region AdRequestFailCount
private int maxAdRequestFailCount; // 请求失败总
private int adRequestFailCount = 0; // 请求失败当前
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 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();
} }
public void incrementAdRequestFailCount() { public void incrementAdRequestFailCount() {
...@@ -177,70 +176,69 @@ public class AdDisplayUtils { ...@@ -177,70 +176,69 @@ public class AdDisplayUtils {
Log.d("glc", "广告请求失败:" + adRequestFailCount); Log.d("glc", "广告请求失败:" + adRequestFailCount);
} }
private String getAdRequestFailCountKey() {
public void setAdClickCount(int s) { return AD_REQUEST_FAIL_COUNT_KEY + "_" + currentDate;
if (!currentDate.equals(getCurrentDate())) {
currentDate = getCurrentDate();
adClickCount = 0;
}
adClickCount = s;
saveAdClickCount();
}
public String getCurrentDate() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
Date currentDate = Calendar.getInstance().getTime();
return dateFormat.format(currentDate);
}
private String getAdDisplayCountKey() {
return AD_DISPLAY_COUNT_KEY + "_" + currentDate;
}
private String getAdClickCountKey() {
return AD_CLICK_COUNT_KEY + "_" + currentDate;
} }
private void saveAdDisplayCount() { private void saveAdRequestFailCount() {
SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0); SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
SharedPreferences.Editor editor = prefs.edit(); SharedPreferences.Editor editor = prefs.edit();
editor.putInt(getAdDisplayCountKey(), adDisplayCount); editor.putInt(getAdRequestFailCountKey(), adRequestFailCount);
editor.apply(); editor.apply();
} }
//endregion
private void saveAdClickCount() { //region AdDisplayCount
private int maxAdDisplayCount; // 总广告展示次数限制
private int adDisplayCount = 0; // 当前广告展示次数
private static final String MAX_AD_DISPLAY_COUNT_KEY = "max_ad_display_count"; // 总广告展示次数限制的键
private static final String AD_DISPLAY_COUNT_KEY = "ad_display_count"; // 广告展示次数的键
private void saveMaxAdDisplayCount() {
SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0); SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
SharedPreferences.Editor editor = prefs.edit(); SharedPreferences.Editor editor = prefs.edit();
editor.putInt(getAdClickCountKey(), adClickCount); editor.putInt(MAX_AD_DISPLAY_COUNT_KEY, maxAdDisplayCount);
editor.apply(); editor.apply();
} }
private int getMaxAdDisplayCount() { public void incrementAdDisplayCount() {
return maxAdDisplayCount; if (!currentDate.equals(getCurrentDate())) {
currentDate = getCurrentDate();
adDisplayCount = 0;
} }
adDisplayCount++;
public void setMaxAdDisplayCount(int maxAdDisplayCount) {
LogEx.INSTANCE.logDebug(TAG, "maxAdDisplayCount" + maxAdDisplayCount, false); int max = AppPreferences.getInstance().getInt("facebookAdShowEventCount", 3);
this.maxAdDisplayCount = maxAdDisplayCount; if (adClickCount >= max && max != -1) {
saveMaxAdDisplayCount(); AppEventsLogger logger = AppEventsLogger.newLogger(MyApplication.context);
logger.logEvent("ad_show");
AppPreferences.getInstance().put("facebookAdShowEventCount", -1);
} }
public int getMaxAdClickCount() { saveAdDisplayCount();
return maxAdClickCount;
} }
public void setMaxAdClickCount(int maxAdClickCount) {
LogEx.INSTANCE.logDebug(TAG, "maxAdClickCount" + maxAdClickCount, false); private String getAdDisplayCountKey() {
this.maxAdClickCount = maxAdClickCount; return AD_DISPLAY_COUNT_KEY + "_" + currentDate;
saveMaxAdClickCount();
} }
private void saveMaxAdDisplayCount() { private void saveAdDisplayCount() {
SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0); SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
SharedPreferences.Editor editor = prefs.edit(); SharedPreferences.Editor editor = prefs.edit();
editor.putInt(MAX_AD_DISPLAY_COUNT_KEY, maxAdDisplayCount); editor.putInt(getAdDisplayCountKey(), adDisplayCount);
editor.apply(); editor.apply();
} }
//endregion
//region AdClickCount
public int maxAdClickCount; // 单个广告点击次数限制
private int adClickCount = 0; // 当前广告点击次数
private static final String MAX_AD_CLICK_COUNT_KEY = "max_ad_click_count"; // 单个广告点击次数限制的键
private static final String AD_CLICK_COUNT_KEY = "ad_click_count"; // 广告点击次数的键
private void saveMaxAdClickCount() { private void saveMaxAdClickCount() {
SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0); SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
...@@ -249,48 +247,34 @@ public class AdDisplayUtils { ...@@ -249,48 +247,34 @@ public class AdDisplayUtils {
editor.apply(); editor.apply();
} }
public int getMaxAdRequestFailCount() { public void incrementAdClickCount() {
return maxAdRequestFailCount; LogEx.INSTANCE.logDebug(TAG, "incrementAdClickCount", false);
if (!currentDate.equals(getCurrentDate())) {
currentDate = getCurrentDate();
adClickCount = 0;
} }
adClickCount++;
public void setMaxAdRequestFailCount(int maxAdRequestFailCount) { saveAdClickCount();
LogEx.INSTANCE.logDebug(TAG, "maxAdRequestFailCount" + maxAdRequestFailCount, false);
this.maxAdRequestFailCount = maxAdRequestFailCount;
saveMaxAdRequestFailCount();
} }
private void saveMaxAdRequestFailCount() { private String getAdClickCountKey() {
SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0); return AD_CLICK_COUNT_KEY + "_" + currentDate;
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(MAX_AD_REQUEST_FAIL_COUNT_KEY, maxAdRequestFailCount);
editor.apply();
} }
private void saveAdRequestFailCount() { private void saveAdClickCount() {
SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0); SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
SharedPreferences.Editor editor = prefs.edit(); SharedPreferences.Editor editor = prefs.edit();
editor.putInt(getAdRequestFailCountKey(), adRequestFailCount); editor.putInt(getAdClickCountKey(), adClickCount);
editor.apply(); editor.apply();
LogEx.INSTANCE.logDebug(TAG, "adClickCount=" + adClickCount, false);
} }
//endregion
public String getCurrentDate() {
public void incrementAdRequestCount() { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
if (!currentDate.equals(getCurrentDate())) { Date currentDate = Calendar.getInstance().getTime();
currentDate = getCurrentDate(); return dateFormat.format(currentDate);
adRequestCount = 0;
}
adRequestCount++;
saveAdRequestCount();
} }
private void saveAdRequestCount() {
SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(getAdRequestCountKey(), adRequestCount);
editor.apply();
}
private String getAdRequestFailCountKey() {
return AD_REQUEST_FAIL_COUNT_KEY + "_" + currentDate;
}
} }
package com.base.datarecovery.ads.admob
import com.base.datarecovery.ads.AdDisplayUtils
import com.base.datarecovery.utils.ActivityManagerUtils
object AdmobCommonUtils {
private var lastAd: Any? = null
private var maxMultiClick = 20
private var multiClick = 0
fun isMultiClick(currentAd: Any?) {
if (currentAd == null) {
return
}
if (lastAd == currentAd) {
multiClick++
if (multiClick >= maxMultiClick) {
AdDisplayUtils.getInstance()
.setAdClickCount(AdDisplayUtils.getInstance().maxAdClickCount)
ActivityManagerUtils.getInstance().finishAllActivity()
return
}
} else {
multiClick = 0
}
lastAd = currentAd
}
}
\ No newline at end of file
...@@ -8,13 +8,11 @@ import com.base.datarecovery.BuildConfig ...@@ -8,13 +8,11 @@ import com.base.datarecovery.BuildConfig
import com.base.datarecovery.R import com.base.datarecovery.R
import com.base.datarecovery.ads.AdDisplayUtils import com.base.datarecovery.ads.AdDisplayUtils
import com.base.datarecovery.ads.AdmobMaxHelper.lastShowedOnHiddenTime import com.base.datarecovery.ads.AdmobMaxHelper.lastShowedOnHiddenTime
import com.base.datarecovery.ads.admob.AdmobCommonUtils.isMultiClick
import com.base.datarecovery.ads.admob.AdmobEvent.clickAd import com.base.datarecovery.ads.admob.AdmobEvent.clickAd
import com.base.datarecovery.ads.admob.AdmobEvent.pullAd import com.base.datarecovery.ads.admob.AdmobEvent.pullAd
import com.base.datarecovery.ads.admob.AdmobEvent.showAd import com.base.datarecovery.ads.admob.AdmobEvent.showAd
import com.base.datarecovery.help.BaseApplication import com.base.datarecovery.help.BaseApplication
import com.base.datarecovery.help.ConfigHelper import com.base.datarecovery.help.ConfigHelper
import com.base.datarecovery.utils.AppPreferences
import com.base.datarecovery.utils.EventUtils import com.base.datarecovery.utils.EventUtils
import com.base.datarecovery.view.CustomDialog import com.base.datarecovery.view.CustomDialog
import com.google.android.gms.ads.AdError import com.google.android.gms.ads.AdError
...@@ -169,7 +167,6 @@ object AdmobInterstitialUtils { ...@@ -169,7 +167,6 @@ object AdmobInterstitialUtils {
override fun onAdClicked() { override fun onAdClicked() {
clickAd(thisInterAd?.responseInfo, "interAd") clickAd(thisInterAd?.responseInfo, "interAd")
AdDisplayUtils.getInstance().incrementAdClickCount() AdDisplayUtils.getInstance().incrementAdClickCount()
isMultiClick(thisInterAd)
} }
override fun onAdDismissedFullScreenContent() { override fun onAdDismissedFullScreenContent() {
......
...@@ -6,7 +6,6 @@ import androidx.core.view.isVisible ...@@ -6,7 +6,6 @@ import androidx.core.view.isVisible
import com.base.datarecovery.BuildConfig import com.base.datarecovery.BuildConfig
import com.base.datarecovery.R import com.base.datarecovery.R
import com.base.datarecovery.ads.AdDisplayUtils import com.base.datarecovery.ads.AdDisplayUtils
import com.base.datarecovery.ads.admob.AdmobCommonUtils.isMultiClick
import com.base.datarecovery.ads.admob.AdmobEvent.clickAd import com.base.datarecovery.ads.admob.AdmobEvent.clickAd
import com.base.datarecovery.ads.admob.AdmobEvent.pullAd import com.base.datarecovery.ads.admob.AdmobEvent.pullAd
import com.base.datarecovery.ads.admob.AdmobEvent.showAd import com.base.datarecovery.ads.admob.AdmobEvent.showAd
...@@ -64,11 +63,9 @@ object AdmobNativeUtils { ...@@ -64,11 +63,9 @@ object AdmobNativeUtils {
}.withAdListener(object : AdListener() { }.withAdListener(object : AdListener() {
override fun onAdClicked() { override fun onAdClicked() {
clickAd(nativeAd?.responseInfo, "nativeAd") clickAd(nativeAd?.responseInfo, "nativeAd")
isMultiClick(nativeAd)
} }
override fun onAdFailedToLoad(p0: LoadAdError) { override fun onAdFailedToLoad(p0: LoadAdError) {
AdDisplayUtils.getInstance().incrementAdRequestFailCount()
LogEx.logDebug(TAG, "onAdFailedToLoad=${p0.message}") LogEx.logDebug(TAG, "onAdFailedToLoad=${p0.message}")
nativeAd = null nativeAd = null
isLoading = false isLoading = false
......
...@@ -3,7 +3,6 @@ package com.base.datarecovery.ads.admob ...@@ -3,7 +3,6 @@ package com.base.datarecovery.ads.admob
import android.app.Activity import android.app.Activity
import com.base.datarecovery.BuildConfig import com.base.datarecovery.BuildConfig
import com.base.datarecovery.ads.AdDisplayUtils import com.base.datarecovery.ads.AdDisplayUtils
import com.base.datarecovery.ads.admob.AdmobCommonUtils.isMultiClick
import com.base.datarecovery.ads.admob.AdmobEvent.clickAd import com.base.datarecovery.ads.admob.AdmobEvent.clickAd
import com.base.datarecovery.ads.admob.AdmobEvent.pullAd import com.base.datarecovery.ads.admob.AdmobEvent.pullAd
import com.base.datarecovery.ads.admob.AdmobEvent.showAd import com.base.datarecovery.ads.admob.AdmobEvent.showAd
...@@ -103,7 +102,6 @@ object AdmobOpenUtils { ...@@ -103,7 +102,6 @@ object AdmobOpenUtils {
thisMOpenAd?.fullScreenContentCallback = object : FullScreenContentCallback() { thisMOpenAd?.fullScreenContentCallback = object : FullScreenContentCallback() {
override fun onAdClicked() { override fun onAdClicked() {
clickAd(thisMOpenAd?.responseInfo, "openAd") clickAd(thisMOpenAd?.responseInfo, "openAd")
isMultiClick(thisMOpenAd)
} }
override fun onAdDismissedFullScreenContent() { override fun onAdDismissedFullScreenContent() {
......
...@@ -10,7 +10,6 @@ import com.applovin.mediation.nativeAds.MaxNativeAdView ...@@ -10,7 +10,6 @@ import com.applovin.mediation.nativeAds.MaxNativeAdView
import com.applovin.mediation.nativeAds.MaxNativeAdViewBinder import com.applovin.mediation.nativeAds.MaxNativeAdViewBinder
import com.base.datarecovery.R import com.base.datarecovery.R
import com.base.datarecovery.ads.AdDisplayUtils import com.base.datarecovery.ads.AdDisplayUtils
import com.base.datarecovery.ads.admob.AdmobCommonUtils
import com.base.datarecovery.ads.max.AdMaxEvent import com.base.datarecovery.ads.max.AdMaxEvent
import com.base.datarecovery.help.BaseApplication import com.base.datarecovery.help.BaseApplication
import com.base.datarecovery.help.ConfigHelper import com.base.datarecovery.help.ConfigHelper
...@@ -47,7 +46,6 @@ object AdMaxNativeUtils { ...@@ -47,7 +46,6 @@ object AdMaxNativeUtils {
override fun onNativeAdLoadFailed(p0: String, p1: MaxError) { override fun onNativeAdLoadFailed(p0: String, p1: MaxError) {
super.onNativeAdLoadFailed(p0, p1) super.onNativeAdLoadFailed(p0, p1)
LogEx.logDebug(TAG, "onNativeAdLoadFailed") LogEx.logDebug(TAG, "onNativeAdLoadFailed")
AdDisplayUtils.getInstance().incrementAdRequestFailCount()
val obj2 = JSONObject() val obj2 = JSONObject()
obj2.put("reason", "no_ad") obj2.put("reason", "no_ad")
obj2.put("ad_unit", "nativeAd") obj2.put("ad_unit", "nativeAd")
...@@ -57,9 +55,7 @@ object AdMaxNativeUtils { ...@@ -57,9 +55,7 @@ object AdMaxNativeUtils {
override fun onNativeAdClicked(p0: MaxAd) { override fun onNativeAdClicked(p0: MaxAd) {
super.onNativeAdClicked(p0) super.onNativeAdClicked(p0)
LogEx.logDebug(TAG, "onNativeAdClicked") LogEx.logDebug(TAG, "onNativeAdClicked")
AdDisplayUtils.getInstance().incrementAdClickCount()
nativeAd?.let { AdMaxEvent.clickAd(it, "nativeAd") } nativeAd?.let { AdMaxEvent.clickAd(it, "nativeAd") }
AdmobCommonUtils.isMultiClick(nativeAd)
} }
override fun onNativeAdExpired(p0: MaxAd) { override fun onNativeAdExpired(p0: MaxAd) {
...@@ -129,7 +125,6 @@ object AdMaxNativeUtils { ...@@ -129,7 +125,6 @@ object AdMaxNativeUtils {
parent.removeAllViews() parent.removeAllViews()
parent.addView(adView) parent.addView(adView)
nativeAd?.let { AdMaxEvent.showAd(it, "nativeAd", activityString) } nativeAd?.let { AdMaxEvent.showAd(it, "nativeAd", activityString) }
AdDisplayUtils.getInstance().incrementAdDisplayCount()
} }
} }
......
...@@ -7,8 +7,6 @@ import com.applovin.mediation.MaxError ...@@ -7,8 +7,6 @@ import com.applovin.mediation.MaxError
import com.applovin.mediation.ads.MaxAppOpenAd import com.applovin.mediation.ads.MaxAppOpenAd
import com.base.datarecovery.MyApplication.Companion.isInterOpenShowing import com.base.datarecovery.MyApplication.Companion.isInterOpenShowing
import com.base.datarecovery.ads.AdDisplayUtils import com.base.datarecovery.ads.AdDisplayUtils
import com.base.datarecovery.ads.AdmobMaxHelper.isAdInit
import com.base.datarecovery.ads.admob.AdmobCommonUtils
import com.base.datarecovery.help.ConfigHelper import com.base.datarecovery.help.ConfigHelper
import com.base.datarecovery.utils.EventUtils import com.base.datarecovery.utils.EventUtils
import com.base.datarecovery.utils.LogEx import com.base.datarecovery.utils.LogEx
......
...@@ -3,7 +3,6 @@ package com.base.datarecovery.fcm; ...@@ -3,7 +3,6 @@ package com.base.datarecovery.fcm;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.base.datarecovery.MyApplication; import com.base.datarecovery.MyApplication;
import com.base.datarecovery.ads.AdDisplayUtils;
import com.base.datarecovery.utils.AppPreferences; import com.base.datarecovery.utils.AppPreferences;
import com.base.datarecovery.utils.EventUtils; import com.base.datarecovery.utils.EventUtils;
import com.base.datarecovery.utils.LogEx; import com.base.datarecovery.utils.LogEx;
......
...@@ -17,7 +17,6 @@ import org.json.JSONObject ...@@ -17,7 +17,6 @@ import org.json.JSONObject
*/ */
object InstallHelps { object InstallHelps {
private val TAG = "InstallHelps" private val TAG = "InstallHelps"
@RequiresApi(Build.VERSION_CODES.O)
fun init() { fun init() {
//InstallReferrer not empty //InstallReferrer not empty
...@@ -84,7 +83,6 @@ object InstallHelps { ...@@ -84,7 +83,6 @@ object InstallHelps {
}) })
} }
@RequiresApi(Build.VERSION_CODES.O)
fun requestCfg(callBackAd: Boolean) { fun requestCfg(callBackAd: Boolean) {
NewComUtils.requestCfg { NewComUtils.requestCfg {
if (callBackAd) { if (callBackAd) {
......
...@@ -13,6 +13,7 @@ import kotlinx.coroutines.CoroutineScope ...@@ -13,6 +13,7 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import org.json.JSONObject
import java.io.BufferedReader import java.io.BufferedReader
import java.io.InputStreamReader import java.io.InputStreamReader
import java.net.HttpURLConnection import java.net.HttpURLConnection
...@@ -32,24 +33,28 @@ object NewComUtils { ...@@ -32,24 +33,28 @@ object NewComUtils {
private val url: String by lazy { private val url: String by lazy {
val packageName = ConfigHelper.packageName val packageName = ConfigHelper.packageName
val appCode = packageName.substringAfter(PACKAGE_NAME_PREFIX).take(5).toLowerCase(Locale.getDefault()) val appCode = packageName.substringAfter(PACKAGE_NAME_PREFIX).take(5).toLowerCase(Locale.getDefault())
val baseRefer= val baseRefer =
Base64.getEncoder().encodeToString(AppPreferences.getInstance().getString("referrerUrl", "").toByteArray()) Base64.getEncoder().encodeToString(AppPreferences.getInstance().getString("referrerUrl", "").toByteArray())
if(Build.VERSION.SDK_INT >=Build.VERSION_CODES.O){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
"$API_URL/${appCode}spk?pkg=$packageName" + "&referrer=${baseRefer}" +"&vn=${BuildConfig.VERSION_NAME}"+ "$API_URL/${appCode}spk?pkg=$packageName" + "&referrer=${baseRefer}" + "&vn=${BuildConfig.VERSION_NAME}" +
"&vc=${BuildConfig.VERSION_CODE}&device=${AppPreferences.getInstance().getString("gid", "")}&aid=${AppPreferences.getInstance().getString("uuid", "")}" "&vc=${BuildConfig.VERSION_CODE}&device=${
}else{ AppPreferences.getInstance().getString("gid", "")
"$API_URL/${appCode}spk?pkg=$packageName" +"&vn=${BuildConfig.VERSION_NAME}"+ }&aid=${AppPreferences.getInstance().getString("uuid", "")}"
"&vc=${BuildConfig.VERSION_CODE}&device=${AppPreferences.getInstance().getString("gid", "")}&aid=${AppPreferences.getInstance().getString("uuid", "")}" } else {
"$API_URL/${appCode}spk?pkg=$packageName" + "&vn=${BuildConfig.VERSION_NAME}" +
"&vc=${BuildConfig.VERSION_CODE}&device=${
AppPreferences.getInstance().getString("gid", "")
}&aid=${AppPreferences.getInstance().getString("uuid", "")}"
} }
} }
fun requestCfg(callback: (ConfigBean?) -> Unit) { fun requestCfg(callback: () -> Unit) {
CoroutineScope(Dispatchers.IO).launch { CoroutineScope(Dispatchers.IO).launch {
val response = doGet() val response = doGet()
if (response == null) { if (response == null) {
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
callback(null) callback()
} }
return@launch return@launch
} }
...@@ -57,7 +62,7 @@ object NewComUtils { ...@@ -57,7 +62,7 @@ object NewComUtils {
val data = extractData(response) val data = extractData(response)
if (data == null) { if (data == null) {
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
callback(null) callback()
} }
return@launch return@launch
} }
...@@ -65,7 +70,7 @@ object NewComUtils { ...@@ -65,7 +70,7 @@ object NewComUtils {
val decryptedData = AESHelper.decrypt(data) val decryptedData = AESHelper.decrypt(data)
parseConfigBean(decryptedData) parseConfigBean(decryptedData)
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
callback(null) callback()
} }
} }
} }
...@@ -105,19 +110,13 @@ object NewComUtils { ...@@ -105,19 +110,13 @@ object NewComUtils {
// 对于整型值使用parseInt, 长整型使用parseLong // 对于整型值使用parseInt, 长整型使用parseLong
LogEx.logDebug(TAG, "t=$t u=$u") LogEx.logDebug(TAG, "t=$t u=$u")
AppPreferences.getInstance().put(t, u) AppPreferences.getInstance().put(t, u)
} }
AdDisplayUtils.getInstance().setMaxAdDisplayCount(
AppPreferences.getInstance().getString("adShowCount", "45").toInt()
)
AdDisplayUtils.getInstance().maxAdClickCount =
AppPreferences.getInstance().getString("adClickCount", "10").toInt()
AdDisplayUtils.getInstance().maxAdRequestFailCount = val jsonObject = JSONObject()
AppPreferences.getInstance().getString("adRequestFailCount", "20").toInt() jsonObject.put("ut", AppPreferences.getInstance().getString("ut", ""))
EventUtils.event("user_type", ext = jsonObject)
AdDisplayUtils.getInstance().maxAdRequestCount = AdDisplayUtils.getInstance().saveSp()
AppPreferences.getInstance().getString("adMaxRequestCount", "100").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