V1.0.2(3) topon广告

This commit is contained in:
litingting 2024-11-26 10:15:54 +08:00
parent 11f29c628a
commit 639a94e235
16 changed files with 613 additions and 20 deletions

View File

@ -16,8 +16,8 @@ android {
applicationId = "com.key.keyboard.theme" applicationId = "com.key.keyboard.theme"
minSdk = 23 minSdk = 23
targetSdk = 34 targetSdk = 34
versionCode = 2 versionCode = 3
versionName = "1.0.1" versionName = "1.0.2"
setProperty("archivesBaseName", "Keyboard Themes_V" + versionName + "(${versionCode})_$timestamp") setProperty("archivesBaseName", "Keyboard Themes_V" + versionName + "(${versionCode})_$timestamp")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables { vectorDrawables {
@ -77,4 +77,96 @@ dependencies {
implementation("com.google.firebase:firebase-analytics") implementation("com.google.firebase:firebase-analytics")
implementation("com.google.firebase:firebase-config") implementation("com.google.firebase:firebase-config")
//-----------------------------------------------TopOn(Mintegral、Pangle、UnitAds、Digital Turbine(Fyber)、Chartboost&Helium、Ironsource、Liftoff(Vungle)、Inmobi、Start.io、Appnext、Bigo)
//Anythink (Necessary)
implementation("com.anythink.sdk:core-tpn:6.4.07")
implementation("com.anythink.sdk:nativead-tpn:6.4.07")
implementation("com.anythink.sdk:banner-tpn:6.4.07")
implementation("com.anythink.sdk:interstitial-tpn:6.4.07")
implementation("com.anythink.sdk:rewardedvideo-tpn:6.4.07")
implementation("com.anythink.sdk:splash-tpn:6.4.07")
//Androidx (Necessary)
implementation("androidx.appcompat:appcompat:1.1.0")
implementation("androidx.browser:browser:1.4.0")
//StartApp
implementation("com.anythink.sdk:adapter-tpn-startapp:6.4.07")
implementation("com.startapp:inapp-sdk:5.0.2")
//Appnext
implementation("com.anythink.sdk:adapter-tpn-appnext:6.4.07")
implementation("com.appnext.sdk:ads:2.7.1.473")
implementation("com.appnext.sdk:banners:2.7.1.473")
implementation("com.appnext.sdk:native-ads2:2.7.1.473")
implementation("com.appnext.sdk:actions:2.4.6.472")
implementation("androidx.constraintlayout:constraintlayout:2.0.4")
//Vungle
implementation("com.anythink.sdk:adapter-tpn-vungle:6.4.07")
implementation("com.vungle:vungle-ads:7.4.0")
implementation("com.google.android.gms:play-services-basement:18.1.0")
implementation("com.google.android.gms:play-services-ads-identifier:18.0.1")
//UnityAds
implementation("com.anythink.sdk:adapter-tpn-unityads:6.4.07")
implementation("com.unity3d.ads:unity-ads:4.12.2")
//Ironsource
implementation("com.anythink.sdk:adapter-tpn-ironsource:6.4.07")
implementation("com.ironsource.sdk:mediationsdk:8.2.1")
implementation("com.google.android.gms:play-services-appset:16.0.2")
implementation("com.google.android.gms:play-services-ads-identifier:18.0.1")
implementation("com.google.android.gms:play-services-basement:18.1.0")
//Bigo
implementation("com.anythink.sdk:adapter-tpn-bigo:6.4.07")
implementation("com.bigossp:bigo-ads:4.9.0")
//Pangle
implementation("com.anythink.sdk:adapter-tpn-pangle-nonchina:6.4.07")
implementation("com.pangle.global:ads-sdk:6.1.0.9")
implementation("com.google.android.gms:play-services-ads-identifier:18.0.1")
//Inmobi
implementation("com.anythink.sdk:adapter-tpn-inmobi:6.4.07")
implementation("com.inmobi.monetization:inmobi-ads-kotlin:10.7.5")
//Mintegral
implementation("com.anythink.sdk:adapter-tpn-mintegral-nonchina:6.4.07")
implementation("com.mbridge.msdk.oversea:reward:16.8.11")
implementation("com.mbridge.msdk.oversea:newinterstitial:16.8.11")
implementation("com.mbridge.msdk.oversea:mbnative:16.8.11")
implementation("com.mbridge.msdk.oversea:mbnativeadvanced:16.8.11")
implementation("com.mbridge.msdk.oversea:mbsplash:16.8.11")
implementation("com.mbridge.msdk.oversea:mbbanner:16.8.11")
implementation("com.mbridge.msdk.oversea:mbbid:16.8.11")
implementation("androidx.recyclerview:recyclerview:1.1.0")
//Chartboost
implementation("com.anythink.sdk:adapter-tpn-chartboost:6.4.07")
implementation("com.chartboost:chartboost-sdk:9.7.0")
implementation("com.chartboost:chartboost-mediation-sdk:4.9.1")
implementation("com.chartboost:chartboost-mediation-adapter-chartboost:4.9.7.0.0")
implementation("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0")
implementation("com.squareup.okhttp3:logging-interceptor:4.10.0")
implementation("com.squareup.okhttp3:okhttp:4.10.0")
implementation("com.squareup.retrofit2:converter-scalars:2.9.0")
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1")
//Fyber
implementation("com.anythink.sdk:adapter-tpn-fyber:6.4.07")
implementation("com.fyber:marketplace-sdk:8.3.0")
implementation("com.google.android.gms:play-services-ads-identifier:18.0.1")
// Debugger UI Tools
//implementation ("com.anythink.sdk:debugger-ui:1.0.7")
//----------------------------------------------TopOn
} }

130
app/proguard-rules.pro vendored
View File

@ -23,3 +23,133 @@
-keep class com.omicronapplications.** { *; } -keep class com.omicronapplications.** { *; }
-keep class net.sf.sevenzipjbinding.** { *; } -keep class net.sf.sevenzipjbinding.** { *; }
-keep class com.keyboard.theme.app.keyboard.data.InfoChild { *; } -keep class com.keyboard.theme.app.keyboard.data.InfoChild { *; }
#---------------------------------------------Topon
-keep class com.startapp.** {
*;
}
-keep class com.truenet.** {
*;
}
-keepattributes Exceptions, InnerClasses, Signature, Deprecated, SourceFile,
LineNumberTable, *Annotation*, EnclosingMethod
-dontwarn android.webkit.JavascriptInterface
-dontwarn com.startapp.**
-dontwarn org.jetbrains.annotations.**
-keep class com.appnext.** { *; }
-dontwarn com.appnext.**
# Vungle
-dontwarn com.vungle.ads.**
-keepclassmembers class com.vungle.ads.** {
*;
}
-keep class com.vungle.ads.**
# Google
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**
# START OkHttp + Okio
# JSR 305 annotations are for embedding nullability information.
-dontwarn javax.annotation.**
# A resource is loaded with a relative path so the package of this class must be preserved.
-adaptresourcefilenames okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
-dontwarn org.codehaus.mojo.animal_sniffer.*
# OkHttp platform used only on JVM and when Conscrypt and other security providers are available.
-dontwarn okhttp3.internal.platform.**
-dontwarn org.conscrypt.**
-dontwarn org.bouncycastle.**
-dontwarn org.openjsse.**
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
-dontwarn org.codehaus.mojo.animal_sniffer.*
# END OkHttp + Okio
# START Protobuf
-dontwarn com.google.protobuf.**
-keepclassmembers class com.google.protobuf.** {
*;
}
-keep class * extends com.google.protobuf.GeneratedMessageLite { *; }
# END Protobuf
-keepclassmembers class com.ironsource.sdk.controller.IronSourceWebView$JSInterface {
public *;
}
-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep public class com.google.android.gms.ads.** {
public *;
}
-keep class com.ironsource.adapters.** { *;
}
-dontwarn com.ironsource.mediationsdk.**
-dontwarn com.ironsource.adapters.**
-keepattributes JavascriptInterface
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-keep class com.bytedance.sdk.** { *; }
-keep class com.inmobi.** { *; }
-keep public class com.google.android.gms.**
-dontwarn com.google.android.gms.**
-dontwarn com.squareup.picasso.**
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient{
public *;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info{
public *;
}
# skip the Picasso library classes
-keep class com.squareup.picasso.** {*;}
-dontwarn com.squareup.okhttp.**
# skip Moat classes
-keep class com.moat.** {*;}
-dontwarn com.moat.**
# skip IAB classes
-keep class com.iab.** {*;}
-dontwarn com.iab.**
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.mbridge.** {*; }
-keep interface com.mbridge.** {*; }
-keep class android.support.v4.** { *; }
-dontwarn com.mbridge.**
-keep class **.R$* { public static final int mbridge*; }
-keep public class com.mbridge.* extends androidx.** { *; }
-keep public class androidx.viewpager.widget.PagerAdapter{ *; }
-keep public class androidx.viewpager.widget.ViewPager.OnPageChangeListener{ *; }
-keep interface androidx.annotation.IntDef{ *; }
-keep interface androidx.annotation.Nullable{ *; }
-keep interface androidx.annotation.CheckResult{ *; }
-keep interface androidx.annotation.NonNull{ *; }
-keep public class androidx.fragment.app.Fragment{ *; }
-keep public class androidx.core.content.FileProvider{ *; }
-keep public class androidx.core.app.NotificationCompat{ *; }
-keep public class androidx.appcompat.widget.AppCompatImageView { *; }
-keep public class androidx.recyclerview.*{ *; }
-keep class com.chartboost.** { *; }
#---------------------------------------------Topon

View File

@ -3,16 +3,25 @@ package com.keyboard.theme.app.keyboard
import android.app.Application import android.app.Application
import android.graphics.Typeface import android.graphics.Typeface
import android.util.Log import android.util.Log
import com.anythink.core.api.ATSDK
import com.anythink.core.api.NetTrafficeCallback
import com.google.firebase.FirebaseApp import com.google.firebase.FirebaseApp
import com.keyboard.theme.app.keyboard.data.Info import com.keyboard.theme.app.keyboard.data.Info
import com.keyboard.theme.app.keyboard.topon.AdManager
import com.keyboard.theme.app.keyboard.utils.FileManager import com.keyboard.theme.app.keyboard.utils.FileManager
class MyAppllication : Application() { class MyAppllication : Application() {
private var APPId = "h674429b34725d"
private var AppKey = "a08025202483213dea1c50c8a26d47a59"
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
instance = this instance = this
initTop()
AdManager.loadAllAd()
FileManager.getFileStr(assets.open("data.json")) { FileManager.getFileStr(assets.open("data.json")) {
if (it != null) { if (it != null) {
requireNotNull(it.isNotEmpty()) requireNotNull(it.isNotEmpty())
@ -35,4 +44,22 @@ class MyAppllication : Application() {
lateinit var font:Typeface lateinit var font:Typeface
} }
private fun initTop(){
ATSDK.checkIsEuTraffic(this, object : NetTrafficeCallback {
override fun onResultCallback(isEU: Boolean) {
if (isEU && ATSDK.getGDPRDataLevel(this@MyAppllication) == ATSDK.UNKNOWN) {
ATSDK.showGdprAuth(this@MyAppllication)
}
}
override fun onErrorCallback(errorMsg: String) {
}
})
ATSDK.init( this, APPId, AppKey)
//测试工具
// ATDebuggerUITest.showDebuggerUI(this,debug_KEy);
}
} }

View File

@ -0,0 +1,10 @@
package com.keyboard.theme.app.keyboard.topon;
public interface AdListener {
void loadFail(String placeId);
void showSuccess();
void showFail();
void showClose();
}

View File

@ -0,0 +1,252 @@
package com.keyboard.theme.app.keyboard.topon;
import android.app.Activity;
import android.os.CountDownTimer;
import android.util.Log;
import androidx.annotation.NonNull;
import com.anythink.core.api.ATAdInfo;
import com.anythink.core.api.AdError;
import com.anythink.interstitial.api.ATInterstitial;
import com.anythink.interstitial.api.ATInterstitialListener;
import com.keyboard.theme.app.keyboard.MyAppllication;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class AdManager {
private static final String TAG = "--------AD---------";
private static final int type_no_cache = 0;
private static final int type_has_cache = 1;
private static final int type_show_success = 2;
private static final int type_show_close = 3;
private static final int type_show_fail = 4;
/**
* 广告单元ID
* Keybaord_INST_3
* n674429cc99cbe
* Keybaord_INST_2
* n674429cc73881
* Keybaord_INST_1
* n674429cc41a88
*/
private static final String place1Id = "n674429cc99cbe";
private static final String place2Id = "n674429cc73881";
private static final String place3Id = "n674429cc41a88";
private static boolean place1LoadFail = false;
private static boolean place2LoadFail = false;
private static boolean place3LoadFail = false;
private static boolean alreadyShow = false;
private static List<ATInterstitial> list = new ArrayList<>();
public static void loadAllAd() {
if (list.size() == 0) {
ATInterstitial mInterstitialAd1 = new ATInterstitial(MyAppllication.instance, place1Id);
ATInterstitial mInterstitialAd2 = new ATInterstitial(MyAppllication.instance, place2Id);
ATInterstitial mInterstitialAd3 = new ATInterstitial(MyAppllication.instance, place3Id);
list.add(mInterstitialAd1);
list.add(mInterstitialAd2);
list.add(mInterstitialAd3);
}
for (ATInterstitial ad : list) {
if (!ad.isAdReady()) {
setCallBack(ad, new AdListener() {
@Override
public void loadFail(@NonNull String placeId) {
if (placeId.equals(place1Id)) {
place1LoadFail = true;
}
if (placeId.equals(place2Id)) {
place2LoadFail = true;
}
if (placeId.equals(place3Id)) {
place3LoadFail = true;
}
}
@Override
public void showSuccess() {
}
@Override
public void showFail() {
}
@Override
public void showClose() {
}
});
ad.load();
}
}
}
private static ATInterstitial getReadyAd() {
Collections.shuffle(list);
for (ATInterstitial ad : list) {
if (ad.isAdReady()) {
Log.d(TAG, "-has Cache------------");
return ad;
}
}
Log.d(TAG, "-No Cache------------");
return null;
}
private static void setCallBack(ATInterstitial ad, AdListener listener) {
ad.setAdListener(new ATInterstitialListener() {
@Override
public void onInterstitialAdLoaded() {
Log.d(TAG, "LoadLoaded " + ad.mPlacementId);
}
@Override
public void onInterstitialAdLoadFail(AdError adError) {
listener.loadFail(ad.mPlacementId);
Log.d(TAG, "LoadFail:--" + ad.mPlacementId + "--" + adError.getCode() + "---" + adError.getDesc());
}
@Override
public void onInterstitialAdClicked(ATAdInfo atAdInfo) {
}
@Override
public void onInterstitialAdShow(ATAdInfo atAdInfo) {
Log.d(TAG, "AdShow " + atAdInfo.getShowId());
listener.showSuccess();
ad.load();
}
@Override
public void onInterstitialAdClose(ATAdInfo atAdInfo) {
listener.showClose();
}
@Override
public void onInterstitialAdVideoStart(ATAdInfo atAdInfo) {
}
@Override
public void onInterstitialAdVideoEnd(ATAdInfo atAdInfo) {
}
@Override
public void onInterstitialAdVideoError(AdError adError) {
}
});
}
public static CountDownTimer showWelcomeAd(
Activity activity,
Long totalTim,
CountAction countAction,
GoMainAction goMain
) {
CountDownTimer timer = new CountDownTimer(totalTim, 100) {
@Override
public void onTick(long millisUntilFinished) {
countAction.onCount(millisUntilFinished);
if (!alreadyShow) {
showAD(activity, new AdStatusAction() {
@Override
public void onStatus(int adType) {
if (adType == type_has_cache) {
alreadyShow = true;
}
if (adType == type_show_close || adType == type_show_fail) {
goMain.onGo();
}
}
});
}
}
@Override
public void onFinish() {
if (!alreadyShow) {
showTopOn(activity, new onActionListener() {
@Override
public void onAction() {
goMain.onGo();
}
});
}
}
};
return timer;
}
private static void showAD(Activity activity, AdStatusAction action) {
ATInterstitial readyAd = getReadyAd();
if (readyAd != null) {
action.onStatus(type_has_cache);
setCallBack(readyAd, new AdListener() {
@Override
public void loadFail(@NonNull String placeId) {
}
@Override
public void showSuccess() {
action.onStatus(type_show_success);
}
@Override
public void showFail() {
action.onStatus(type_show_fail);
}
@Override
public void showClose() {
action.onStatus(type_show_close);
}
});
readyAd.show(activity);
} else {
action.onStatus(type_no_cache);
}
}
public static void showTopOn(Activity activity, onActionListener listener) {
showAD(activity, new AdStatusAction() {
@Override
public void onStatus(int adType) {
if (adType == type_no_cache || adType == type_show_close || adType == type_show_fail) {
listener.onAction();
}
}
});
}
}

View File

@ -0,0 +1,5 @@
package com.keyboard.theme.app.keyboard.topon;
public interface AdStatusAction {
void onStatus(int adType);
}

View File

@ -0,0 +1,5 @@
package com.keyboard.theme.app.keyboard.topon;
public interface CountAction {
void onCount(long millisUntilFinished);
}

View File

@ -0,0 +1,5 @@
package com.keyboard.theme.app.keyboard.topon;
public interface GoMainAction {
void onGo();
}

View File

@ -0,0 +1,6 @@
package com.keyboard.theme.app.keyboard.topon;
public interface onActionListener {
void onAction();
}

View File

@ -21,6 +21,8 @@ import com.keyboard.theme.app.keyboard.MyAppllication;
import com.keyboard.theme.app.keyboard.R; import com.keyboard.theme.app.keyboard.R;
import com.keyboard.theme.app.keyboard.data.InfoChild; import com.keyboard.theme.app.keyboard.data.InfoChild;
import com.keyboard.theme.app.keyboard.databinding.ActivityApplyBinding; import com.keyboard.theme.app.keyboard.databinding.ActivityApplyBinding;
import com.keyboard.theme.app.keyboard.topon.AdManager;
import com.keyboard.theme.app.keyboard.topon.onActionListener;
import com.keyboard.theme.app.keyboard.utils.Common; import com.keyboard.theme.app.keyboard.utils.Common;
import com.keyboard.theme.app.keyboard.utils.FileManager; import com.keyboard.theme.app.keyboard.utils.FileManager;
import com.keyboard.theme.app.keyboard.utils.StaticValue; import com.keyboard.theme.app.keyboard.utils.StaticValue;
@ -40,6 +42,7 @@ public class ActivityApply extends BaseActivity<ActivityApplyBinding> implements
@Override @Override
public ActivityApplyBinding returnViewbinding() { public ActivityApplyBinding returnViewbinding() {
Common.INSTANCE.initFull(this, false); Common.INSTANCE.initFull(this, false);
AdManager.loadAllAd();
return ActivityApplyBinding.inflate(getLayoutInflater()); return ActivityApplyBinding.inflate(getLayoutInflater());
} }
@ -120,6 +123,7 @@ public class ActivityApply extends BaseActivity<ActivityApplyBinding> implements
} }
return; return;
} }
bind.idProgressbar.setVisibility(View.VISIBLE); bind.idProgressbar.setVisibility(View.VISIBLE);
File file = new File(unZipPath); File file = new File(unZipPath);
if (file.exists()) { if (file.exists()) {
@ -165,8 +169,15 @@ public class ActivityApply extends BaseActivity<ActivityApplyBinding> implements
if (v.equals(bind.idBack)) { if (v.equals(bind.idBack)) {
finish(); finish();
} else if (v.equals(bind.idSet)) { } else if (v.equals(bind.idSet)) {
AdManager.showTopOn(this, new onActionListener() {
@Override
public void onAction() {
onapply(); onapply();
} }
});
}
} }
} }

