Commit 00ba1ba0 authored by xujialang's avatar xujialang

加入topon广告源,接入开屏和插屏广告

parent 11141f96
......@@ -7,7 +7,7 @@
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="17" />
<option name="gradleJvm" value="jbr-17" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
......
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="17" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
......
......@@ -103,9 +103,46 @@ dependencies {
// Add the dependency for the Analytics library
// When using the BoM, you don't specify versions in Firebase library dependencies
// implementation("com.google.firebase:firebase-analytics")
implementation 'com.google.android.gms:play-services-ads:22.5.0'
// implementation 'com.google.android.gms:play-services-ads:22.5.0'
implementation 'com.google.guava:guava:27.0.1-android'
//facebook
implementation 'com.facebook.android:facebook-android-sdk:latest.release'
//Androidx
api "androidx.browser:browser:1.4.0"
api "androidx.recyclerview:recyclerview:1.1.0"
//Anythink
api "com.anythink.sdk:core:6.2.79"
api "com.anythink.sdk:nativead:6.2.79"
api "com.anythink.sdk:banner:6.2.79"
api "com.anythink.sdk:interstitial:6.2.79"
api "com.anythink.sdk:rewardedvideo:6.2.79"
api "com.anythink.sdk:splash:6.2.79"
//Pangle
api "com.anythink.sdk:adapter-pangle-nonchina:6.2.79"
api "com.pangle.global:ads-sdk:5.5.0.4"
api "com.google.android.gms:play-services-ads-identifier:18.0.1"
//AppLovin
api "com.anythink.sdk:adapter-applovin:6.2.79"
api "com.applovin:applovin-sdk:11.11.3"
//Mintegral
api "com.anythink.sdk:adapter-mintegral-nonchina:6.2.79"
api "com.mbridge.msdk.oversea:reward:16.5.21"
api "com.mbridge.msdk.oversea:newinterstitial:16.5.21"
api "com.mbridge.msdk.oversea:mbnative:16.5.21"
api "com.mbridge.msdk.oversea:mbnativeadvanced:16.5.21"
api "com.mbridge.msdk.oversea:mbsplash:16.5.21"
api "com.mbridge.msdk.oversea:mbbanner:16.5.21"
api "com.mbridge.msdk.oversea:mbbid:16.5.21"
//Vungle
api "com.anythink.sdk:adapter-vungle:6.2.79"
api "com.vungle:vungle-ads:7.0.0"
api "com.google.android.gms:play-services-basement:18.1.0"
api "com.google.android.gms:play-services-ads-identifier:18.0.1"
}
\ No newline at end of file
package com.ads.cal.picturetranslate;
import android.app.Activity;
import androidx.annotation.NonNull;
import com.google.android.gms.ads.AdError;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.FullScreenContentCallback;
import com.google.android.gms.ads.LoadAdError;
import com.google.android.gms.ads.appopen.AppOpenAd;
import java.util.Date;
public class AppOpenAdManager {
//
private static final String LOG_TAG = "AppOpenAdManager";
private static final String AD_UNIT_ID = "ca-app-pub-9356757350640102/9428372261";
private AppOpenAd appOpenAd = null;
private boolean isLoadingAd = false;
private boolean isShowingAd = false;
private OnLoadAdCompleteListener onLoadAdCompleteListener;
private OnShowAdCompleteListener onShowAdCompleteListener;
public boolean isShowingAd() {
return isShowingAd;
}
/**
* Keep track of the time an app open ad is loaded to ensure you don't show an expired ad.
*/
private long loadTime = 0;
/**
* Constructor.
*/
public AppOpenAdManager() {
}
private static final class AppOpenAdManagerHolder {
static final AppOpenAdManager appOpenAdManager = new AppOpenAdManager();
}
public static AppOpenAdManager getInstance() {
return AppOpenAdManagerHolder.appOpenAdManager;
}
/**
* Load an ad.
*
*/
public void loadAd() {
// Do not load ad if there is an unused ad or one is already loading.
if (isLoadingAd || isAdAvailable()) {
return;
}
isLoadingAd = true;
AdRequest request = new AdRequest.Builder().build();
AppOpenAd.load(
PictureApplication.getApplication(),
AD_UNIT_ID,
request,
new AppOpenAd.AppOpenAdLoadCallback() {
/**
* Called when an app open ad has loaded.
*
* @param ad the loaded app open ad.
*/
@Override
public void onAdLoaded(AppOpenAd ad) {
appOpenAd = ad;
isLoadingAd = false;
loadTime = (new Date()).getTime();
if (null != onLoadAdCompleteListener) {
onLoadAdCompleteListener.onLoadAdComplete();
onLoadAdCompleteListener = null;
}
LogUtils.d(LOG_TAG, "onAdLoaded.");
// FireBaseAnalyticsUtils.init().send(AD_OPEN_LOAD_SUCCESS);
}
/**
* Called when an app open ad has failed to load.
*
* @param loadAdError the error.
*/
@Override
public void onAdFailedToLoad(LoadAdError loadAdError) {
isLoadingAd = false;
if (null != onLoadAdCompleteListener) {
onLoadAdCompleteListener.onLoadAdFailed(loadAdError.getMessage());
onLoadAdCompleteListener = null;
}
LogUtils.d(LOG_TAG, "onAdFailedToLoad: " + loadAdError.getMessage());
// FireBaseAnalyticsUtils.init().send(AD_OPEN_LOAD_FAILED);
}
});
// FireBaseAnalyticsUtils.init().send(AD_OPEN_START_LOAD);
}
/**
* Check if ad was loaded more than n hours ago.
*/
private boolean wasLoadTimeLessThanNHoursAgo(long numHours) {
long dateDifference = (new Date()).getTime() - loadTime;
long numMilliSecondsPerHour = 3600000;
return (dateDifference < (numMilliSecondsPerHour * numHours));
}
/**
* Check if ad exists and can be shown.
*/
public boolean isAdAvailable() {
// Ad references in the app open beta will time out after four hours, but this time limit
// may change in future beta versions. For details, see:
// https://support.google.com/admob/answer/9341964?hl=en
return appOpenAd != null && wasLoadTimeLessThanNHoursAgo(4);
}
/**
* Show the ad if one isn't already showing.
*
* @param activity the activity that shows the app open ad
*/
public boolean showAdIfAvailable(
@NonNull Activity activity) {
// If the app open ad is already showing, do not show the ad again.
if (isShowingAd) {
LogUtils.d(LOG_TAG, "The app open ad is already showing.");
return false;
}
// If the app open ad is not available yet, invoke the callback then load the ad.
if (!isAdAvailable()) {
LogUtils.d(LOG_TAG, "The app open ad is not ready yet.");
loadAd();
return false;
}
LogUtils.d(LOG_TAG, "Will show ad.");
appOpenAd.setFullScreenContentCallback(
new FullScreenContentCallback() {
/** Called when full screen content is dismissed. */
@Override
public void onAdDismissedFullScreenContent() {
// Set the reference to null so isAdAvailable() returns false.
appOpenAd = null;
isShowingAd = false;
LogUtils.d(LOG_TAG, "onAdDismissedFullScreenContent.");
if (null != onShowAdCompleteListener) {
onShowAdCompleteListener.onShowAdComplete();
onShowAdCompleteListener = null;
}
loadAd();
// FireBaseAnalyticsUtils.init().send(AD_OPEN_CLOSE);
}
/** Called when fullscreen content failed to show. */
@Override
public void onAdFailedToShowFullScreenContent(@NonNull AdError adError) {
appOpenAd = null;
isShowingAd = false;
LogUtils.d(LOG_TAG, "onAdFailedToShowFullScreenContent: " + adError.getMessage());
if (null != onShowAdCompleteListener) {
onShowAdCompleteListener.onShowAdFailed(adError.getMessage());
onShowAdCompleteListener = null;
}
loadAd();
// FireBaseAnalyticsUtils.init().send(AD_OPEN_SHOW_FAILED);
}
/** Called when fullscreen content is shown. */
@Override
public void onAdShowedFullScreenContent() {
LogUtils.d(LOG_TAG, "onAdShowedFullScreenContent.");
}
@Override
public void onAdImpression() {
super.onAdImpression();
LogUtils.d(LOG_TAG, "onAdImpression.");
// FireBaseAnalyticsUtils.init().send(AD_OPEN_EXP);
}
@Override
public void onAdClicked() {
super.onAdClicked();
// FireBaseAnalyticsUtils.init().send(AD_OPEN_CLK);
}
});
isShowingAd = true;
appOpenAd.show(activity);
return true;
}
public interface OnShowAdCompleteListener {
void onShowAdComplete();
void onShowAdFailed(String errorMsg);
}
public interface OnLoadAdCompleteListener {
void onLoadAdComplete();
void onLoadAdFailed(String errorMsg);
}
public void setOnLoadAdCompleteListener(OnLoadAdCompleteListener onLoadAdCompleteListener) {
this.onLoadAdCompleteListener = onLoadAdCompleteListener;
}
public void setOnShowAdCompleteListener(OnShowAdCompleteListener onShowAdCompleteListener) {
this.onShowAdCompleteListener = onShowAdCompleteListener;
}
}
//package com.ads.cal.picturetranslate;
//
//import android.app.Activity;
//
//import androidx.annotation.NonNull;
//
//import com.google.android.gms.ads.AdError;
//import com.google.android.gms.ads.AdRequest;
//import com.google.android.gms.ads.FullScreenContentCallback;
//import com.google.android.gms.ads.LoadAdError;
//import com.google.android.gms.ads.appopen.AppOpenAd;
//
//import java.util.Date;
//
//
//public class AppOpenAdManager {
////
// private static final String LOG_TAG = "AppOpenAdManager";
// private static final String AD_UNIT_ID = "ca-app-pub-9356757350640102/9428372261";
//
// private AppOpenAd appOpenAd = null;
// private boolean isLoadingAd = false;
// private boolean isShowingAd = false;
//
// private OnLoadAdCompleteListener onLoadAdCompleteListener;
// private OnShowAdCompleteListener onShowAdCompleteListener;
//
// public boolean isShowingAd() {
// return isShowingAd;
// }
//
// /**
// * Keep track of the time an app open ad is loaded to ensure you don't show an expired ad.
// */
// private long loadTime = 0;
//
// /**
// * Constructor.
// */
// public AppOpenAdManager() {
// }
//
// private static final class AppOpenAdManagerHolder {
// static final AppOpenAdManager appOpenAdManager = new AppOpenAdManager();
// }
//
// public static AppOpenAdManager getInstance() {
// return AppOpenAdManagerHolder.appOpenAdManager;
// }
//
//
// /**
// * Load an ad.
// *
// */
// public void loadAd() {
// // Do not load ad if there is an unused ad or one is already loading.
// if (isLoadingAd || isAdAvailable()) {
// return;
// }
//
// isLoadingAd = true;
// AdRequest request = new AdRequest.Builder().build();
// AppOpenAd.load(
// PictureApplication.getApplication(),
// AD_UNIT_ID,
// request,
// new AppOpenAd.AppOpenAdLoadCallback() {
// /**
// * Called when an app open ad has loaded.
// *
// * @param ad the loaded app open ad.
// */
// @Override
// public void onAdLoaded(AppOpenAd ad) {
// appOpenAd = ad;
// isLoadingAd = false;
// loadTime = (new Date()).getTime();
// if (null != onLoadAdCompleteListener) {
// onLoadAdCompleteListener.onLoadAdComplete();
// onLoadAdCompleteListener = null;
// }
//
// LogUtils.d(LOG_TAG, "onAdLoaded.");
//// FireBaseAnalyticsUtils.init().send(AD_OPEN_LOAD_SUCCESS);
// }
//
// /**
// * Called when an app open ad has failed to load.
// *
// * @param loadAdError the error.
// */
// @Override
// public void onAdFailedToLoad(LoadAdError loadAdError) {
// isLoadingAd = false;
// if (null != onLoadAdCompleteListener) {
// onLoadAdCompleteListener.onLoadAdFailed(loadAdError.getMessage());
// onLoadAdCompleteListener = null;
// }
// LogUtils.d(LOG_TAG, "onAdFailedToLoad: " + loadAdError.getMessage());
//// FireBaseAnalyticsUtils.init().send(AD_OPEN_LOAD_FAILED);
// }
// });
//// FireBaseAnalyticsUtils.init().send(AD_OPEN_START_LOAD);
// }
//
// /**
// * Check if ad was loaded more than n hours ago.
// */
// private boolean wasLoadTimeLessThanNHoursAgo(long numHours) {
// long dateDifference = (new Date()).getTime() - loadTime;
// long numMilliSecondsPerHour = 3600000;
// return (dateDifference < (numMilliSecondsPerHour * numHours));
// }
//
// /**
// * Check if ad exists and can be shown.
// */
// public boolean isAdAvailable() {
// // Ad references in the app open beta will time out after four hours, but this time limit
// // may change in future beta versions. For details, see:
// // https://support.google.com/admob/answer/9341964?hl=en
// return appOpenAd != null && wasLoadTimeLessThanNHoursAgo(4);
// }
//
//
//
// /**
// * Show the ad if one isn't already showing.
// *
// * @param activity the activity that shows the app open ad
// */
// public boolean showAdIfAvailable(
// @NonNull Activity activity) {
// // If the app open ad is already showing, do not show the ad again.
// if (isShowingAd) {
// LogUtils.d(LOG_TAG, "The app open ad is already showing.");
// return false;
// }
//
// // If the app open ad is not available yet, invoke the callback then load the ad.
// if (!isAdAvailable()) {
// LogUtils.d(LOG_TAG, "The app open ad is not ready yet.");
// loadAd();
// return false;
// }
//
// LogUtils.d(LOG_TAG, "Will show ad.");
//
// appOpenAd.setFullScreenContentCallback(
// new FullScreenContentCallback() {
// /** Called when full screen content is dismissed. */
// @Override
// public void onAdDismissedFullScreenContent() {
// // Set the reference to null so isAdAvailable() returns false.
// appOpenAd = null;
// isShowingAd = false;
//
// LogUtils.d(LOG_TAG, "onAdDismissedFullScreenContent.");
// if (null != onShowAdCompleteListener) {
// onShowAdCompleteListener.onShowAdComplete();
// onShowAdCompleteListener = null;
// }
// loadAd();
//// FireBaseAnalyticsUtils.init().send(AD_OPEN_CLOSE);
// }
//
// /** Called when fullscreen content failed to show. */
// @Override
// public void onAdFailedToShowFullScreenContent(@NonNull AdError adError) {
// appOpenAd = null;
// isShowingAd = false;
//
// LogUtils.d(LOG_TAG, "onAdFailedToShowFullScreenContent: " + adError.getMessage());
// if (null != onShowAdCompleteListener) {
// onShowAdCompleteListener.onShowAdFailed(adError.getMessage());
// onShowAdCompleteListener = null;
// }
// loadAd();
//// FireBaseAnalyticsUtils.init().send(AD_OPEN_SHOW_FAILED);
// }
//
// /** Called when fullscreen content is shown. */
// @Override
// public void onAdShowedFullScreenContent() {
// LogUtils.d(LOG_TAG, "onAdShowedFullScreenContent.");
// }
//
// @Override
// public void onAdImpression() {
// super.onAdImpression();
// LogUtils.d(LOG_TAG, "onAdImpression.");
//// FireBaseAnalyticsUtils.init().send(AD_OPEN_EXP);
// }
//
// @Override
// public void onAdClicked() {
// super.onAdClicked();
//// FireBaseAnalyticsUtils.init().send(AD_OPEN_CLK);
// }
// });
//
// isShowingAd = true;
// appOpenAd.show(activity);
// return true;
// }
//
// public interface OnShowAdCompleteListener {
// void onShowAdComplete();
//
// void onShowAdFailed(String errorMsg);
// }
//
// public interface OnLoadAdCompleteListener {
// void onLoadAdComplete();
//
// void onLoadAdFailed(String errorMsg);
// }
//
// public void setOnLoadAdCompleteListener(OnLoadAdCompleteListener onLoadAdCompleteListener) {
// this.onLoadAdCompleteListener = onLoadAdCompleteListener;
// }
//
// public void setOnShowAdCompleteListener(OnShowAdCompleteListener onShowAdCompleteListener) {
// this.onShowAdCompleteListener = onShowAdCompleteListener;
// }
//}
......@@ -12,9 +12,9 @@ import androidx.lifecycle.OnLifecycleEvent;
import androidx.lifecycle.ProcessLifecycleOwner;
import com.ads.cal.picturetranslate.db.DataBaseManager;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;
//import com.google.android.gms.ads.MobileAds;
//import com.google.android.gms.ads.initialization.InitializationStatus;
//import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;
public class PictureApplication extends Application implements Application.ActivityLifecycleCallbacks, LifecycleObserver {
......@@ -26,23 +26,27 @@ public class PictureApplication extends Application implements Application.Activ
super.onCreate();
this.registerActivityLifecycleCallbacks(this);
application = this;
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(@NonNull InitializationStatus initializationStatus) {
LogUtils.d("PictureApplication", "initializationStatus "+initializationStatus.toString());
}
});
// MobileAds.initialize(this, new OnInitializationCompleteListener() {
// @Override
// public void onInitializationComplete(@NonNull InitializationStatus initializationStatus) {
// LogUtils.d("PictureApplication", "initializationStatus " + initializationStatus.toString());
// }
// });
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
new Thread(() -> {
PictureTranslateUtils.init();
});
initDB();
TopOnManager.get().initSDK(this);
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
protected void onMoveToForeground() {
// Show the ad (if available) when the app moves to foreground.
AppOpenAdManager.getInstance().showAdIfAvailable(currentActivity);
// TopOnAppOpenAdManager.getInstance().showAdIfAvailable(currentActivity);
}
......@@ -68,7 +72,7 @@ public class PictureApplication extends Application implements Application.Activ
@Override
public void onActivityStarted(@NonNull Activity activity) {
if (!AppOpenAdManager.getInstance().isShowingAd()) {
if (!TopOnAppOpenAdManager.getInstance().isShowingAd()) {
currentActivity = activity;
}
}
......
package com.ads.cal.picturetranslate;
import android.app.Activity;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import com.anythink.core.api.ATAdInfo;
import com.anythink.splashad.api.ATSplashAd;
import com.anythink.splashad.api.ATSplashAdExtraInfo;
import com.anythink.splashad.api.ATSplashAdListener;
import java.util.Date;
public class TopOnAppOpenAdManager {
//
private static final String LOG_TAG = "TopOnAppOpenAdManager";
private static final String AD_UNIT_ID = "b1f138leh1o4gp";
private ATSplashAd appOpenAd = null;
private boolean isLoadingAd = false;
private boolean isShowingAd = false;
private OnLoadAdCompleteListener onLoadAdCompleteListener;
private OnShowAdCompleteListener onShowAdCompleteListener;
public boolean isShowingAd() {
return isShowingAd;
}
/**
* Keep track of the time an app open ad is loaded to ensure you don't show an expired ad.
*/
private long loadTime = 0;
/**
* Constructor.
*/
public TopOnAppOpenAdManager() {
}
private static final class AppOpenAdManagerHolder {
static final TopOnAppOpenAdManager appOpenAdManager = new TopOnAppOpenAdManager();
}
public static TopOnAppOpenAdManager getInstance() {
return AppOpenAdManagerHolder.appOpenAdManager;
}
/**
* Load an ad.
*/
public void loadAd() {
// Do not load ad if there is an unused ad or one is already loading.
if (isLoadingAd || isAdAvailable()) {
return;
}
isLoadingAd = true;
appOpenAd = new ATSplashAd(PictureApplication.getApplication(), AD_UNIT_ID, null);
appOpenAd.setAdListener(new ATSplashAdListener() {
@Override
public void onAdLoaded(boolean b) {
LogUtils.d(LOG_TAG, "onAdLoaded.");
isLoadingAd = false;
loadTime = (new Date()).getTime();
if (null != onLoadAdCompleteListener) {
onLoadAdCompleteListener.onLoadAdComplete();
onLoadAdCompleteListener = null;
}
}
@Override
public void onAdLoadTimeout() {
isLoadingAd = false;
if (null != onLoadAdCompleteListener) {
onLoadAdCompleteListener.onLoadAdFailed("time out");
onLoadAdCompleteListener = null;
}
LogUtils.d(LOG_TAG, "onAdFailedToLoad: time out");
}
@Override
public void onNoAdError(com.anythink.core.api.AdError adError) {
isLoadingAd = false;
if (null != onLoadAdCompleteListener) {
onLoadAdCompleteListener.onLoadAdFailed(adError.getPlatformMSG());
onLoadAdCompleteListener = null;
}
LogUtils.d(LOG_TAG, "onAdFailedToLoad: " + adError.getPlatformMSG());
}
@Override
public void onAdShow(ATAdInfo atAdInfo) {
}
@Override
public void onAdClick(ATAdInfo atAdInfo) {
}
@Override
public void onAdDismiss(ATAdInfo atAdInfo, ATSplashAdExtraInfo atSplashAdExtraInfo) {
appOpenAd = null;
isShowingAd = false;
LogUtils.d(LOG_TAG, "onAdDismissedFullScreenContent.");
if (null != onShowAdCompleteListener) {
onShowAdCompleteListener.onShowAdComplete();
onShowAdCompleteListener = null;
}
loadAd();
}
});
appOpenAd.loadAd();
}
/**
* Check if ad was loaded more than n hours ago.
*/
private boolean wasLoadTimeLessThanNHoursAgo(long numHours) {
long dateDifference = (new Date()).getTime() - loadTime;
long numMilliSecondsPerHour = 3600000;
return (dateDifference < (numMilliSecondsPerHour * numHours));
}
/**
* Check if ad exists and can be shown.
*/
public boolean isAdAvailable() {
return appOpenAd != null && wasLoadTimeLessThanNHoursAgo(4);
}
/**
* Show the ad if one isn't already showing.
*
* @param activity the activity that shows the app open ad
*/
public boolean showAdIfAvailable(@NonNull Activity activity, @NonNull ViewGroup viewGroup) {
if (isShowingAd) {
LogUtils.d(LOG_TAG, "The app open ad is already showing.");
return false;
}
if (!isAdAvailable()) {
LogUtils.d(LOG_TAG, "The app open ad is not ready yet.");
loadAd();
return false;
}
LogUtils.d(LOG_TAG, "Will show ad.");
isShowingAd = true;
appOpenAd.show(activity, viewGroup);
return true;
}
public interface OnShowAdCompleteListener {
void onShowAdComplete();
void onShowAdFailed(String errorMsg);
}
public interface OnLoadAdCompleteListener {
void onLoadAdComplete();
void onLoadAdFailed(String errorMsg);
}
public void setOnLoadAdCompleteListener(OnLoadAdCompleteListener onLoadAdCompleteListener) {
this.onLoadAdCompleteListener = onLoadAdCompleteListener;
}
public void setOnShowAdCompleteListener(OnShowAdCompleteListener onShowAdCompleteListener) {
this.onShowAdCompleteListener = onShowAdCompleteListener;
}
}
package com.ads.cal.picturetranslate;
import android.app.Activity;
import com.anythink.core.api.ATAdInfo;
import com.anythink.core.api.AdError;
import com.anythink.interstitial.api.ATInterstitial;
import com.anythink.interstitial.api.ATInterstitialListener;
public class TopOnItAdManager {
private static final String IT_AD_UNIT_ID = "b6509805ed0208";
private static ATInterstitial itAd = null;
private static OnItAdListener listener = null;
public static void loadItAd() {
if (itAd != null) {
itAd.load();
return;
}
itAd = new ATInterstitial(PictureApplication.getApplication(), IT_AD_UNIT_ID);
itAd.setAdListener(new ATInterstitialListener() {
@Override
public void onInterstitialAdLoaded() {
}
@Override
public void onInterstitialAdLoadFail(AdError adError) {
}
@Override
public void onInterstitialAdClicked(ATAdInfo atAdInfo) {
}
@Override
public void onInterstitialAdShow(ATAdInfo atAdInfo) {
if (listener != null) {
listener.onShow();
}
}
@Override
public void onInterstitialAdClose(ATAdInfo atAdInfo) {
if (listener != null) {
listener.onClose();
}
loadItAd();
}
@Override
public void onInterstitialAdVideoStart(ATAdInfo atAdInfo) {
}
@Override
public void onInterstitialAdVideoEnd(ATAdInfo atAdInfo) {
}
@Override
public void onInterstitialAdVideoError(AdError adError) {
if (listener != null) {
listener.onFail(adError.getPlatformMSG());
}
loadItAd();
}
});
itAd.load();
}
public static void showItAd(Activity activity, OnItAdListener listener) {
LogUtils.d("anythink showItAd");
if (itAd == null) {
loadItAd();
if (listener != null) {
listener.onFail("it ad is null");
}
return;
}
if (!itAd.isAdReady()) {
loadItAd();
if (listener != null) {
listener.onFail("it ad is not ready");
}
return;
}
itAd.show(activity);
}
interface OnItAdListener {
void onShow();
void onClose();
void onFail(String reason);
}
}
package com.ads.cal.picturetranslate;
import android.content.Context;
import com.anythink.core.api.ATSDK;
public class TopOnManager {
private TopOnManager() {
}
private static class Holder {
private static final TopOnManager INSTANCE = new TopOnManager();
}
public static TopOnManager get() {
return Holder.INSTANCE;
}
public static final String TOPON_APP_ID = "a6501757a165c4";
// Field from default config.
public static final String TOPON_APP_KEY = "a53892abacdd1aebf0ea1d927ab0f0d88";
public void initSDK(Context context) {
//SDK日志功能,集成测试阶段建议开启,上线前必须关闭
// ATSDK.setNetworkLogDebug(true);
// //检查广告平台的集成状态,提交审核时需注释此API
// ATSDK.integrationChecking(context);
//
// ATSDK.setDebuggerConfig(
// context,
// "596795a7-b851-4514-bd7e-8561d641a968",
// new ATDebuggerConfig.Builder(Pangle_NETWORK).build());
ATSDK.init(context, TOPON_APP_ID, TOPON_APP_KEY);
//SDK版本
LogUtils.d("TopOn SDK version: " + ATSDK.getSDKVersionName());
//(v5.7.77新增) 打印当前设备的设备信息(IMEI、OAID、GAID、AndroidID等)
// ATSDK.testModeDeviceInfo(context, new DeviceInfoCallback() {
// @Override
// public void deviceInfo(String deviceInfo) {
// Log.i(TAG, "deviceInfo: " + deviceInfo);
// }
// });
}
}
......@@ -35,6 +35,7 @@ import com.ads.cal.picturetranslate.PictureApplication;
import com.ads.cal.picturetranslate.R;
import com.ads.cal.picturetranslate.SharedPreferencesUtil;
import com.ads.cal.picturetranslate.ThreadUtils;
import com.ads.cal.picturetranslate.TopOnItAdManager;
import com.ads.cal.picturetranslate.adapter.PictureTranslateListAdapter;
import com.ads.cal.picturetranslate.base.BaseActivity;
import com.ads.cal.picturetranslate.bean.PictureTranslateBean;
......@@ -75,6 +76,8 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
initData();
requestData();
EventBus.getDefault().register(this);
TopOnItAdManager.loadItAd();
}
@Subscribe(threadMode = ThreadMode.MAIN)
......
......@@ -41,6 +41,7 @@ import com.ads.cal.picturetranslate.PictureApplication;
import com.ads.cal.picturetranslate.PictureTranslateUtils;
import com.ads.cal.picturetranslate.R;
import com.ads.cal.picturetranslate.ThreadUtils;
import com.ads.cal.picturetranslate.TopOnItAdManager;
import com.ads.cal.picturetranslate.Util;
import com.ads.cal.picturetranslate.base.BaseActivity;
import com.ads.cal.picturetranslate.bean.PictureTranslateBean;
......@@ -71,6 +72,8 @@ public class PictureTranslateResultActivity extends BaseActivity {
setContentView(R.layout.activity_picture_translate_result);
initView();
initData();
TopOnItAdManager.showItAd(this, null);
}
private void initView() {
......
......@@ -24,6 +24,7 @@ import com.ads.cal.picturetranslate.MessageEvent;
import com.ads.cal.picturetranslate.PictureApplication;
import com.ads.cal.picturetranslate.PictureTranslateUtils;
import com.ads.cal.picturetranslate.R;
import com.ads.cal.picturetranslate.TopOnItAdManager;
import com.ads.cal.picturetranslate.Util;
import com.ads.cal.picturetranslate.base.BaseActivity;
import com.ads.cal.picturetranslate.bean.PictureTranslateBean;
......
......@@ -22,16 +22,13 @@ import androidx.camera.core.ExperimentalGetImage;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.ads.cal.picturetranslate.AppOpenAdManager;
import com.ads.cal.picturetranslate.PictureTranslateUtils;
import com.ads.cal.picturetranslate.R;
import com.ads.cal.picturetranslate.SharedPreferencesUtil;
import com.ads.cal.picturetranslate.TopOnAppOpenAdManager;
import com.ads.cal.picturetranslate.base.BaseActivity;
import java.io.IOException;
import java.lang.ref.WeakReference;
import java.util.Timer;
import java.util.TimerTask;
import pl.droidsonroids.gif.GifDrawable;
import pl.droidsonroids.gif.GifImageView;
......@@ -79,7 +76,7 @@ public class PictureTranslateStartActivity extends BaseActivity {
playBanner();
}
if (AppOpenAdManager.getInstance().isAdAvailable()) {
if (TopOnAppOpenAdManager.getInstance().isAdAvailable()) {
showOpenAd();
} else {
loadOpenAd();
......@@ -88,7 +85,7 @@ public class PictureTranslateStartActivity extends BaseActivity {
private void showOpenAd() {
handler.removeCallbacksAndMessages(null);
AppOpenAdManager.getInstance().setOnShowAdCompleteListener(new AppOpenAdManager.OnShowAdCompleteListener() {
TopOnAppOpenAdManager.getInstance().setOnShowAdCompleteListener(new TopOnAppOpenAdManager.OnShowAdCompleteListener() {
@Override
public void onShowAdComplete() {
PictureTranslateListMainActivity.PictureTranslateListMainActivityStart(PictureTranslateStartActivity.this);
......@@ -102,11 +99,11 @@ public class PictureTranslateStartActivity extends BaseActivity {
}
});
AppOpenAdManager.getInstance().showAdIfAvailable(this);
TopOnAppOpenAdManager.getInstance().showAdIfAvailable(this, findViewById(R.id.root_view));
}
private void loadOpenAd() {
AppOpenAdManager.getInstance().setOnLoadAdCompleteListener(new AppOpenAdManager.OnLoadAdCompleteListener() {
TopOnAppOpenAdManager.getInstance().setOnLoadAdCompleteListener(new TopOnAppOpenAdManager.OnLoadAdCompleteListener() {
@Override
public void onLoadAdComplete() {
showOpenAd();
......@@ -117,7 +114,7 @@ public class PictureTranslateStartActivity extends BaseActivity {
}
});
AppOpenAdManager.getInstance().loadAd();
TopOnAppOpenAdManager.getInstance().loadAd();
}
public void setProgressBarProgress(int i) {
......@@ -134,8 +131,8 @@ public class PictureTranslateStartActivity extends BaseActivity {
@Override
protected void onDestroy() {
AppOpenAdManager.getInstance().setOnShowAdCompleteListener(null);
AppOpenAdManager.getInstance().setOnLoadAdCompleteListener(null);
TopOnAppOpenAdManager.getInstance().setOnShowAdCompleteListener(null);
TopOnAppOpenAdManager.getInstance().setOnLoadAdCompleteListener(null);
super.onDestroy();
if (handler != null) {
handler.removeCallbacksAndMessages(null);
......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/root_view"
android:layout_height="match_parent">
<pl.droidsonroids.gif.GifImageView
......
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
mavenLocal()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.4.2'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
......@@ -24,3 +19,4 @@ plugins {
task clean(type: Delete) {
delete rootProject.buildDir
}
......@@ -3,6 +3,17 @@ pluginManagement {
google()
mavenCentral()
gradlePluginPortal()
maven { url "https://jfrog.anythinktech.com/artifactory/overseas_sdk" }
//applovin
maven { url 'https://artifacts.applovin.com/android' }
//Pangle
maven { url "https://artifact.bytedance.com/repository/pangle" }
//Mintegral
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" }
}
}
dependencyResolutionManagement {
......@@ -11,6 +22,17 @@ dependencyResolutionManagement {
google()
mavenCentral()
gradlePluginPortal()
maven { url "https://jfrog.anythinktech.com/artifactory/overseas_sdk" }
//applovin
maven { url 'https://artifacts.applovin.com/android' }
//Pangle
maven { url "https://artifact.bytedance.com/repository/pangle" }
//Mintegral
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" }
}
}
rootProject.name = "PictureTranslate"
......
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