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,122 +92,108 @@ public class AdDisplayUtils { ...@@ -118,122 +92,108 @@ 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() {
if (!currentDate.equals(getCurrentDate())) {
currentDate = getCurrentDate();
adDisplayCount = 0;
}
adDisplayCount++;
int max = AppPreferences.getInstance().getInt("facebookAdShowEventCount", 3);
if (adClickCount >= max && max != -1) {
AppEventsLogger logger = AppEventsLogger.newLogger(MyApplication.context);
logger.logEvent("ad_show");
AppPreferences.getInstance().put("facebookAdShowEventCount", -1);
}
saveAdDisplayCount();
}
public void incrementAdClickCount() { //region AdRequestCount
if (!currentDate.equals(getCurrentDate())) { private int maxAdRequestCount = 0; // 最大广告请求次数
currentDate = getCurrentDate(); private int adRequestCount = 0; // 当前广告请求次数
adClickCount = 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";//广告请求次数
adClickCount++;
saveAdClickCount();
}
public void incrementAdRequestFailCount() { private void saveMaxAdRequestCount() {
if (!currentDate.equals(getCurrentDate())) { SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
currentDate = getCurrentDate(); SharedPreferences.Editor editor = prefs.edit();
adRequestFailCount = 0; editor.putInt(MAX_AD_REQUEST_COUNT_KEY, maxAdRequestCount);
} editor.apply();
adRequestFailCount++;
saveAdRequestFailCount();
Log.d("glc", "广告请求失败:" + adRequestFailCount);
} }
public void incrementAdRequestCount() {
public void setAdClickCount(int s) {
if (!currentDate.equals(getCurrentDate())) { if (!currentDate.equals(getCurrentDate())) {
currentDate = getCurrentDate(); currentDate = getCurrentDate();
adClickCount = 0; adRequestCount = 0;
} }
adClickCount = s; adRequestCount++;
saveAdClickCount(); saveAdRequestCount();
}
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() { private String getAdRequestCountKey() {
return AD_CLICK_COUNT_KEY + "_" + currentDate; return AD_REQUEST_COUNT_KEY + "_" + currentDate;
} }
private void saveAdDisplayCount() { private void saveAdRequestCount() {
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(getAdRequestCountKey(), adRequestCount);
editor.apply(); editor.apply();
} }
//endregion
private void 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 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_REQUEST_FAIL_COUNT_KEY, maxAdRequestFailCount);
editor.apply(); editor.apply();
} }
private int getMaxAdDisplayCount() { public void incrementAdRequestFailCount() {
return maxAdDisplayCount; if (!currentDate.equals(getCurrentDate())) {
currentDate = getCurrentDate();
adRequestFailCount = 0;
}
adRequestFailCount++;
saveAdRequestFailCount();
Log.d("glc", "广告请求失败:" + adRequestFailCount);
} }
public void setMaxAdDisplayCount(int maxAdDisplayCount) { private String getAdRequestFailCountKey() {
LogEx.INSTANCE.logDebug(TAG, "maxAdDisplayCount" + maxAdDisplayCount, false); return AD_REQUEST_FAIL_COUNT_KEY + "_" + currentDate;
this.maxAdDisplayCount = maxAdDisplayCount;
saveMaxAdDisplayCount();
} }
public int getMaxAdClickCount() { private void saveAdRequestFailCount() {
return maxAdClickCount; SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(getAdRequestFailCountKey(), adRequestFailCount);
editor.apply();
} }
//endregion
public void setMaxAdClickCount(int maxAdClickCount) { //region AdDisplayCount
LogEx.INSTANCE.logDebug(TAG, "maxAdClickCount" + maxAdClickCount, false); private int maxAdDisplayCount; // 总广告展示次数限制
this.maxAdClickCount = maxAdClickCount; private int adDisplayCount = 0; // 当前广告展示次数
saveMaxAdClickCount(); 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() { private void saveMaxAdDisplayCount() {
SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0); SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
...@@ -242,55 +202,79 @@ public class AdDisplayUtils { ...@@ -242,55 +202,79 @@ public class AdDisplayUtils {
editor.apply(); editor.apply();
} }
private void saveMaxAdClickCount() { public void incrementAdDisplayCount() {
SharedPreferences prefs = BaseApplication.context.getSharedPreferences(AD_PREFS_NAME, 0); if (!currentDate.equals(getCurrentDate())) {
SharedPreferences.Editor editor = prefs.edit(); currentDate = getCurrentDate();
editor.putInt(MAX_AD_CLICK_COUNT_KEY, maxAdClickCount); adDisplayCount = 0;
editor.apply(); }
} adDisplayCount++;
int max = AppPreferences.getInstance().getInt("facebookAdShowEventCount", 3);
if (adClickCount >= max && max != -1) {
AppEventsLogger logger = AppEventsLogger.newLogger(MyApplication.context);
logger.logEvent("ad_show");
AppPreferences.getInstance().put("facebookAdShowEventCount", -1);
}
public int getMaxAdRequestFailCount() { saveAdDisplayCount();
return maxAdRequestFailCount;
} }
public void setMaxAdRequestFailCount(int maxAdRequestFailCount) {
LogEx.INSTANCE.logDebug(TAG, "maxAdRequestFailCount" + maxAdRequestFailCount, false); private String getAdDisplayCountKey() {
this.maxAdRequestFailCount = maxAdRequestFailCount; return AD_DISPLAY_COUNT_KEY + "_" + currentDate;
saveMaxAdRequestFailCount();
} }
private void saveMaxAdRequestFailCount() { 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_REQUEST_FAIL_COUNT_KEY, maxAdRequestFailCount); editor.putInt(getAdDisplayCountKey(), adDisplayCount);
editor.apply(); editor.apply();
} }
//endregion
private void saveAdRequestFailCount() { //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() {
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(MAX_AD_CLICK_COUNT_KEY, maxAdClickCount);
editor.apply(); editor.apply();
} }
public void incrementAdClickCount() {
public void incrementAdRequestCount() { LogEx.INSTANCE.logDebug(TAG, "incrementAdClickCount", false);
if (!currentDate.equals(getCurrentDate())) { if (!currentDate.equals(getCurrentDate())) {
currentDate = getCurrentDate(); currentDate = getCurrentDate();
adRequestCount = 0; adClickCount = 0;
} }
adRequestCount++; adClickCount++;
saveAdRequestCount(); saveAdClickCount();
} }
private void saveAdRequestCount() { private String getAdClickCountKey() {
return AD_CLICK_COUNT_KEY + "_" + currentDate;
}
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(getAdRequestCountKey(), adRequestCount); editor.putInt(getAdClickCountKey(), adClickCount);
editor.apply(); editor.apply();
LogEx.INSTANCE.logDebug(TAG, "adClickCount=" + adClickCount, false);
} }
//endregion
private String getAdRequestFailCountKey() { public String getCurrentDate() {
return AD_REQUEST_FAIL_COUNT_KEY + "_" + currentDate; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
Date currentDate = Calendar.getInstance().getTime();
return dateFormat.format(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