接Max 1.0.2(3)

This commit is contained in:
zhouzhijia 2024-07-23 18:28:30 +08:00
parent 3415cb1d42
commit 3ca7d9d156
12 changed files with 322 additions and 23 deletions

View File

@ -4,7 +4,16 @@ plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id ("kotlin-kapt")
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")
id("applovin-quality-service")
}
applovin {
apiKey =
"Dl27vTcbmSn21PBrDMXpSqmsfG9shMGyquWAiaWdAbSq3wFKDu3lz_TXSAt_JsOVCRChddpPl2dZrymN3OooUM"
}
val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date())
android {
namespace = "com.tool.minimalistwallpaper"
@ -14,8 +23,8 @@ android {
applicationId = "com.tool.minimalistwallpaper"
minSdk = 23
targetSdk = 34
versionCode = 2
versionName = "1.0.1"
versionCode = 3
versionName = "1.0.2"
setProperty("archivesBaseName", "minimalistwallpaper_v" + versionName + "(${versionCode})_$timestamp")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
@ -62,4 +71,15 @@ dependencies {
implementation ("io.github.youth5201314:banner:2.2.3")
implementation ("com.guolindev.permissionx:permissionx:1.7.1")
implementation(platform("com.google.firebase:firebase-bom:33.1.1"))
implementation("com.google.firebase:firebase-crashlytics")
implementation("com.google.firebase:firebase-analytics")
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:+")
}

29
app/google-services.json Normal file
View File

@ -0,0 +1,29 @@
{
"project_info": {
"project_number": "997989376042",
"project_id": "minimalist-wallpaper---hd-4k",
"storage_bucket": "minimalist-wallpaper---hd-4k.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:997989376042:android:db641b5edc2fab4b9fe353",
"android_client_info": {
"package_name": "com.tool.minimalistwallpaper"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyAt85EFrCwMqX5X_JZ843PnnmcF-4tJj6c"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
}
],
"configuration_version": "1"
}

BIN
app/minimalistwallpaper.jks Normal file

Binary file not shown.

Binary file not shown.

View File

@ -2,9 +2,17 @@ package com.tool.minimalistwallpaper;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.util.Log;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.applovin.sdk.AppLovinMediationProvider;
import com.applovin.sdk.AppLovinSdk;
import com.applovin.sdk.AppLovinSdkConfiguration;
import com.applovin.sdk.AppLovinSdkInitializationConfiguration;
import com.tool.minimalistwallpaper.data.Mydata;
import com.tool.minimalistwallpaper.data.MydataBase;
import com.tool.minimalistwallpaper.data.Otherdata;
@ -24,10 +32,17 @@ public class MinimalistWPSkin extends Application {
private static boolean isinsert;
private static final String PREFS_NAME = "MyPrefs";
private static final String KEY_IS_INSERTED = "isinserted";
public static final String AD_BROADCAST = "on_success_action";
private static final String MAX_SDK = "NprBImK6BeQcxVNp44x4_ikQeJmyfGD8OEHbpNDUu7_WudCrCm_TIKr807Zzd8rfb6TG5NITCTxbZHZT9PbAGa";
public static Boolean initSDK = false;
@Override
public void onCreate() {
super.onCreate();
app =this;
initSDk();
context = getApplicationContext();
List<Mydata> myData = Mytools.parseJsonToList("wallpaper.json");
@ -47,6 +62,25 @@ public class MinimalistWPSkin extends Application {
});
}
}
private void initSDk() {
AppLovinSdkInitializationConfiguration initConfig = AppLovinSdkInitializationConfiguration.builder(MAX_SDK, this)
.setMediationProvider(AppLovinMediationProvider.MAX)
.build();
AppLovinSdk.getInstance(this).initialize(initConfig, new AppLovinSdk.SdkInitializationListener() {
@Override
public void onSdkInitialized(final AppLovinSdkConfiguration sdkConfig) {
initSDK = true;
Log.e("zzj", "------------initSDk--------success");
LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent(AD_BROADCAST));
}
});
AppLovinSdk.getInstance(this).getSettings().setVerboseLogging(true);
}
public static Context getAppContext() {
return context;
}

View File