View File

@ -6,13 +6,17 @@ import android.os.CountDownTimer;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.keyboard.theme.app.keyboard.databinding.ActvityLaunBinding; import com.keyboard.theme.app.keyboard.databinding.ActvityLaunBinding;
import com.keyboard.theme.app.keyboard.topon.AdManager;
import com.keyboard.theme.app.keyboard.topon.CountAction;
import com.keyboard.theme.app.keyboard.topon.GoMainAction;
import com.keyboard.theme.app.keyboard.utils.Common; import com.keyboard.theme.app.keyboard.utils.Common;
public class ActivityLauncher extends BaseActivity<ActvityLaunBinding> { public class ActivityLauncher extends BaseActivity<ActvityLaunBinding> {
private long count = 2000L; private long count = 12000L;
private CountDownTimer countDownTimer; private CountDownTimer countDownTimer;
private ActvityLaunBinding binding; private ActvityLaunBinding binding;
@NonNull @NonNull
@Override @Override
public ActvityLaunBinding returnViewbinding() { public ActvityLaunBinding returnViewbinding() {
@ -24,23 +28,25 @@ public class ActivityLauncher extends BaseActivity<ActvityLaunBinding> {
public void onInit() { public void onInit() {
binding = getVb(); binding = getVb();
countDownTimer = new CountDownTimer(count, 100) {
countDownTimer = AdManager.showWelcomeAd(this, count, new CountAction() {
@Override @Override
public void onTick(long millisUntilFinished) { public void onCount(long millisUntilFinished) {
int progressPercentage = (int) ((100 * millisUntilFinished) / count); int progressPercentage = (int) ((100 * millisUntilFinished) / count);
// 或者从 100% 0% 的倒计时 // 或者从 100% 0% 的倒计时
int Percentage = 100 - progressPercentage; int Percentage = 100 - progressPercentage;
binding.progress.setProgress(Percentage); binding.progress.setProgress(Percentage);
} }
}, new GoMainAction() {
@Override @Override
public void onFinish() { public void onGo() {
binding.progress.setProgress(100); binding.progress.setProgress(100);
goHome(); goHome();
} }
}.start(); });
countDownTimer.start();
} }
private void goHome() { private void goHome() {
@ -54,6 +60,7 @@ public class ActivityLauncher extends BaseActivity<ActvityLaunBinding> {
super.onDestroy(); super.onDestroy();
if (countDownTimer != null) { if (countDownTimer != null) {
countDownTimer.cancel(); countDownTimer.cancel();
countDownTimer = null;
} }
} }
} }

View File

@ -13,6 +13,8 @@ import com.keyboard.theme.app.keyboard.api.OnHomeApi;
import com.keyboard.theme.app.keyboard.data.Info; import com.keyboard.theme.app.keyboard.data.Info;
import com.keyboard.theme.app.keyboard.data.InfoChild; import com.keyboard.theme.app.keyboard.data.InfoChild;
import com.keyboard.theme.app.keyboard.databinding.ActivityClassBinding; import com.keyboard.theme.app.keyboard.databinding.ActivityClassBinding;
import com.keyboard.theme.app.keyboard.topon.AdManager;
import com.keyboard.theme.app.keyboard.topon.onActionListener;
import com.keyboard.theme.app.keyboard.utils.Common; import com.keyboard.theme.app.keyboard.utils.Common;
import com.keyboard.theme.app.keyboard.utils.ItemSpace; import com.keyboard.theme.app.keyboard.utils.ItemSpace;
import com.keyboard.theme.app.keyboard.utils.StaticValue; import com.keyboard.theme.app.keyboard.utils.StaticValue;
@ -31,6 +33,7 @@ public class ClassActivity extends BaseActivity<ActivityClassBinding> implements
@Override @Override
public ActivityClassBinding returnViewbinding() { public ActivityClassBinding returnViewbinding() {
Common.INSTANCE.initFull(this, false); Common.INSTANCE.initFull(this, false);
AdManager.loadAllAd();
return ActivityClassBinding.inflate(getLayoutInflater()); return ActivityClassBinding.inflate(getLayoutInflater());
} }
@ -78,10 +81,16 @@ public class ClassActivity extends BaseActivity<ActivityClassBinding> implements
@Override @Override
public void onHomeClick(InfoChild infoChild) { public void onHomeClick(InfoChild infoChild) {
Intent setIntent = new Intent(this, ActivityApply.class); AdManager.showTopOn(this, new onActionListener() {
@Override
public void onAction() {
Intent setIntent = new Intent(ClassActivity.this, ActivityApply.class);
setIntent.putExtra(StaticValue.KEYTheme, infoChild); setIntent.putExtra(StaticValue.KEYTheme, infoChild);
startActivity(setIntent); startActivity(setIntent);
} }
});
}
@Override @Override
public void onHomeClickMore(Info info) { public void onHomeClickMore(Info info) {

View File

@ -12,6 +12,8 @@ import com.keyboard.theme.app.keyboard.api.OnHomeApi;
import com.keyboard.theme.app.keyboard.data.Info; import com.keyboard.theme.app.keyboard.data.Info;
import com.keyboard.theme.app.keyboard.data.InfoChild; import com.keyboard.theme.app.keyboard.data.InfoChild;
import com.keyboard.theme.app.keyboard.databinding.ActivityHomeBinding; import com.keyboard.theme.app.keyboard.databinding.ActivityHomeBinding;
import com.keyboard.theme.app.keyboard.topon.AdManager;
import com.keyboard.theme.app.keyboard.topon.onActionListener;
import com.keyboard.theme.app.keyboard.utils.Common; import com.keyboard.theme.app.keyboard.utils.Common;
import com.keyboard.theme.app.keyboard.utils.StaticValue; import com.keyboard.theme.app.keyboard.utils.StaticValue;
@ -32,6 +34,7 @@ public class MainActivity extends BaseActivity<ActivityHomeBinding> implements O
@Override @Override
public ActivityHomeBinding returnViewbinding() { public ActivityHomeBinding returnViewbinding() {
Common.INSTANCE.initFull(this, false); Common.INSTANCE.initFull(this, false);
AdManager.loadAllAd();
return ActivityHomeBinding.inflate(getLayoutInflater()); return ActivityHomeBinding.inflate(getLayoutInflater());
} }
@ -69,10 +72,16 @@ public class MainActivity extends BaseActivity<ActivityHomeBinding> implements O
@Override @Override
public void onHomeClick(InfoChild infoChild) { public void onHomeClick(InfoChild infoChild) {
Intent setIntent = new Intent(this, ActivityApply.class); AdManager.showTopOn(this, new onActionListener() {
@Override
public void onAction() {
Intent setIntent = new Intent(MainActivity.this, ActivityApply.class);
setIntent.putExtra(StaticValue.KEYTheme, infoChild); setIntent.putExtra(StaticValue.KEYTheme, infoChild);
startActivity(setIntent); startActivity(setIntent);
} }
});
}
@Override @Override
public void onHomeClickMore(Info info) { public void onHomeClickMore(Info info) {

View File

@ -20,6 +20,7 @@ import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target; import com.bumptech.glide.request.target.Target;
import com.keyboard.theme.app.keyboard.R; import com.keyboard.theme.app.keyboard.R;
import com.keyboard.theme.app.keyboard.databinding.ActivitySuccessBinding; import com.keyboard.theme.app.keyboard.databinding.ActivitySuccessBinding;
import com.keyboard.theme.app.keyboard.topon.AdManager;
import com.keyboard.theme.app.keyboard.utils.Common; import com.keyboard.theme.app.keyboard.utils.Common;
import com.keyboard.theme.app.keyboard.utils.StaticValue; import com.keyboard.theme.app.keyboard.utils.StaticValue;
@ -34,6 +35,7 @@ public class SuccessActivity extends BaseActivity<ActivitySuccessBinding> {
@Override @Override
public ActivitySuccessBinding returnViewbinding() { public ActivitySuccessBinding returnViewbinding() {
Common.INSTANCE.initFull(this, false); Common.INSTANCE.initFull(this, false);
AdManager.loadAllAd();
return ActivitySuccessBinding.inflate(getLayoutInflater()); return ActivitySuccessBinding.inflate(getLayoutInflater());
} }

View File

@ -6,7 +6,7 @@
# http://www.gradle.org/docs/current/userguide/build_environment.html # http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process. # Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings. # The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode. # When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit # This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects

View File

@ -11,6 +11,29 @@ dependencyResolutionManagement {
google() google()
mavenCentral() mavenCentral()
maven("https://jitpack.io") maven("https://jitpack.io")
//Anythink(Core)
maven ("https://jfrog.anythinktech.com/artifactory/overseas_sdk")
//Appnext
maven ("https://dl.appnext.com")
//Ironsource
maven ("https://android-sdk.is.com/")
//Pangle
maven ("https://artifact.bytedance.com/repository/pangle")
//Mintegral
maven ("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea")
//Chartboost
maven ("https://cboost.jfrog.io/artifactory/chartboost-ads")
maven ("https://cboost.jfrog.io/artifactory/chartboost-mediation")
//TopOn集成测试工具
// maven ( "https://jfrog.anythinktech.com/artifactory/debugger")
} }
} }