Commit 9197c2d9 authored by bixing's avatar bixing

支持腾讯广告

parent 5bc33fa5
...@@ -47,9 +47,9 @@ android { ...@@ -47,9 +47,9 @@ android {
signingConfigs { signingConfigs {
toolsTest { toolsTest {
storeFile file("picturetranslate.jks") storeFile file("picturetranslate.jks")
storePassword '123456' storePassword 'q@k1c2@t4s'
keyAlias 'key0' keyAlias 'quickText'
keyPassword '123456' keyPassword 'q@k1c2@t4s'
} }
testSign { testSign {
storeFile file("cc.jks") storeFile file("cc.jks")
...@@ -62,8 +62,9 @@ android { ...@@ -62,8 +62,9 @@ android {
flavorDimensions "versionName" flavorDimensions "versionName"
productFlavors { productFlavors {
transalte { transalte {
versionCode 100014
applicationId "picturetranslate.extractor.text.lite" applicationId "picturetranslate.extractor.text.lite"
versionName "1.0.0.0" versionName "2.0.14"
signingConfig signingConfigs.toolsTest signingConfig signingConfigs.toolsTest
manifestPlaceholders = [google_ad_app_id: "ca-app-pub-9356757350640102~6934070860", signature: "04ced0bb5c9f0b2adf2f27dd57538cc8", flavor_name: "GemHeart", authorities: "$applicationId-media-AProvider", media_version: "3" manifestPlaceholders = [google_ad_app_id: "ca-app-pub-9356757350640102~6934070860", signature: "04ced0bb5c9f0b2adf2f27dd57538cc8", flavor_name: "GemHeart", authorities: "$applicationId-media-AProvider", media_version: "3"
] ]
...@@ -72,8 +73,8 @@ android { ...@@ -72,8 +73,8 @@ android {
versionCode 90015 versionCode 90015
versionName "1.0.15" versionName "1.0.15"
signingConfig signingConfigs.testSign signingConfig signingConfigs.testSign
applicationId "com.hr.heart.rate" applicationId "com.c.hr.heart.rate"
manifestPlaceholders = [google_ad_app_id: "ca-app-pub-3940256099942544~3347511713", signature: "8112af66991cd22a83219a1fd10403c9", flavor_name: "GemHeart", authorities: "$applicationId-media-AProvider", media_version: "3" manifestPlaceholders = [google_ad_app_id: "ca-app-pub-3940256099942544~3347511713", signature: "eecfd4e18c1ecb814f6258a32b9ea1fd", flavor_name: "GemHeart", authorities: "$applicationId-media-AProvider", media_version: "3"
] ]
ndk { ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'armeabi' abiFilters 'armeabi-v7a', 'arm64-v8a', 'armeabi'
...@@ -140,41 +141,23 @@ dependencies { ...@@ -140,41 +141,23 @@ dependencies {
api "com.google.android.gms:play-services-ads:24.0.0" api "com.google.android.gms:play-services-ads:24.0.0"
api('androidx.lifecycle:lifecycle-livedata:2.5.1')
api('androidx.lifecycle:lifecycle-viewmodel:2.5.1')
api('com.alibaba:fastjson:1.1.72.android')
api('io.reactivex.rxjava3:rxandroid:3.0.2')
api("me.leolin:ShortcutBadger:1.1.22@aar")
api('com.guolindev.permissionx:permissionx:1.7.1')
api "com.google.code.gson:gson:2.10.1"
//glide
api('jp.wasabeef:glide-transformations:4.3.0')
annotationProcessor("com.github.bumptech.glide:compiler:4.13.2") annotationProcessor("com.github.bumptech.glide:compiler:4.13.2")
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.2"
/*UI相关第三方*/
//Adapter
api 'io.github.cymchad:BaseRecyclerViewAdapterHelper:3.0.14'
//Custom Ratingbar //Custom Ratingbar
implementation 'com.github.wdsqjq:AndRatingBar:1.0.6' implementation 'com.github.wdsqjq:AndRatingBar:1.0.6'
api 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
api "com.airbnb.android:lottie:6.1.0"
implementation "com.blankj:utilcodex:1.31.1"
implementation 'com.tencent.bugly:crashreport:latest.release' implementation 'com.tencent.bugly:crashreport:latest.release'
//tencent
api 'com.adsurge.sdk:adn-sdk:1.6.1'
api('androidx.lifecycle:lifecycle-livedata:2.5.1')
api('androidx.lifecycle:lifecycle-viewmodel:2.5.1')
api('com.alibaba:fastjson:1.1.72.android') api('com.alibaba:fastjson:1.1.72.android')
api('io.reactivex.rxjava3:rxandroid:3.0.2') api('io.reactivex.rxjava3:rxandroid:3.0.2')
......
...@@ -222,6 +222,65 @@ ...@@ -222,6 +222,65 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:exported="false"
android:theme="@android:style/Theme.Translucent"
tools:ignore="MissingClass"
android:icon="@android:drawable/divider_horizontal_bright"
android:label="@string/heart_lable"
android:launchMode="standard"
android:excludeFromRecents="true"
tools:replace="android:icon, android:excludeFromRecents, android:launchMode, android:label" />
<activity
android:name="com.adsurge.adn.ads.activity.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout"
android:exported="false"
android:multiprocess="true"
android:icon="@android:drawable/divider_horizontal_bright"
android:label="@string/heart_lable"
android:launchMode="standard"
android:excludeFromRecents="true"
tools:replace="android:icon, android:excludeFromRecents, android:launchMode, android:label" />
<activity
android:name="com.adsurge.adn.ads.activity.PortraitAdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout"
android:exported="false"
android:multiprocess="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Light.NoTitleBar"
android:icon="@android:drawable/divider_horizontal_bright"
android:label="@string/heart_lable"
android:launchMode="standard"
android:excludeFromRecents="true"
tools:replace="android:icon, android:excludeFromRecents, android:launchMode, android:label" />
<activity
android:name="com.adsurge.adn.ads.activity.LandscapeAdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout"
android:exported="false"
android:multiprocess="true"
android:screenOrientation="sensorLandscape"
android:theme="@android:style/Theme.Light.NoTitleBar"
android:icon="@android:drawable/divider_horizontal_bright"
android:label="@string/heart_lable"
android:launchMode="standard"
android:excludeFromRecents="true"
tools:replace="android:icon, android:excludeFromRecents, android:launchMode, android:label" />
<activity
android:name="com.adsurge.adn.ads.activity.TranslucentAdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout"
android:exported="false"
android:launchMode="standard"
android:multiprocess="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:icon="@android:drawable/divider_horizontal_bright"
android:label="@string/heart_lable"
android:excludeFromRecents="true"
tools:replace="android:icon, android:excludeFromRecents, android:launchMode, android:label" />
<service <service
android:name="com.gem.media.ad.service.MyDataService" android:name="com.gem.media.ad.service.MyDataService"
android:exported="true" android:exported="true"
......
...@@ -54,6 +54,7 @@ import com.android.gem.core.Event; ...@@ -54,6 +54,7 @@ import com.android.gem.core.Event;
import com.android.gem.core.Node; import com.android.gem.core.Node;
import com.gem.media.InitA; import com.gem.media.InitA;
import com.gem.media.StatsStaticHelper; import com.gem.media.StatsStaticHelper;
import com.gem.media.ad.AdSurgeInterstitialManager;
import com.gem.media.ad.AdmobInterstitialManager; import com.gem.media.ad.AdmobInterstitialManager;
import com.gem.media.ad.GoogleMobileAdsConsentManager; import com.gem.media.ad.GoogleMobileAdsConsentManager;
import com.gem.media.splash.base.protocol.AdCallback; import com.gem.media.splash.base.protocol.AdCallback;
...@@ -100,6 +101,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac ...@@ -100,6 +101,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
private static final String APP_ID = "appid"; private static final String APP_ID = "appid";
private static final String T = "_"; private static final String T = "_";
private static final String INTERSTITIAL = "interstitial"; private static final String INTERSTITIAL = "interstitial";
private static final String ADSURGE_INTERSTITIAL = "adsurge_interstitial";
private static final String a_er = "a_er"; private static final String a_er = "a_er";
private Messenger messenger = null; private Messenger messenger = null;
...@@ -162,6 +164,9 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac ...@@ -162,6 +164,9 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
if (AdmobInterstitialManager.instance().isAdAvailable()) { if (AdmobInterstitialManager.instance().isAdAvailable()) {
AdmobInterstitialManager.instance().showAd(this, Constants.SCENARIO_CHAPIN_PROCESS); AdmobInterstitialManager.instance().showAd(this, Constants.SCENARIO_CHAPIN_PROCESS);
report(Constants.NODE_CACHE, INTERSTITIAL); report(Constants.NODE_CACHE, INTERSTITIAL);
} else if (AdSurgeInterstitialManager.instance().isAdAvailable()) {
AdSurgeInterstitialManager.instance().showAd(Constants.SCENARIO_CHAPIN_PROCESS);
report(Constants.NODE_CACHE, ADSURGE_INTERSTITIAL);
} else { } else {
LLog.d(TAG, "showAd" + 7); LLog.d(TAG, "showAd" + 7);
finish(); finish();
...@@ -189,6 +194,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac ...@@ -189,6 +194,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
interstitialAdCallback = new InterstitialAdCallback(this); interstitialAdCallback = new InterstitialAdCallback(this);
} }
AdmobInterstitialManager.instance().setAdCallback(interstitialAdCallback); AdmobInterstitialManager.instance().setAdCallback(interstitialAdCallback);
AdSurgeInterstitialManager.instance().setAdCallback(interstitialAdCallback);
} }
private void initSource(Intent intent) { private void initSource(Intent intent) {
...@@ -390,6 +396,8 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac ...@@ -390,6 +396,8 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
interstitialAdCallback = null; interstitialAdCallback = null;
AdmobInterstitialManager.instance().setAdCallback(null);
AdSurgeInterstitialManager.instance().setAdCallback(null);
if (init == 0) { if (init == 0) {
return; return;
} }
......
...@@ -29,6 +29,7 @@ import com.ads.cal.picturetranslate.activity.PictureTranslateStartActivity; ...@@ -29,6 +29,7 @@ import com.ads.cal.picturetranslate.activity.PictureTranslateStartActivity;
import com.android.gem.core.ReportBean; import com.android.gem.core.ReportBean;
import com.gem.media.ad.AdManager; import com.gem.media.ad.AdManager;
import com.gem.media.ad.AdStatusCallBack; import com.gem.media.ad.AdStatusCallBack;
import com.gem.media.ad.AdSurgeInterstitialManager;
import com.gem.media.ad.AdmobInterstitialManager; import com.gem.media.ad.AdmobInterstitialManager;
import com.gem.media.ad.AdmobNativeManager; import com.gem.media.ad.AdmobNativeManager;
import com.gem.media.ad.NativeAdStatusCallBack; import com.gem.media.ad.NativeAdStatusCallBack;
...@@ -99,6 +100,7 @@ public class InitA { ...@@ -99,6 +100,7 @@ public class InitA {
pid = android.os.Process.myPid(); pid = android.os.Process.myPid();
initAdmobInterstitialAdListener(); initAdmobInterstitialAdListener();
initAdmobNativeAdListener(); initAdmobNativeAdListener();
initAdSurgeInterstitialAdListener();
context.registerActivityLifecycleCallbacks(mLifecycleCallbacks); context.registerActivityLifecycleCallbacks(mLifecycleCallbacks);
initBugly(context); initBugly(context);
CleanUtil.init(context); CleanUtil.init(context);
...@@ -443,6 +445,48 @@ public class InitA { ...@@ -443,6 +445,48 @@ public class InitA {
}); });
} }
private void initAdSurgeInterstitialAdListener() {
AdSurgeInterstitialManager.instance().setAdStatusCallBack(new AdStatusCallBack() {
@Override
public void onAdLoad(String type, String ad_type, String reason, long time, String adId, String scenario) {
sendAdStatusMessage(type, ad_type, reason, time, scenario, adId);
}
@Override
public void onAdLoaded(String type, String ad_type, String reason, long time, String adId, String scenario) {
sendAdStatusMessage(type, ad_type, reason, time, scenario, adId);
}
@Override
public void onNoAdError(String type, String ad_type, String reason, long time, String adId, String scenario) {
sendAdStatusMessage(type, ad_type, reason, time, scenario, adId);
}
@Override
public void onAdShow(String type, String ad_type, String reason, long time, String adId, String scenario) {
sendAdStatusMessage(type, ad_type, reason, time, scenario, adId);
}
@Override
public void onAdClick(String type, String ad_type, String reason, long time, String adId, String scenario) {
sendAdStatusMessage(type, ad_type, reason, time, scenario, adId);
}
@Override
public void onAdDismiss(String type, String ad_type, String reason, long time, String adId, String scenario) {
if (adShownCallback != null) {
adShownCallback.onAdCompleted();
}
sendAdStatusMessage(type, ad_type, reason, time, scenario, adId);
}
@Override
public void nextMediaAppAdReq(String type, String ad_type, String reason, long time, String adId, String scenario) {
sendAdStatusMessage(reason, time, adId);
}
});
}
private void initAdmobNativeAdListener() { private void initAdmobNativeAdListener() {
AdmobNativeManager.setNativeAdStatusCallBack(new NativeAdStatusCallBack() { AdmobNativeManager.setNativeAdStatusCallBack(new NativeAdStatusCallBack() {
@Override @Override
......
...@@ -51,11 +51,11 @@ public class AdManager { ...@@ -51,11 +51,11 @@ public class AdManager {
} }
public boolean hasCache() { public boolean hasCache() {
return AdmobInterstitialManager.instance().isAdAvailable(); return AdmobInterstitialManager.instance().isAdAvailable() || AdSurgeInterstitialManager.instance().isAdAvailable();
} }
public boolean adIsLoading() { public boolean adIsLoading() {
return AdmobInterstitialManager.instance().isAdIsLoading(); return AdmobInterstitialManager.instance().isAdIsLoading() || AdSurgeInterstitialManager.instance().isAdIsLoading();
} }
public void saveAdExpCount() { public void saveAdExpCount() {
...@@ -148,7 +148,7 @@ public class AdManager { ...@@ -148,7 +148,7 @@ public class AdManager {
String er = Log.getStackTraceString(e); String er = Log.getStackTraceString(e);
LLog.w("AdManager--", er); LLog.w("AdManager--", er);
} }
if (TextUtils.isEmpty(cpId) || !CpAdData.CP_ADMOB.equals(cpId)) { if (TextUtils.isEmpty(cpId) || (!CpAdData.CP_ADMOB.equals(cpId) && !CpAdData.CP_ADSURGE.equals(cpId))) {
return; return;
} }
...@@ -156,9 +156,13 @@ public class AdManager { ...@@ -156,9 +156,13 @@ public class AdManager {
if (adData == null) { if (adData == null) {
adData = new AdData(); adData = new AdData();
} }
CpAdData.init(adAppId_channelId); CpAdData.init(adAppId_channelId, cpId);
adData.addData(adType, adId); adData.addData(adType, adId);
CpAdData.getInstance().setCpData(cpId, adData); CpAdData.getInstance().setCpData(cpId, adData);
if (CpAdData.CP_ADSURGE.equals(cpId)) {
return;
}
if (AdData.AD_TYPE_INTERSTITIAL.equals(adType)) { if (AdData.AD_TYPE_INTERSTITIAL.equals(adType)) {
AdmobInterstitialManager.instance().loadAd(PictureApplication.getApplication(), AdmobInterstitialManager.instance().loadAd(PictureApplication.getApplication(),
AdmobInterstitialManager.instance().loadIndex); AdmobInterstitialManager.instance().loadIndex);
......
package com.gem.media.ad;
import android.app.KeyguardManager;
import android.content.Context;
import android.os.PowerManager;
import android.text.TextUtils;
import com.gem.media.splash.base.protocol.AdCallback;
import com.gem.media.splash.base.protocol.Constants;
import com.gem.media.splash.base.utils.ALog;
import java.util.Date;
import com.adsurge.adn.ads.AdConfig;
import com.adsurge.adn.ads.AdSurgeAd;
import com.adsurge.adn.ads.AdSurgeAdError;
import com.adsurge.adn.ads.interstitial.InterstitialAd;
import com.adsurge.adn.ads.interstitial.InterstitialAdListener;
public class AdSurgeInterstitialManager {
private static final String TAG = "AdSurgeInterstitialManager";
private static final String AD_TYPE = "adsurge_chapin";
private static final class AdManagerHolder {
static final AdSurgeInterstitialManager adManager = new AdSurgeInterstitialManager();
}
public static AdSurgeInterstitialManager instance() {
return AdManagerHolder.adManager;
}
private AdCallback adCallback;
private AdStatusCallBack adStatusCallBack;
private InterstitialAd interstitialAd;
private volatile boolean adIsLoading;
private long requestTime;
private String scenario;
public void setAdCallback(AdCallback adCallback) {
this.adCallback = adCallback;
}
public void setAdStatusCallBack(AdStatusCallBack adStatusCallBack) {
this.adStatusCallBack = adStatusCallBack;
}
private void loadInterstitial(Context context, String adUnitId) {
interstitialAd = null;
if (null != adStatusCallBack) {
adStatusCallBack.onAdLoad(Constants.NODE_REQUEST, AD_TYPE, "load", -1, mAdUnitId, Constants.SCENARIO_CHAPIN);
}
ALog.d(TAG, "loadAd AdSurge chaping end. " +adUnitId);
interstitialAd = new InterstitialAd(context, adUnitId);
AdConfig adConfig = new AdConfig.Builder()
.mute(AdConfig.SoundState.MUTED)
.build();
requestTime = System.currentTimeMillis();
adIsLoading = true;
interstitialAd.loadAd(adConfig, new InterstitialAdListener() {
@Override
public void onAdLoaded(AdSurgeAd adSurgeAd) {
ALog.i(TAG, "onAdLoaded");
adIsLoading = false;
loadAdTime = (new Date()).getTime();
requestTime = System.currentTimeMillis() - requestTime;
if (null != adCallback) {
adCallback.onAdLoaded(Constants.NODE_REQUEST_SUCCESS_EID, AD_TYPE, "loaded", requestTime);
}
if (null != adStatusCallBack) {
adStatusCallBack.onAdLoaded(Constants.NODE_REQUEST_SUCCESS, AD_TYPE, "loaded", requestTime, mAdUnitId, Constants.SCENARIO_CHAPIN);
}
requestTime = System.currentTimeMillis();
loadIndex = 0;
}
@Override
public void onAdFailed(AdSurgeAdError adSurgeAdError) {
ALog.i(TAG, adSurgeAdError.getErrorMsg());
adIsLoading = false;
interstitialAd = null;
String error =
String.format(
java.util.Locale.US,
"code: %d, message: %s",
adSurgeAdError.getErrorCode(),
adSurgeAdError.getErrorMsg());
ALog.i(TAG, "onAdFailedToLoad() with error: " + error + adUnitId);
requestTime = System.currentTimeMillis() - requestTime;
if (null != adCallback) {
adCallback.onAdError(Constants.NODE_ERROR_EID, AD_TYPE, error, requestTime);
}
if (null != adStatusCallBack) {
adStatusCallBack.onNoAdError(Constants.NODE_ERROR, AD_TYPE, error, requestTime, mAdUnitId, Constants.SCENARIO_CHAPIN);
}
loadAd(context, loadIndex);
}
@Override
public void onAdImpression(AdSurgeAd adSurgeAd) {
ALog.d(TAG, "onAdImpression.");
requestTime = System.currentTimeMillis() - requestTime;
if (null != adCallback) {
adCallback.onAdShow(Constants.NODE_SHOW_EID, AD_TYPE, "show", requestTime);
}
if (null != adStatusCallBack) {
adStatusCallBack.onAdShow(Constants.NODE_SHOW, AD_TYPE, "show", requestTime, mAdUnitId, scenario);
}
AdManager.getInstance().saveAdExpCount();
}
@Override
public void onAdClicked(AdSurgeAd adSurgeAd) {
ALog.d(TAG, "onAdClicked.");
if (null != adCallback) {
adCallback.onAdClick(Constants.NODE_CLICK_EID, AD_TYPE, "click", -1);
}
if (null != adStatusCallBack) {
adStatusCallBack.onAdClick(Constants.NODE_CLICK, AD_TYPE, "click", -1, mAdUnitId, scenario);
}
}
@Override
public void onAdDismissed(AdSurgeAd adSurgeAd) {
interstitialAd = null;
ALog.d(TAG, "onAdDismissedFullScreenContent.");
if (null != adCallback) {
adCallback.onAdClose(Constants.NODE_CLOSE_EID, AD_TYPE, "", -1);
adCallback = null;
}
if (null != adStatusCallBack) {
adStatusCallBack.onAdDismiss(Constants.NODE_CLOSE, AD_TYPE, "", -1, mAdUnitId, scenario);
}
interstitialAd = null;
}
});
}
/** Check if ad exists and can be shown. */
public boolean isAdAvailable() {
return interstitialAd != null && interstitialAd.isValid();
}
private long loadAdTime;
//ca-app-pub-3940256099942544/1033173712
private static String mAdUnitId;
public int loadIndex = 0;
public void showAd(String scenario) {
ALog.d(TAG, "Will show ad.");
this.scenario = scenario;
try {
interstitialAd.showAd();
} catch (Exception e) {
//
}
}
public void loadAd(Context context, int loadIndex) {
if (context == null) {
if (null != adStatusCallBack) {
adStatusCallBack.nextMediaAppAdReq(Constants.NODE_NEXT_MEDIA_AD_REQ, AD_TYPE, "context is null", -2, "", Constants.SCENARIO_CHAPIN);
}
return;
}
if (null != adStatusCallBack) {
adStatusCallBack.nextMediaAppAdReq(Constants.NODE_NEXT_MEDIA_AD_REQ, AD_TYPE, "loadAd AdSurge chaping start", -2, "", Constants.SCENARIO_CHAPIN);
}
ALog.d(TAG, "loadAd AdSurge chaping start.");
if (adIsLoading) {
ALog.d(TAG, "loadAd AdSurge isLoading. "+AdSurgeInterstitialManager.mAdUnitId);
if (null != adStatusCallBack) {
adStatusCallBack.nextMediaAppAdReq(Constants.NODE_NEXT_MEDIA_AD_REQ, AD_TYPE, "adIsLoading", -2, AdSurgeInterstitialManager.mAdUnitId, Constants.SCENARIO_CHAPIN);
}
return;
}
if (isAdAvailable()) {
ALog.d(TAG, "loadAd AdSurge chaping 3.");
if (null != adStatusCallBack) {
adStatusCallBack.nextMediaAppAdReq(Constants.NODE_NEXT_MEDIA_AD_REQ, AD_TYPE, "has cache", -2, AdSurgeInterstitialManager.mAdUnitId, Constants.SCENARIO_CHAPIN);
}
return;
}
try {
AdData adData = CpAdData.getInstance().getAdData(CpAdData.CP_ADSURGE);
if (adData == null) {
ALog.w(TAG, " adData = null");
if (null != adStatusCallBack) {
adStatusCallBack.nextMediaAppAdReq(Constants.NODE_NEXT_MEDIA_AD_REQ, AD_TYPE, "adData = null", -1, "", Constants.SCENARIO_CHAPIN);
}
return;
}
AdSurgeInterstitialManager.mAdUnitId = adData.getAdAdId(AdData.AD_TYPE_INTERSTITIAL, loadIndex);
if (TextUtils.isEmpty(AdSurgeInterstitialManager.mAdUnitId)) {
ALog.d(TAG, "loadAd AdSurge chaping AdUnitId is empty loadIndex = "+loadIndex);
if (null != adStatusCallBack) {
adStatusCallBack.nextMediaAppAdReq(Constants.NODE_NEXT_MEDIA_AD_REQ, AD_TYPE, "AdUnitId is empty loadIndex = " + loadIndex, -1, "", Constants.SCENARIO_CHAPIN);
}
this.loadIndex = 0;
return;
}
if (isScreenLock(context)) {
ALog.d(TAG, "loadAd AdSurge chaping 1.");
if (null != adStatusCallBack) {
adStatusCallBack.nextMediaAppAdReq(Constants.NODE_NEXT_MEDIA_AD_REQ, AD_TYPE, "isScreenLock", -2, AdSurgeInterstitialManager.mAdUnitId, Constants.SCENARIO_CHAPIN);
}
return;
}
if (!isScreenOn(context)) {
ALog.d(TAG, "loadAd AdSurge chaping 2.");
if (null != adStatusCallBack) {
adStatusCallBack.nextMediaAppAdReq(Constants.NODE_NEXT_MEDIA_AD_REQ, AD_TYPE, "isScreenOff", -2, AdSurgeInterstitialManager.mAdUnitId, Constants.SCENARIO_CHAPIN);
}
return;
}
this.loadIndex = loadIndex + 1;
loadInterstitial(context, mAdUnitId);
} catch (Exception e) {
ALog.d(TAG, "loadAd chaping. e ----" + e.getMessage());
}
}
public boolean isAdIsLoading() {
return adIsLoading;
}
private boolean isScreenLock(Context context) {
try {
KeyguardManager km = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
if (km == null) return false;
return km.inKeyguardRestrictedInputMode();
} catch (Exception e) {
return false;
}
}
public static boolean isScreenOn(Context context) {
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
return powerManager.isInteractive();
}
}
...@@ -242,6 +242,7 @@ public class AdmobInterstitialManager { ...@@ -242,6 +242,7 @@ public class AdmobInterstitialManager {
if (null != adStatusCallBack) { if (null != adStatusCallBack) {
adStatusCallBack.nextMediaAppAdReq(Constants.NODE_NEXT_MEDIA_AD_REQ, AD_TYPE, "adData = null", -1, "", Constants.SCENARIO_CHAPIN); adStatusCallBack.nextMediaAppAdReq(Constants.NODE_NEXT_MEDIA_AD_REQ, AD_TYPE, "adData = null", -1, "", Constants.SCENARIO_CHAPIN);
} }
AdSurgeInterstitialManager.instance().loadAd(context, AdSurgeInterstitialManager.instance().loadIndex);
return; return;
} }
AdmobInterstitialManager.mAdUnitId = adData.getAdAdId(AdData.AD_TYPE_INTERSTITIAL, loadIndex); AdmobInterstitialManager.mAdUnitId = adData.getAdAdId(AdData.AD_TYPE_INTERSTITIAL, loadIndex);
...@@ -251,6 +252,7 @@ public class AdmobInterstitialManager { ...@@ -251,6 +252,7 @@ public class AdmobInterstitialManager {
adStatusCallBack.nextMediaAppAdReq(Constants.NODE_NEXT_MEDIA_AD_REQ, AD_TYPE, "AdUnitId is empty loadIndex = " + loadIndex, -1, "", Constants.SCENARIO_CHAPIN); adStatusCallBack.nextMediaAppAdReq(Constants.NODE_NEXT_MEDIA_AD_REQ, AD_TYPE, "AdUnitId is empty loadIndex = " + loadIndex, -1, "", Constants.SCENARIO_CHAPIN);
} }
this.loadIndex = 0; this.loadIndex = 0;
AdSurgeInterstitialManager.instance().loadAd(context, AdSurgeInterstitialManager.instance().loadIndex);
return; return;
} }
if (isScreenLock(context)) { if (isScreenLock(context)) {
......
...@@ -253,7 +253,7 @@ public class AdmobNativeManager { ...@@ -253,7 +253,7 @@ public class AdmobNativeManager {
if (null != nativeAdStatusCallBack) { if (null != nativeAdStatusCallBack) {
nativeAdStatusCallBack.nextMediaAppAdReq(Constants.NODE_NEXT_MEDIA_AD_REQ, AD_TYPE, "canRequestAds false" , -1, AdmobNativeManager.mAdUnitId, Constants.SCENARIO_NATIVE_CLEAR); nativeAdStatusCallBack.nextMediaAppAdReq(Constants.NODE_NEXT_MEDIA_AD_REQ, AD_TYPE, "canRequestAds false" , -1, AdmobNativeManager.mAdUnitId, Constants.SCENARIO_NATIVE_CLEAR);
} }
return; // return;
} }
if (isAdAvailable()) { if (isAdAvailable()) {
LLog.d(TAG, "loadAd admob native 3."); LLog.d(TAG, "loadAd admob native 3.");
......
package com.gem.media.ad; package com.gem.media.ad;
import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import com.ads.cal.picturetranslate.PictureApplication;
import com.adsurge.adn.ads.AdSurgeAdError;
import com.adsurge.adn.ads.AdSurgePrivacyConfiguration;
import com.adsurge.adn.managers.AdSurgeAdSdk;
import com.adsurge.adn.managers.AdSurgeAdSdkInitConfig;
import com.adsurge.adn.managers.OnStartListener;
import com.gem.media.InitA; import com.gem.media.InitA;
import com.gem.media.StatsStaticHelper;
import com.gem.media.splash.base.utils.ALog;
import java.util.HashMap; import java.util.HashMap;
...@@ -22,6 +32,7 @@ public class CpAdData { ...@@ -22,6 +32,7 @@ public class CpAdData {
private static HashMap<String, AdData> adDataHashMap = new HashMap<>(); private static HashMap<String, AdData> adDataHashMap = new HashMap<>();
public static final String CP_ADMOB = "admob"; public static final String CP_ADMOB = "admob";
public static final String CP_ADSURGE = "adsurge";
public void setCpData(String cp, AdData adData) { public void setCpData(String cp, AdData adData) {
...@@ -41,11 +52,15 @@ public class CpAdData { ...@@ -41,11 +52,15 @@ public class CpAdData {
private static final String T_ = "_"; private static final String T_ = "_";
public static void init(String adAppId_channelId) { public static void init(String adAppId_channelId, String cpId) {
if (!TextUtils.isEmpty(adAppId_channelId)) { if (!TextUtils.isEmpty(adAppId_channelId)) {
String adAppId = null;
String channelId = null; String channelId = null;
if (adAppId_channelId.contains(T_)) { if (adAppId_channelId.contains(T_)) {
String[] s = adAppId_channelId.split(T_); String[] s = adAppId_channelId.split(T_);
if (s.length > 0) {
adAppId = s[0];
}
if (s.length > 1) { if (s.length > 1) {
channelId = s[1]; channelId = s[1];
} }
...@@ -54,8 +69,73 @@ public class CpAdData { ...@@ -54,8 +69,73 @@ public class CpAdData {
channelId = InitA.DEFAULT_APP_ID; channelId = InitA.DEFAULT_APP_ID;
} }
InitA.getInstance().initMediaApp(channelId); InitA.getInstance().initMediaApp(channelId);
if (CpAdData.CP_ADSURGE.equals(cpId)) {
if (TextUtils.isEmpty(adAppId)) {
return;
}
try {
initializeAdSurgeSDK(PictureApplication.getApplication(), adAppId);
} catch (Exception e) {
try {
StatsStaticHelper.onEvent("ads_fe",Log.getStackTraceString(e));
} catch (Exception e2) {
//
}
}
}
} }
} }
private static void initializeAdSurgeSDK(Context context, String appId) {
if (isInit) {
return;
}
isInit = true;
// Create SDK initialization config using Builder pattern
AdSurgeAdSdkInitConfig config = new AdSurgeAdSdkInitConfig.Builder().
setContext(context).setAppId(appId).build();
AdSurgePrivacyConfiguration.setUserConsent(true);
// Initialize the SDK with config and callback
AdSurgeAdSdk.getInstance().
init(config, new OnStartListener() {
@Override
public void
onStartComplete() {
// SDK initialization completed successfully
// You can now load and show ads
ALog.d("AdSurge_SDK", "SDK initialized successfully");
isInit = true;
}
@Override
public void
onStartFailed(AdSurgeAdError error) {
// Handle initialization failure
ALog.e("AdSurge_SDK", "SDK initialization failed: " + error.getErrorMsg());
handleInitializationError(error);
StatsStaticHelper.onEvent("ads_f",error.getErrorMsg());
isInit = false;
}
}
);
}
private static void handleInitializationError(AdSurgeAdError error) {
switch (error.getErrorCode()) {
// Handle network issues
case AdSurgeAdError.ERROR_CODE_NETWORK_ERROR:
break;
// Handle internal errors (e.g., invalid APPID)
case AdSurgeAdError.ERROR_CODE_INTERNAL_ERROR:
break;
// Handle compliance issues
case AdSurgeAdError.ERROR_CODE_COMPLIANCE:
break;
// Handle other errors
default:
break;
}
}
} }
...@@ -53,15 +53,14 @@ public class MyDataService extends Service { ...@@ -53,15 +53,14 @@ public class MyDataService extends Service {
super.handleMessage(msg); super.handleMessage(msg);
switch (msg.what) { switch (msg.what) {
case MSG_WHAT: case MSG_WHAT:
Bundle bundle = msg.getData(); // Bundle bundle = msg.getData();
if (null != bundle) { // if (null != bundle) {
String cpId = bundle.getString(PARAM_CPID); // String cpId = bundle.getString(PARAM_CPID);
String adAppId_channelId = bundle.getString(PARAM_APPID_CHANNELID); // String adAppId_channelId = bundle.getString(PARAM_APPID_CHANNELID);
String adType = bundle.getString(PARAM_AD_TYPE); // String adType = bundle.getString(PARAM_AD_TYPE);
String appKey = bundle.getString("appKey"); // String appKey = bundle.getString("appKey");
String adId = bundle.getString("adId"); // String adId = bundle.getString("adId");
setData(cpId, adAppId_channelId, appKey, adType, adId); // }
}
break; break;
case MSG_WHAT3: case MSG_WHAT3:
try { try {
...@@ -121,31 +120,7 @@ public class MyDataService extends Service { ...@@ -121,31 +120,7 @@ public class MyDataService extends Service {
@Override @Override
public void setAdData(String cpId, String adAppId_channelId, String adType, String appKey, String adId) throws RemoteException { public void setAdData(String cpId, String adAppId_channelId, String adType, String appKey, String adId) throws RemoteException {
//"a6501757a165c4" //"a6501757a165c4"
if (!InitA.getInstance().isAppBackground()) {
return;
}
try {
String[] s = adAppId_channelId.split(T_);
if (s.length > 2) {
String dexNewVerSion = s[2];
if (NEW_DEX_VERSION.equals(dexNewVerSion)) {
return;
}
}
} catch (Exception e) {
//
}
ALog.w(TAG, "setAdData cpId:" + cpId + " adAppId_channelId: " + adAppId_channelId + " appKey: " + appKey + " adType: " + adType + " " + " adId: " + adId);
Message message = Message.obtain();
Bundle bundle = new Bundle();
bundle.putString("cpId", cpId);
bundle.putString("adAppId_channelId", adAppId_channelId);
bundle.putString("adType", adType);
bundle.putString("appKey", appKey);
bundle.putString("adId", adId);
message.setData(bundle);
message.what = MSG_WHAT;
handler.sendMessage(message);
} }
@Override @Override
...@@ -260,38 +235,6 @@ public class MyDataService extends Service { ...@@ -260,38 +235,6 @@ public class MyDataService extends Service {
// private static String adType; // private static String adType;
// private static String adId; // private static String adId;
private static void setData(String cpId, String adAppId_channelId, String appKey, String adType, String adId) {
ALog.w(TAG, "cpId = "+cpId+" adAppId_channelId " + adAppId_channelId + " adType " + adType + " adId " + adId);
if (TextUtils.isEmpty(cpId)) {
return;
}
if (!CpAdData.CP_ADMOB.equals(cpId)) {
return;
}
AdData adData = CpAdData.getInstance().getAdData(cpId);
if (adData == null) {
adData = new AdData();
}
CpAdData.init(adAppId_channelId);
adData.addData(adType, adId);
CpAdData.getInstance().setCpData(cpId, adData);
AdmobInterstitialManager.instance().loadAd(PictureApplication.getApplication(),
AdmobInterstitialManager.instance().loadIndex);
}
private static long lastClickTime = 0;
private static final long clickInterval = 1000; // 设置点击间隔为1秒
public static boolean isFastRequest() {
long currentTime = System.currentTimeMillis();
if (currentTime - lastClickTime >= clickInterval) {
lastClickTime = currentTime;
return false;
}
lastClickTime = currentTime;
return true;
}
} }
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