@ -13,11 +13,14 @@ import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.applovin.mediation.MaxAd;
import com.applovin.mediation.ads.MaxInterstitialAd;
import com.tool.minimalistwallpaper.R;
import com.tool.minimalistwallpaper.adapter.MainRvAdapter;
import com.tool.minimalistwallpaper.data.MydataBase;
import com.tool.minimalistwallpaper.data.Otherdata;
import com.tool.minimalistwallpaper.databinding.ActivityAllBinding;
import com.tool.minimalistwallpaper.tools.Adcallback;
import com.tool.minimalistwallpaper.tools.Mytools;
import com.tool.minimalistwallpaper.tools.SpaceItem;
import com.tool.minimalistwallpaper.tools.StaticValue;
@ -31,6 +34,8 @@ public class AllActivity extends AppCompatActivity {
private MainRvAdapter mainRvListAdapter;
private String name;
private SpaceItem spaceItem = new SpaceItem(12, 12, 12);
private static List<MaxInterstitialAd> adsList;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -45,6 +50,7 @@ public class AllActivity extends AppCompatActivity {
return insets;
});
adsList = Mytools.getAllAd();
Intent intent = getIntent();
name = intent.getStringExtra(StaticValue.KEY_name);
@ -54,22 +60,43 @@ public class AllActivity extends AppCompatActivity {
binding.allBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
showAd();
}
});
}
private void showAd() {
MaxInterstitialAd cachedAd = Mytools.onCache(adsList);
if (cachedAd == null) {
finish();
} else {
Mytools.setCallBcak(cachedAd, new Adcallback() {
@Override
public void onShowFail(MaxAd ad) {
finish();
}
@Override
public void onAdHidden() {
finish();
}
});
cachedAd.showAd(this);
}
}
private void initData() {
Mytools.runIO(new Runnable() {
@Override
public void run() {
List<Otherdata> existingData = MydataBase.getInstance().myDAO().getallwp(name);
if (!existingData.isEmpty()){
otherdata = existingData;
if (!existingData.isEmpty()) {
otherdata = existingData;
runOnUiThread(new Runnable() {
@Override
public void run() {
mainRvListAdapter = new MainRvAdapter(AllActivity.this,otherdata);
mainRvListAdapter = new MainRvAdapter(AllActivity.this, otherdata);
binding.allRv.setLayoutManager(new GridLayoutManager(AllActivity.this, 2));
binding.allRv.setAdapter(mainRvListAdapter);
}
@ -83,10 +110,15 @@ public class AllActivity extends AppCompatActivity {
@Override
protected void onResume() {
super.onResume();
// Log.e("zzj", " allactivity onResume " + PreViewActivity.KEY_Change);
if (PreViewActivity.KEY_Change){
if (PreViewActivity.KEY_Change) {
initData();
PreViewActivity.KEY_Change = false;
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
showAd();
}
}

View File

@ -34,6 +34,8 @@ import android.view.View;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.applovin.mediation.MaxAd;
import com.applovin.mediation.ads.MaxInterstitialAd;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;
@ -42,6 +44,7 @@ import com.tool.minimalistwallpaper.R;
import com.tool.minimalistwallpaper.data.MydataBase;
import com.tool.minimalistwallpaper.data.Otherdata;
import com.tool.minimalistwallpaper.databinding.ActivityPreViewBinding;
import com.tool.minimalistwallpaper.tools.Adcallback;
import com.tool.minimalistwallpaper.tools.Mytools;
import com.tool.minimalistwallpaper.tools.StaticValue;
import com.tool.minimalistwallpaper.tools.Utils;
@ -70,7 +73,7 @@ public class PreViewActivity extends AppCompatActivity {
private GestureDetector gestureDetector;
public static boolean KEY_Change = false;
private Otherdata checkdata = new Otherdata();
private static List<MaxInterstitialAd> adsList;
@SuppressLint("MissingInflatedId")
@Override
@ -86,6 +89,8 @@ public class PreViewActivity extends AppCompatActivity {
return insets;
});
adsList = Mytools.getAllAd();
initData();
initEvent();
@ -142,7 +147,8 @@ public class PreViewActivity extends AppCompatActivity {
binding.pgSetwallpaper.setVisibility(View.GONE);
Toast.makeText(PreViewActivity.this, getString(R.string.permission_tips), Toast.LENGTH_SHORT).show();
} else {
setWp(setmap);
showAd();
}
});
}
@ -439,6 +445,27 @@ public class PreViewActivity extends AppCompatActivity {
// unregisterReceiver(wallpaperChangedReceiver);
}
private void showAd() {
MaxInterstitialAd cachedAd = Mytools.onCache(adsList);
if (cachedAd == null) {
setWp(setmap);
} else {
Mytools.setCallBcak(cachedAd, new Adcallback() {
@Override
public void onShowFail(MaxAd ad) {
setWp(setmap);
}
@Override
public void onAdHidden() {
setWp(setmap);
}
});
cachedAd.showAd(this);
}
}
@Override
protected void onStop() {

View File

@ -5,18 +5,32 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.util.Log;
import com.applovin.mediation.MaxAd;
import com.applovin.mediation.ads.MaxInterstitialAd;
import com.applovin.sdk.AppLovinSdk;
import com.tool.minimalistwallpaper.MinimalistWPSkin;
import com.tool.minimalistwallpaper.R;
import com.tool.minimalistwallpaper.tools.Adcallback;
import com.tool.minimalistwallpaper.tools.Mytools;
import java.util.List;
public class SplashActivity extends AppCompatActivity {
private CountDownTimer countDownTimer;
private static List<MaxInterstitialAd> adsList;
public static boolean isAlreadyShow = false;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -30,28 +44,71 @@ public class SplashActivity extends AppCompatActivity {
return insets;
});
countDownTimer = new CountDownTimer(1000, 100) {
countDownTimer = new CountDownTimer(11000, 100) {
@Override
public void onTick(long millisUntilFinished) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
}
},2000);
if (!isAlreadyShow) {
showAdOrStartView(false);
}
}
@Override
public void onFinish() {
satrView();
if (!isAlreadyShow) {
showAdOrStartView(true);
}
}
};
countDownTimer.start();
registerBroadcastReceiver();
}
private void showAdOrStartView(boolean go) {
MaxInterstitialAd cachedAd = Mytools.onCache(adsList);
if (cachedAd == null) {
isAlreadyShow = false;
if (go) {
satrView();
}
} else {
isAlreadyShow = true;
Mytools.setCallBcak(cachedAd, new Adcallback() {
@Override
public void onShowFail(MaxAd ad) {
isAlreadyShow = false;
}
@Override
public void onAdHidden() {
isAlreadyShow = true;
satrView();
}
});
cachedAd.showAd();
}
}
private void registerBroadcastReceiver() {
if (!MinimalistWPSkin.initSDK) {
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// AppLovinSdk.getInstance( SplashActivity.this ).showMediationDebugger();
Log.e("zzj", "------------loadAndStartAd--------success");
loadAndStartAd();
}
};
LocalBroadcastManager.getInstance(this).registerReceiver(receiver, new IntentFilter(MinimalistWPSkin.AD_BROADCAST));
} else {
Log.e("zzj", "------------loadAndStartAd--------fail");
loadAndStartAd();
}
}
private void loadAndStartAd() {
adsList = Mytools.getAllAd();
countDownTimer.start();
}
private void satrView() {
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(intent);

View File

@ -0,0 +1,8 @@
package com.tool.minimalistwallpaper.tools;
import com.applovin.mediation.MaxAd;
public interface Adcallback {
void onShowFail(MaxAd ad);
void onAdHidden( );
}

View File

@ -1,8 +1,16 @@
package com.tool.minimalistwallpaper.tools;
import android.content.Context;
import android.content.res.AssetManager;
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.tool.minimalistwallpaper.MinimalistWPSkin;
import com.tool.minimalistwallpaper.data.Mydata;
import com.tool.minimalistwallpaper.data.Otherdata;
@ -15,6 +23,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@ -22,6 +31,79 @@ import java.util.concurrent.Executors;
public class Mytools {
private static ExecutorService executorService;
private static ArrayList<MaxInterstitialAd> adArrayList;
private static final String one_AD = "2377d38d18e72a02";
private static final String two_Ad = "cebc382a642385a6";
private static final String three_ad = "f4f1f8de8666c541";
public static void setCallBcak(MaxInterstitialAd ad, Adcallback adcallback) {
ad.setListener(new MaxAdListener() {
@Override
public void onAdLoaded(@NonNull MaxAd maxAd) {
}
@Override
public void onAdDisplayed(@NonNull MaxAd maxAd) {
}
@Override
public void onAdHidden(@NonNull MaxAd maxAd) {
adcallback.onAdHidden();
}
@Override
public void onAdClicked(@NonNull MaxAd maxAd) {
}
@Override
public void onAdLoadFailed(@NonNull String s, @NonNull MaxError maxError) {
Log.e("zzj","-----------onAdLoadFailed------"+maxError);
}
@Override
public void onAdDisplayFailed(@NonNull MaxAd maxAd, @NonNull MaxError maxError) {
adcallback.onShowFail(maxAd);
Log.e("zzj","-----------onAdDisplayFailed------"+maxError);
}
});
}
public static MaxInterstitialAd onCache(List<MaxInterstitialAd> list) {
Collections.shuffle(list);
for (MaxInterstitialAd ad : list) {
if (ad.isReady()) {
return ad;
}
}
return null;
}
public static List<MaxInterstitialAd> getAllAd() {
if (adArrayList == null) {
adArrayList = new ArrayList<>();
adArrayList.add(createAd(one_AD, MinimalistWPSkin.app));
adArrayList.add(createAd(two_Ad, MinimalistWPSkin.app));
adArrayList.add(createAd(three_ad, MinimalistWPSkin.app));
}
for (MaxInterstitialAd ad : adArrayList) {
if (!ad.isReady()) {
ad.loadAd();
}
}
return adArrayList;
}
private static MaxInterstitialAd createAd(String adUnitId, Context context) {
MaxInterstitialAd ad = new MaxInterstitialAd(adUnitId, context);
return ad;
}
public static void runIO(Runnable task) {
getExecutorService().execute(task);
}

View File

@ -2,4 +2,11 @@
plugins {
id("com.android.application") version "8.1.3" apply false
id("org.jetbrains.kotlin.android") version "1.9.0" apply false
id("com.google.gms.google-services") version "4.3.15" apply false
id ("com.google.firebase.crashlytics") version "2.9.2" apply false
}
buildscript{
dependencies{
classpath("com.applovin.quality:AppLovinQualityServiceGradlePlugin:+")
}
}

View File

@ -3,6 +3,7 @@ pluginManagement {
google()
mavenCentral()
gradlePluginPortal()
maven { url = uri("https://artifacts.applovin.com/android") }
}
}
dependencyResolutionManagement {
@ -10,6 +11,8 @@ dependencyResolutionManagement {
repositories {
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") }
}
}