V1.0.4(5) MAX(Liftoff Monetize(vungle)、Mintegral、Pangle、Unity Ads)

This commit is contained in:
litingting 2024-07-30 16:29:42 +08:00
parent c21730af24
commit 9e7c6f9bcc
12 changed files with 376 additions and 34 deletions

View File

@ -7,7 +7,13 @@ plugins {
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")
id("io.objectbox")
id("applovin-quality-service")
}
applovin{
apiKey = "hPNBaWB5Xd1nKXGSXqaWC7W3ZKbCBDd9VX1xaGwyF0aIViWEwhSxqOeq4CuUrogatsst7TUIEMh2sApTIabO8G"
}
val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date())
android {
namespace = "com.nature.free.test"
@ -18,8 +24,8 @@ android {
applicationId = "com.nature.free.variouswallpaper"
minSdk = 23
targetSdk = 34
versionCode = 4
versionName = "1.0.3"
versionCode = 5
versionName = "1.0.4"
setProperty(
"archivesBaseName",
"Various Wallpapers_V" + versionName + "(${versionCode})_$timestamp"
@ -64,4 +70,14 @@ dependencies {
implementation("com.google.firebase:firebase-crashlytics")
implementation("com.google.firebase:firebase-analytics")
//--------------------------MAXLiftoff Monetizevungle、Mintegral、Pangle、Unity Ads
implementation("com.applovin:applovin-sdk:+")
implementation("com.applovin.mediation:vungle-adapter:+")
implementation("com.applovin.mediation:mintegral-adapter:+")
implementation("com.applovin.mediation:bytedance-adapter:+")
implementation("com.applovin.mediation:unityads-adapter:+")
//--------------------------MAXLiftoff Monetizevungle、Mintegral、Pangle、Unity Ads
}

View File

@ -9,6 +9,8 @@ import com.nature.free.test.base.BaseActivity;
import com.nature.free.test.data.ClassData;
import com.nature.free.test.data.ClassData_;
import com.nature.free.test.databinding.ActivityInfoBinding;
import com.nature.free.test.max.MaxManager;
import com.nature.free.test.max.onAdStatusListener;
import com.nature.free.test.objectbox.ObjectBox;
import com.nature.free.test.other.MyAdapter;
import com.nature.free.test.other.MyItemSpace;
@ -25,7 +27,7 @@ public class InfoActivity extends BaseActivity<ActivityInfoBinding> {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MaxManager.onLoadAd();
init();
mainBinding.back.setOnClickListener(new View.OnClickListener() {
@Override
@ -43,11 +45,16 @@ public class InfoActivity extends BaseActivity<ActivityInfoBinding> {
}
private void showTopOnAd(Boolean isfinish) {
// TODO: 2024/7/30 showAd
if(isfinish){
finish();
}
MaxManager.ShowAd(InfoActivity.this, new onAdStatusListener() {
@Override
public void onAdStatus(int type) {
if (type == MaxManager.type_show_close || type == MaxManager.type_show_fail || type == MaxManager.type_no_cache) {
if (isfinish) {
finish();
}
}
}
});
}
@ -61,7 +68,7 @@ public class InfoActivity extends BaseActivity<ActivityInfoBinding> {
ClassData classData = getData();
if (classData != null) {
mainBinding.tvName.setText(classData.getTitle());
myAdapter = new MyAdapter(this,false,false);
myAdapter = new MyAdapter(this, false, false);
myAdapter.refresh(classData.info);
mainBinding.recycler.setLayoutManager(new GridLayoutManager(this, 2));
mainBinding.recycler.setAdapter(myAdapter);

View File

@ -1,6 +1,11 @@
package com.nature.free.test
import android.app.Application
import android.content.Intent
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.applovin.sdk.AppLovinMediationProvider
import com.applovin.sdk.AppLovinSdk
import com.applovin.sdk.AppLovinSdkInitializationConfiguration
import com.nature.free.test.data.ClassData
import com.nature.free.test.objectbox.ObjectBox
@ -24,17 +29,18 @@ class MyWallpaper : Application() {
const val BITMAP_FILE_DIRECTORY = "MyWallpaper"
const val isMainEnterSetKey = "main_enter"
const val TAG ="------------------TAG"
const val TAG = "------------------TAG"
var initSDkOK = false
const val initAction = "INIT_SDK_ACTION"
}
private val APPId="h66a0cc207140e"
private val AppKey="acce079c140b9d4db923f8dac460dcec8"
private val debug_Key="4e26d6fdb6029c920a512f4d896f6331f47c82d0"
private val sdk_key = "JtCdtf2lUaegRtQsZR87DfzVUvCvVLhEv12ECLpPHtvMZRggrNTscST27G7TuyAbgk2L_Gp67_BSP_BNe_qhOI"
override fun onCreate() {
super.onCreate()
globalContext = this
initTopOnSDk()
initMAxSDk()
ObjectBox.init(this)
if (ObjectBox.getBoxBean().all.size <= 0) {
init()
@ -47,9 +53,17 @@ class MyWallpaper : Application() {
}
private fun initTopOnSDk(){
private fun initMAxSDk() {
val initConfig = AppLovinSdkInitializationConfiguration.builder(sdk_key, this)
.setMediationProvider(AppLovinMediationProvider.MAX)
.build()
// Initialize the SDK with the configuration
AppLovinSdk.getInstance(this).initialize(initConfig) { sdkConfig ->
// Start loading ads
initSDkOK = true
LocalBroadcastManager.getInstance(globalContext)
.sendBroadcast(Intent(initAction))
}
}

View File

@ -1,11 +1,19 @@
package com.nature.free.test;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.util.Log;
import com.nature.free.test.base.BaseActivity;
import com.nature.free.test.databinding.ActivityWelBinding;
import com.nature.free.test.max.WelComManager;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.functions.Function1;
public class SplashActivity extends BaseActivity<ActivityWelBinding> {
@ -15,10 +23,24 @@ public class SplashActivity extends BaseActivity<ActivityWelBinding> {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
countDownTimer = WelComManager.initTimer(SplashActivity.this, time, new Function1<Long, Unit>() {
@Override
public Unit invoke(Long aLong) {
long number = time - aLong;
Double s = calculatePercentage(number, time);
Log.d(MyWallpaper.TAG, "--------------l=" + s);
mainBinding.customProgress.setProgress(s.floatValue());
return null;
}
}, new Function0<Unit>() {
@Override
public Unit invoke() {
goMain();
return null;
}
});
goMain();
}
private void goMain(){
@ -44,4 +66,7 @@ public class SplashActivity extends BaseActivity<ActivityWelBinding> {
protected ActivityWelBinding getMainBinding() {
return ActivityWelBinding.inflate(getLayoutInflater());
}
}

View File

@ -28,6 +28,8 @@ import com.nature.free.test.base.BaseActivity;
import com.nature.free.test.data.Wallpaper;
import com.nature.free.test.data.Wallpaper_;
import com.nature.free.test.databinding.ActivityWallpaperBinding;
import com.nature.free.test.max.MaxManager;
import com.nature.free.test.max.onAdStatusListener;
import com.nature.free.test.objectbox.ObjectBox;
import com.nature.free.test.other.DialogSet;
@ -67,6 +69,7 @@ public class WallPaperActivity extends BaseActivity<ActivityWallpaperBinding> im
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MaxManager.onLoadAd();
statusbar();
tempId = getIntent().getLongExtra(MyWallpaper.KEY_WALLPAPER, 1);
@ -132,15 +135,19 @@ public class WallPaperActivity extends BaseActivity<ActivityWallpaperBinding> im
}
private void apply(int which) {
// TODO: 2024/7/30 showAd
mainBinding.load.setVisibility(View.VISIBLE);
if (mainBinding.check1.isSelected()) {
setmWallpaper(which, mBitmapPro1);
} else if (mainBinding.check2.isSelected()) {
setmWallpaper(which, mBitmapSource);
}
MaxManager.ShowAd(WallPaperActivity.this, new onAdStatusListener() {
@Override
public void onAdStatus(int type) {
if (type == MaxManager.type_show_close || type == MaxManager.type_show_fail || type == MaxManager.type_no_cache) {
mainBinding.load.setVisibility(View.VISIBLE);
if (mainBinding.check1.isSelected()) {
setmWallpaper(which, mBitmapPro1);
} else if (mainBinding.check2.isSelected()) {
setmWallpaper(which, mBitmapSource);
}
}
}
});
}
@ -295,7 +302,7 @@ public class WallPaperActivity extends BaseActivity<ActivityWallpaperBinding> im
public void onClick(View v) {
if (v.equals(mainBinding.back)) {
if (isMainEnter) {
showTopOnAd();
showMaxAd();
} else {
finish();
}
@ -362,10 +369,15 @@ public class WallPaperActivity extends BaseActivity<ActivityWallpaperBinding> im
mainBinding.load.setVisibility(View.GONE);
}
private void showTopOnAd() {
// TODO: 2024/7/30 showAd
finish();
private void showMaxAd() {
MaxManager.ShowAd(WallPaperActivity.this, new onAdStatusListener() {
@Override
public void onAdStatus(int type) {
if (type == MaxManager.type_show_close || type == MaxManager.type_show_fail || type == MaxManager.type_no_cache) {
finish();
}
}
});
}

View File

@ -0,0 +1,11 @@
package com.nature.free.test.max;
import com.applovin.mediation.MaxAd;
public interface MaxListener {
void onFail(MaxAd ad);
void onShowSuccess(MaxAd ad);
void onHidden();
}

View File

@ -0,0 +1,165 @@
package com.nature.free.test.max;
import android.app.Activity;
import android.util.Log;
import androidx.annotation.NonNull;
import com.applovin.mediation.MaxAd;
import com.applovin.mediation.MaxAdListener;
import com.applovin.mediation.MaxError;
import com.applovin.mediation.ads.MaxInterstitialAd;
import com.nature.free.test.MyWallpaper;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MaxManager {
/**
* Ad_Units
e131fc7428da6271
acf4ea6b852b3a99
e8e6c260ab609443
*/
private static final String one_AD = "e131fc7428da6271";
private static final String two_Ad = "acf4ea6b852b3a99";
private static final String three_ad = "e8e6c260ab609443";
public static final int type_no_cache = 0;
public static final int type_has_cache = 1;
public static final int type_show_success = 2;
public static final int type_show_close = 3;
public static final int type_show_fail = 4;
private static List<MaxInterstitialAd> adList = new ArrayList<>();
public static MaxInterstitialAd getAd(List<MaxInterstitialAd> list) {
Collections.shuffle(list);
for (MaxInterstitialAd ad : list) {
if (ad.isReady()) {
return ad;
}
}
return null;
}
public static List<MaxInterstitialAd> onLoadAd() {
if (adList.isEmpty()) {
MaxInterstitialAd AdT = new MaxInterstitialAd(two_Ad, MyWallpaper.globalContext);
MaxInterstitialAd AdOne = new MaxInterstitialAd(one_AD, MyWallpaper.globalContext);
MaxInterstitialAd AdThree = new MaxInterstitialAd(three_ad, MyWallpaper.globalContext);
adList.add(AdOne);
adList.add(AdT);
adList.add(AdThree);
}
for (MaxInterstitialAd ad : adList) {
if (!ad.isReady()) {
setMyListener(ad, new MaxListener() {
@Override
public void onFail(MaxAd ad) {
}
@Override
public void onShowSuccess(MaxAd ad) {
}
@Override
public void onHidden() {
}
});
ad.loadAd();
}
}
return adList;
}
public static void setMyListener(MaxInterstitialAd ad, MaxListener maxListener) {
ad.setListener(new MaxAdListener() {
@Override
public void onAdLoaded(@NonNull MaxAd maxAd) {
Log.d(MyWallpaper.TAG, "-------onAdLoaded-----maxAd="+maxAd.getAdUnitId());
}
@Override
public void onAdDisplayed(@NonNull MaxAd maxAd) {
Log.d(MyWallpaper.TAG, "-------onAdDisplayed-----maxAd="+maxAd.getAdUnitId());
maxListener.onShowSuccess(maxAd);
}
@Override
public void onAdHidden(@NonNull MaxAd maxAd) {
Log.d(MyWallpaper.TAG, "-------onAdHidden-----maxAd="+maxAd.getAdUnitId());
maxListener.onHidden();
setMyListener(ad, new MaxListener() {
@Override
public void onFail(MaxAd ad) {
}
@Override
public void onShowSuccess(MaxAd ad) {
}
@Override
public void onHidden() {
}
});
ad.loadAd();
}
@Override
public void onAdClicked(@NonNull MaxAd maxAd) {
}
@Override
public void onAdLoadFailed(@NonNull String s, @NonNull MaxError maxError) {
}
@Override
public void onAdDisplayFailed(@NonNull MaxAd maxAd, @NonNull MaxError maxError) {
maxListener.onFail(maxAd);
}
});
}
public static void ShowAd(Activity activity, onAdStatusListener listener) {
MaxInterstitialAd ad = MaxManager.getAd(adList);
if (ad == null) {
listener.onAdStatus(type_no_cache);
} else {
listener.onAdStatus(type_has_cache);
MaxManager.setMyListener(ad, new MaxListener() {
@Override
public void onFail(MaxAd ad) {
listener.onAdStatus(type_show_fail);
}
@Override
public void onShowSuccess(MaxAd ad) {
listener.onAdStatus(type_show_success);
}
@Override
public void onHidden() {
listener.onAdStatus(type_show_close);
}
});
ad.showAd(activity);
}
}
}

View File

@ -0,0 +1,76 @@
package com.nature.free.test.max
import android.app.Activity
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.os.CountDownTimer
import android.util.Log
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.applovin.mediation.ads.MaxInterstitialAd
import com.nature.free.test.MyWallpaper
object WelComManager {
private lateinit var timer: CountDownTimer
private var need_Show = true
private lateinit var lists: List<MaxInterstitialAd>
@JvmStatic
fun initTimer(activity: Activity, countTime: Long,countAction: (Long) -> Unit, goMainAction: () -> Unit): CountDownTimer {
need_Show = true
timer = object : CountDownTimer(countTime, 100) {
override fun onTick(millisUntilFinished: Long) {
countAction.invoke(millisUntilFinished)
if (need_Show) {
MaxManager.ShowAd(activity) {
Log.d(MyWallpaper.TAG, "--onTick----------it=$it")
if (it == MaxManager.type_has_cache) {
need_Show = false
}
if (it == MaxManager.type_show_close || it == MaxManager.type_show_fail) {
Log.d(MyWallpaper.TAG, "--onTick---------enter")
goMainAction.invoke()
}
}
}
}
override fun onFinish() {
if (need_Show) {
MaxManager.ShowAd(activity) {
if (it == MaxManager.type_show_close || it == MaxManager.type_show_fail || it == MaxManager.type_no_cache) {
Log.d(MyWallpaper.TAG, "--onFinish---------enter")
goMainAction.invoke()
}
}
}
}
}
startAd(activity)
return timer
}
private fun startAd(activity: Activity) {
if (!MyWallpaper.initSDkOK) {
LocalBroadcastManager.getInstance(activity)
.registerReceiver(object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
lists = MaxManager.onLoadAd()
timer.start()
Log.d(MyWallpaper.TAG, "------------1sucess")
}
}, IntentFilter(MyWallpaper.initAction))
} else {
lists = MaxManager.onLoadAd()
timer.start()
Log.d(MyWallpaper.TAG, "------------2sucess")
}
}
}

View File

@ -0,0 +1,6 @@
package com.nature.free.test.max;
public interface onAdStatusListener {
void onAdStatus(int type);
}

View File

@ -5,6 +5,7 @@ plugins {
id("com.google.gms.google-services") version "4.3.15" apply false
id ("com.google.firebase.crashlytics") version "2.9.2" apply false
}
buildscript {
@ -17,5 +18,6 @@ buildscript {
dependencies {
classpath("io.objectbox:objectbox-gradle-plugin:$objectboxVersion")
classpath("com.applovin.quality:AppLovinQualityServiceGradlePlugin:+")
}
}

6
keystore.properties Normal file
View File

@ -0,0 +1,6 @@
app_name=Various Wallpapers
package_name=com.nature.free.variouswallpaper
keystoreFile=app/VariousWallpapers.jks
key_alias=VariousWallpaperskey0
key_store_password=VariousWallpapers
key_password=VariousWallpapers

View File

@ -3,6 +3,7 @@ pluginManagement {
google()
mavenCentral()
gradlePluginPortal()
maven { url = uri("https://artifacts.applovin.com/android") }
}
}
dependencyResolutionManagement {
@ -11,7 +12,8 @@ dependencyResolutionManagement {
google()
mavenCentral()
maven { url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") }
maven { url = uri("https://artifact.bytedance.com/repository/pangle") }
}
}