diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 11f47b8..0695d22 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,30 +1,31 @@ +import java.util.Date +import java.text.SimpleDateFormat plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("com.google.gms.google-services") - id("applovin-quality-service") -} -applovin { - apiKey = "HiXscdwWaEIFC16qq8xh13TwCnN5Jrs_b0ANd1EtqbPEQX_KegZ5CxV47OaffUbNouMT1l31b3ND3kKEbthqWZ" + id("com.google.firebase.crashlytics") } +val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date()) android { namespace = "com.prankapp.fartsounds.airhorn" - compileSdk = 33 + compileSdk = 34 defaultConfig { applicationId = "com.prankapp.fartsounds.airhorn" - minSdk = 21 - targetSdk = 33 - versionCode = 2 - versionName = "1.1" + minSdk = 23 + targetSdk = 34 + versionCode = 3 + versionName = "1.2" + setProperty("archivesBaseName", "Prank App_V" + versionName + "(${versionCode})_$timestamp") testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } //prank01 prank prank123 buildTypes { release { - isMinifyEnabled = false + isMinifyEnabled = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" @@ -48,26 +49,69 @@ dependencies { androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") - implementation ("com.google.code.gson:gson:2.8.6") + implementation("com.google.code.gson:gson:2.8.6") - implementation ("com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.47") + implementation("com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.47") - implementation ("com.github.bumptech.glide:glide:4.16.0") - implementation ("me.drakeet.materialdialog:library:1.3.1") + implementation("com.github.bumptech.glide:glide:4.16.0") + implementation("me.drakeet.materialdialog:library:1.3.1") - annotationProcessor ("com.github.bumptech.glide:compiler:4.16.0") - implementation ("com.github.ForgetAll:LoadingDialog:v1.1.2") + annotationProcessor("com.github.bumptech.glide:compiler:4.16.0") + implementation("com.github.ForgetAll:LoadingDialog:v1.1.2") - implementation ("com.alibaba:fastjson:1.2.70") - implementation(platform("com.google.firebase:firebase-bom:33.0.0")) + implementation("com.alibaba:fastjson:1.2.70") + + + 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:12.5.0") - implementation("com.applovin.mediation:adcolony-adapter:4.8.0.4") - implementation("com.applovin.mediation:ironsource-adapter:8.1.0.0.0") - implementation("com.applovin.mediation:vungle-adapter:7.3.2.1") - implementation("com.applovin.mediation:facebook-adapter:6.17.0.0") - implementation("com.applovin.mediation:bytedance-adapter:5.9.0.6.0") - implementation("com.applovin.mediation:unityads-adapter:4.12.0.0") + + //-----------------------------TopOn 聚合(mintegral、unityads、liftoff(vungle)、Bigo) + //Anythink (Necessary) + implementation("com.anythink.sdk:core-tpn:6.3.68") + implementation("com.anythink.sdk:nativead-tpn:6.3.68") + implementation("com.anythink.sdk:banner-tpn:6.3.68") + implementation("com.anythink.sdk:interstitial-tpn:6.3.68") + implementation("com.anythink.sdk:rewardedvideo-tpn:6.3.68") + implementation("com.anythink.sdk:splash-tpn:6.3.68") + + //Androidx (Necessary) + implementation("androidx.appcompat:appcompat:1.1.0") + implementation("androidx.browser:browser:1.4.0") + + //Vungle + implementation("com.anythink.sdk:adapter-tpn-vungle:6.3.68") + implementation("com.vungle:vungle-ads:7.3.2") + 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.3.68") + implementation("com.unity3d.ads:unity-ads:4.9.3") + + //Bigo + implementation("com.anythink.sdk:adapter-tpn-bigo:6.3.68") + implementation("com.bigossp:bigo-ads:4.7.4") + + //Mintegral + implementation("com.anythink.sdk:adapter-tpn-mintegral-nonchina:6.3.68") + implementation("com.mbridge.msdk.oversea:reward:16.7.51") + implementation("com.mbridge.msdk.oversea:newinterstitial:16.7.51") + implementation("com.mbridge.msdk.oversea:mbnative:16.7.51") + implementation("com.mbridge.msdk.oversea:mbnativeadvanced:16.7.51") + implementation("com.mbridge.msdk.oversea:mbsplash:16.7.51") + implementation("com.mbridge.msdk.oversea:mbbanner:16.7.51") + implementation("com.mbridge.msdk.oversea:mbbid:16.7.51") + implementation("androidx.recyclerview:recyclerview:1.1.0") + + //Tramini + implementation("com.anythink.sdk:tramini-plugin-tpn:6.3.68") + //-----------------------------TopOn 聚合 + + + // Debugger UI Tools +// implementation ("com.anythink.sdk:debugger-ui:1.0.7") + } \ No newline at end of file diff --git a/app/google-services.json b/app/google-services.json index 1cc8d86..1f500c1 100644 --- a/app/google-services.json +++ b/app/google-services.json @@ -1,13 +1,13 @@ { "project_info": { - "project_number": "545114132353", - "project_id": "prank-app-funny-sounds-air-hor", - "storage_bucket": "prank-app-funny-sounds-air-hor.appspot.com" + "project_number": "890674306096", + "project_id": "prank-app-funny-sound-air-horn", + "storage_bucket": "prank-app-funny-sound-air-horn.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:545114132353:android:2f3713b50c726900a2a280", + "mobilesdk_app_id": "1:890674306096:android:1ea832c0b755fe7fd161f5", "android_client_info": { "package_name": "com.prankapp.fartsounds.airhorn" } @@ -15,7 +15,7 @@ "oauth_client": [], "api_key": [ { - "current_key": "AIzaSyCkBnu8PFLZmPPBEEv1o27iTAYBVZpBdec" + "current_key": "AIzaSyB5GQ6DOpqiXmY6EBGCJy4yrV3OyRvt2F8" } ], "services": { diff --git a/app/keyinfo b/app/keyinfo new file mode 100644 index 0000000..09e9983 --- /dev/null +++ b/app/keyinfo @@ -0,0 +1,5 @@ +keyfile:prankapp.jks +key store psd :prankapp +alias:prank +key psd:prankapp123 + diff --git a/app/prankappkey.rtf b/app/prankappkey.rtf deleted file mode 100644 index 0f1ef91..0000000 --- a/app/prankappkey.rtf +++ /dev/null @@ -1,10 +0,0 @@ -{\rtf1\ansi\ansicpg936\cocoartf2761 -\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -{\*\expandedcolortbl;;} -\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0 -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\fs24 \cf0 key store psd \uc0\u65306 prank123\ -alias\uc0\u65306 prank\ -key psd\uc0\u65306 prank123123} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 481bb43..dbe4db8 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -18,4 +18,109 @@ # If you keep the line number information, uncomment this to # hide the original source file name. -#-renamesourcefileattribute SourceFile \ No newline at end of file +#-renamesourcefileattribute SourceFile + +#---------------------------------TopOn 聚合 +# Vungle +-dontwarn com.vungle.ads.** +-keepclassmembers 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 +-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.*{ *; } + +#---------------------------------TopOn 聚合 + + + +-dontwarn java.awt.Color +-dontwarn java.awt.Font +-dontwarn java.awt.Point +-dontwarn java.awt.Rectangle +-dontwarn javax.money.CurrencyUnit +-dontwarn javax.money.Monetary +-dontwarn javax.ws.rs.Consumes +-dontwarn javax.ws.rs.Produces +-dontwarn javax.ws.rs.core.Response +-dontwarn javax.ws.rs.core.StreamingOutput +-dontwarn javax.ws.rs.ext.MessageBodyReader +-dontwarn javax.ws.rs.ext.MessageBodyWriter +-dontwarn javax.ws.rs.ext.Provider +-dontwarn org.glassfish.jersey.internal.spi.AutoDiscoverable +-dontwarn org.javamoney.moneta.Money +-dontwarn org.joda.time.DateTime +-dontwarn org.joda.time.DateTimeZone +-dontwarn org.joda.time.Duration +-dontwarn org.joda.time.Instant +-dontwarn org.joda.time.LocalDate +-dontwarn org.joda.time.LocalDateTime +-dontwarn org.joda.time.LocalTime +-dontwarn org.joda.time.Period +-dontwarn org.joda.time.ReadablePartial +-dontwarn org.joda.time.format.DateTimeFormat +-dontwarn org.joda.time.format.DateTimeFormatter +-dontwarn springfox.documentation.spring.web.json.Json diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 30f1f44..0a376b8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,8 +3,8 @@ xmlns:tools="http://schemas.android.com/tools"> - - + + + + + + () + + + @JvmStatic + fun loadAllAd() { + if (list.size <= 0) { + val mInterstitialAd1 = ATInterstitial(Utils.context, place1Id) + val mInterstitialAd2 = ATInterstitial(Utils.context, place2Id) + val mInterstitialAd3 = ATInterstitial(Utils.context, place3Id) + list.add(mInterstitialAd1) + list.add(mInterstitialAd2) + list.add(mInterstitialAd3) + } + for (ad in list) { + if (!ad.isAdReady) { + setCallBack(ad,object :AdListener{ + override fun showSuccess() { + + } + + override fun showFail() { + + } + + override fun showClose() { + + } + + }) + ad.load() + } + } + + + } + @JvmStatic + fun getReadyAd(): ATInterstitial? { + list.shuffle() + for (ad in list) { + if (ad.isAdReady) { + return ad + } + } + return null + } + + + @JvmStatic + fun showWelcomeAd(activity: Activity,totalTim: Long, goMain: () -> Unit): CountDownTimer { + var alreadyShow = false + var timer = object : CountDownTimer(totalTim, 100) { + override fun onTick(millisUntilFinished: Long) { + if (!alreadyShow) { + showAD(activity) { + if (it == type_has_cache) { + alreadyShow = true + } + if (it == type_show_close || it == type_show_fail) { + goMain.invoke() + } + + } + } + + } + + override fun onFinish() { + if (!alreadyShow) { + showAD(activity) { + if (it == type_show_close || it == type_show_fail || it == type_no_cache) { + goMain.invoke() + } + } + } + } + + } + return timer + } + + private fun setCallBack(ad: ATInterstitial, listener: AdListener) { + ad.setAdListener(object : ATInterstitialListener { + override fun onInterstitialAdLoaded() { + Log.d(Application__.TAG, "LoadLoaded ${ad.mPlacementId}") + } + + override fun onInterstitialAdLoadFail(p0: AdError?) { + Log.d(Application__.TAG, "LoadFail:${p0?.code} ${p0?.desc}") + } + + override fun onInterstitialAdClicked(p0: ATAdInfo?) { + + } + + override fun onInterstitialAdShow(p0: ATAdInfo?) { + Log.d(Application__.TAG, "AdShow ${p0?.showId} ") + listener.showSuccess() + ad.load() + } + + override fun onInterstitialAdClose(p0: ATAdInfo?) { + listener.showClose() + } + + override fun onInterstitialAdVideoStart(p0: ATAdInfo?) { + + } + + override fun onInterstitialAdVideoEnd(p0: ATAdInfo?) { + + } + + override fun onInterstitialAdVideoError(p0: AdError?) { + listener.showFail() + } + + }) + } + + + @JvmStatic + fun showAD(activity: Activity, action: (type: Int) -> Unit) { + val readyAd = getReadyAd() + if (readyAd!= null) { + Log.d(Application__.TAG, "readyAd ${readyAd.mPlacementId} ") + action.invoke(type_has_cache) + setCallBack(readyAd,object : AdListener { + override fun showSuccess() { + action.invoke(type_show_success) + } + + override fun showFail() { + action.invoke(type_show_fail) + } + + override fun showClose() { + action.invoke(type_show_close) + } + + }) + readyAd.show(activity) + } else { + action.invoke(type_no_cache) + + } + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/prankapp/fartsounds/airhorn/splash_prank/SplashActivity.java b/app/src/main/java/com/prankapp/fartsounds/airhorn/splash_prank/SplashActivity.java index f1252bc..b91abc8 100644 --- a/app/src/main/java/com/prankapp/fartsounds/airhorn/splash_prank/SplashActivity.java +++ b/app/src/main/java/com/prankapp/fartsounds/airhorn/splash_prank/SplashActivity.java @@ -2,90 +2,52 @@ package com.prankapp.fartsounds.airhorn.splash_prank; import android.content.Intent; import android.os.Bundle; +import android.os.CountDownTimer; import android.os.Handler; -import android.util.Log; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; -import com.applovin.sdk.AppLovinMediationProvider; -import com.applovin.sdk.AppLovinSdk; -import com.applovin.sdk.AppLovinSdkConfiguration; -import com.applovin.sdk.AppLovinSdkInitializationConfiguration; import com.prankapp.fartsounds.airhorn.MainActivity; -import com.prankapp.fartsounds.airhorn.ad_util.AdPrankListener; -import com.prankapp.fartsounds.airhorn.ad_util.MaxPrankAdManager; -import com.prankapp.fartsounds.airhorn.utilsfff.Constant; +import com.prankapp.fartsounds.airhorn.R; +import com.prankapp.fartsounds.airhorn.openmediation.AdManager; + +import kotlin.Unit; +import kotlin.jvm.functions.Function0; public class SplashActivity extends AppCompatActivity { - Handler handlerdfdsf = new Handler(); - private Runnable runnablegfdg; - private boolean isShowedPrankAd = false; + private Long totalTim = 11000L; + private CountDownTimer countDownTimer; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - - runnablegfdg = new Runnable() { - int count = 15; - + setContentView(R.layout.splash_activity); + countDownTimer = AdManager.showWelcomeAd(SplashActivity.this,totalTim, new Function0() { @Override - public void run() { - if (count > 0) { - if (isShowedPrankAd) { - handlerdfdsf.removeCallbacks(runnablegfdg); - return; - } - count--; - handlerdfdsf.postDelayed(this, 1000); - } else { - finish(); - startActivity(new Intent(SplashActivity.this, MainActivity.class)); - } + public Unit invoke() { + go(); + return null; } - }; - handlerdfdsf.postDelayed(runnablegfdg, 0); - - - AppLovinSdkInitializationConfiguration initConfig = AppLovinSdkInitializationConfiguration.builder( "yuB4fQEc6yE5384qm7dKkZU6eOJDHwLmJfxUZ8s7A7nDa5nUlrG85VwVgJCl3X_EQWhiRZTyyVhiJWlmorVRxi", this ) - .setMediationProvider( AppLovinMediationProvider.MAX ) - .build(); - - // Initialize the SDK with the configuration - AppLovinSdk.getInstance( this ).initialize( initConfig, new AppLovinSdk.SdkInitializationListener() - { - @Override - public void onSdkInitialized(final AppLovinSdkConfiguration sdkConfig) - { - Log.e("hhh", "sdk初始化成功"); - - MaxPrankAdManager maxAdManager = new MaxPrankAdManager(SplashActivity.this, Constant.adIdpPrankSplash, new AdPrankListener() { - @Override - public void adPrankShow() { - isShowedPrankAd = true; - } - - @Override - public void adPrankClose() { - finish(); - startActivity(new Intent(SplashActivity.this, MainActivity.class)); - } - }); - - } - } ); + }); + countDownTimer.start(); + } + private void go() { + finish(); + startActivity(new Intent(SplashActivity.this, MainActivity.class)); } @Override protected void onDestroy() { super.onDestroy(); - handlerdfdsf.removeCallbacks(runnablegfdg); + countDownTimer.cancel(); + } diff --git a/app/src/main/java/com/prankapp/fartsounds/airhorn/ui/PrankDetailsActivity.java b/app/src/main/java/com/prankapp/fartsounds/airhorn/ui/PrankDetailsActivity.java index ee72fa5..dc7aff1 100644 --- a/app/src/main/java/com/prankapp/fartsounds/airhorn/ui/PrankDetailsActivity.java +++ b/app/src/main/java/com/prankapp/fartsounds/airhorn/ui/PrankDetailsActivity.java @@ -17,8 +17,8 @@ import com.bumptech.glide.Glide; import com.google.gson.Gson; import com.prankapp.fartsounds.airhorn.R; import com.prankapp.fartsounds.airhorn.ad_util.AdPrankListener; -import com.prankapp.fartsounds.airhorn.ad_util.MaxPrankAdManager; import com.prankapp.fartsounds.airhorn.model.PrankListModel; +import com.prankapp.fartsounds.airhorn.openmediation.AdManager; import com.prankapp.fartsounds.airhorn.utilsfff.Constant; import com.prankapp.fartsounds.airhorn.utilsfff.ImmUtils; import com.prankapp.fartsounds.airhorn.utilsfff.SPUtils; @@ -30,6 +30,9 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; +import kotlin.Unit; +import kotlin.jvm.functions.Function1; + public class PrankDetailsActivity extends AppCompatActivity { ImageView iv_back; @@ -49,6 +52,7 @@ public class PrankDetailsActivity extends AppCompatActivity { ObjectAnimator animator; boolean isPlayAd = false; + @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -59,7 +63,7 @@ public class PrankDetailsActivity extends AppCompatActivity { .setSuccessText("Success") .setInterceptBack(true) .show(); - ImmUtils.setStatusBar(this,false,false); + ImmUtils.setStatusBar(this, false, false); iv_back = findViewById(R.id.iv_back); tv_shake_tips = findViewById(R.id.tv_shake_tips); @@ -70,17 +74,16 @@ public class PrankDetailsActivity extends AppCompatActivity { iv_back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - finish(); - } - }); + AdManager.showAD(PrankDetailsActivity.this, new Function1() { + @Override + public Unit invoke(Integer integer) { + if (integer == AdManager.type_show_close || integer == AdManager.type_no_cache || integer == AdManager.type_show_fail) { + finish(); + } + return null; + } + }); - new MaxPrankAdManager(PrankDetailsActivity.this, Constant.adIdPrankSee, new AdPrankListener() { - @Override - public void adPrankShow() { - } - - @Override - public void adPrankClose() { } }); @@ -93,7 +96,7 @@ public class PrankDetailsActivity extends AppCompatActivity { for (int i = 0; i < Constant.prankListModel.size(); i++) { if (Constant.prankListModel.get(i).getCategoryId().equals(id)) { - jj = i ; + jj = i; listBeans.addAll(Constant.prankListModel.get(i).getList()); } } @@ -103,16 +106,16 @@ public class PrankDetailsActivity extends AppCompatActivity { iv_shoucang.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - if(isShoucah(id)){ + if (isShoucah(id)) { pankList.remove(getIndex(id)); Gson gson = new Gson(); String json = gson.toJson(pankList); - SPUtils.getInstance().put(Constant.shouCang,json); - }else{ + SPUtils.getInstance().put(Constant.shouCang, json); + } else { pankList.add(Constant.prankListModel.get(jj)); Gson gson = new Gson(); String json = gson.toJson(pankList); - SPUtils.getInstance().put(Constant.shouCang,json); + SPUtils.getInstance().put(Constant.shouCang, json); } isShoucah(id); @@ -120,7 +123,7 @@ public class PrankDetailsActivity extends AppCompatActivity { } }); - if (mShakeUtils==null){ + if (mShakeUtils == null) { mShakeUtils = new ShakeUtils(this); @@ -145,15 +148,15 @@ public class PrankDetailsActivity extends AppCompatActivity { } }); - if(id.equals("625f83491fea07887e61906a") || id.equals("636b8e5415831ec42fc7d80a")){//左右摇晃 + if (id.equals("625f83491fea07887e61906a") || id.equals("636b8e5415831ec42fc7d80a")) {//左右摇晃 // 设置动画的初始位置,0表示当前位置 - animator = ObjectAnimator.ofFloat(ivContent, "translationX", -20f,20f);//上下摇晃 - }else if(id.equals("625f83491fea07887e61906b") || id.equals("62be51cc4d4edd56b588d54e") || id.equals("62be51f84d4edd56b588d54f")|| id.equals("625f83491fea07887e619065")|| id.equals("64b617f06d7b94ebbe2a20fa")) { + animator = ObjectAnimator.ofFloat(ivContent, "translationX", -20f, 20f);//上下摇晃 + } else if (id.equals("625f83491fea07887e61906b") || id.equals("62be51cc4d4edd56b588d54e") || id.equals("62be51f84d4edd56b588d54f") || id.equals("625f83491fea07887e619065") || id.equals("64b617f06d7b94ebbe2a20fa")) { tv_shake_tips.setVisibility(View.VISIBLE); iv_bofang.setVisibility(View.INVISIBLE); animator = ObjectAnimator.ofFloat(ivContent, "translationY", 0f, 20f, -20f, 20f, -20f, 20f, 0f); - }else { - animator = ObjectAnimator.ofFloat(ivContent, "translationY", 0f,0f); + } else { + animator = ObjectAnimator.ofFloat(ivContent, "translationY", 0f, 0f); } // 动画时长 @@ -177,8 +180,8 @@ public class PrankDetailsActivity extends AppCompatActivity { mShakeUtils.setOnShakeListener(new ShakeUtils.OnShakeListener() { @Override public void onShake() { - if(id.equals("625f83491fea07887e61906b") || id.equals("62be51cc4d4edd56b588d54e") || id.equals("62be51f84d4edd56b588d54f")|| id.equals("625f83491fea07887e619065")|| id.equals("64b617f06d7b94ebbe2a20fa")) { - Log.e("666","摇晃了"); + if (id.equals("625f83491fea07887e61906b") || id.equals("62be51cc4d4edd56b588d54e") || id.equals("62be51f84d4edd56b588d54f") || id.equals("625f83491fea07887e619065") || id.equals("64b617f06d7b94ebbe2a20fa")) { + Log.e("666", "摇晃了"); playYaoHuangSingle(); } } @@ -188,50 +191,45 @@ public class PrankDetailsActivity extends AppCompatActivity { @Override public void onClick(View v) { - if(!isPlayAd){ - new MaxPrankAdManager(PrankDetailsActivity.this, Constant.adIdPrankUse, new AdPrankListener() { + if (!isPlayAd) { + isPlayAd = true; + if (!isPrepare) { + return; + } + AdManager.showAD(PrankDetailsActivity.this, new Function1() { @Override - public void adPrankShow() { - } - - @Override - public void adPrankClose() { - isPlayAd = true; - if(!isPrepare){ - return; - } - - if (isBoFang){ - isBoFang =false; - Constant.mediaPlayer.pause(); - iv_bofang.setImageDrawable(getDrawable(R.mipmap.ic_bofang1)); - animator.cancel(); - }else { - Constant.mediaPlayer.start(); - isBoFang =true; - iv_bofang.setImageDrawable(getDrawable(R.mipmap.ic_zanting1)); - /* if(id.equals("625f83491fea07887e61906b")){ + public Unit invoke(Integer integer) { + if (integer == AdManager.type_show_close || integer == AdManager.type_no_cache || integer == AdManager.type_show_fail) { + if (isBoFang) { + isBoFang = false; + Constant.mediaPlayer.pause(); + iv_bofang.setImageDrawable(getDrawable(R.mipmap.ic_bofang1)); + animator.cancel(); + } else { + Constant.mediaPlayer.start(); + isBoFang = true; + iv_bofang.setImageDrawable(getDrawable(R.mipmap.ic_zanting1)); animator.start(); - }*/ - animator.start(); + } } + return null; } }); - }else { + } else { - if(!isPrepare){ + if (!isPrepare) { return; } - if (isBoFang){ - isBoFang =false; + if (isBoFang) { + isBoFang = false; Constant.mediaPlayer.pause(); iv_bofang.setImageDrawable(getDrawable(R.mipmap.ic_bofang1)); animator.cancel(); - }else { + } else { Constant.mediaPlayer.start(); - isBoFang =true; + isBoFang = true; iv_bofang.setImageDrawable(getDrawable(R.mipmap.ic_zanting1)); /* if(id.equals("625f83491fea07887e61906b")){ animator.start(); @@ -245,79 +243,82 @@ public class PrankDetailsActivity extends AppCompatActivity { }); } - public void playYaoHuangSingle(){ + public void playYaoHuangSingle() { - if(!isPlayAd){ - new MaxPrankAdManager(PrankDetailsActivity.this, Constant.adIdPrankUse, new AdPrankListener() { + if (!isPlayAd) { + isPlayAd = true; + if (!isPrepare) { + return; + } + AdManager.showAD(PrankDetailsActivity.this, new Function1() { @Override - public void adPrankShow() { - } + public Unit invoke(Integer integer) { + if (integer == AdManager.type_show_close || integer == AdManager.type_no_cache || integer == AdManager.type_show_fail) { + if (isYaoHuangBoFang) { + isYaoHuangBoFang = false; + Constant.mediaPlayer.pause(); + animator.cancel(); + } else { + Constant.mediaPlayer.start(); + isYaoHuangBoFang = true; + animator.start(); + } + } - @Override - public void adPrankClose() { - isPlayAd = true; - if(!isPrepare){ - return; - } - if (isYaoHuangBoFang){ - isYaoHuangBoFang =false; - Constant.mediaPlayer.pause(); - animator.cancel(); - }else { - Constant.mediaPlayer.start(); - isYaoHuangBoFang =true; - animator.start(); - } + return null; } }); - }else { - if(!isPrepare){ + + } else { + if (!isPrepare) { return; } - if (isYaoHuangBoFang){ - isYaoHuangBoFang =false; + if (isYaoHuangBoFang) { + isYaoHuangBoFang = false; Constant.mediaPlayer.pause(); animator.cancel(); - }else { + } else { Constant.mediaPlayer.start(); - isYaoHuangBoFang =true; + isYaoHuangBoFang = true; animator.start(); } } } - public void playLoop(){ + public void playLoop() { } + @Override protected void onDestroy() { super.onDestroy(); - if (isBoFang || isYaoHuangBoFang){ + if (isBoFang || isYaoHuangBoFang) { Constant.mediaPlayer.stop(); } } protected void onResume() { super.onResume(); - if (mShakeUtils!=null){ + if (mShakeUtils != null) { mShakeUtils.onResume(); } } + protected void onPause() { super.onPause(); - if (mShakeUtils!=null){ - mShakeUtils.onPause( ); + if (mShakeUtils != null) { + mShakeUtils.onPause(); } } - public boolean isShoucah(String id){ + public boolean isShoucah(String id) { iv_shoucang.setImageDrawable(getResources().getDrawable(R.mipmap.xihuan2)); String shouCang = SPUtils.getInstance().getString(Constant.shouCang); pankList = new ArrayList<>(); - if(!shouCang.isEmpty()){ + if (!shouCang.isEmpty()) { JSONArray jsonArray = JSONArray.parseArray(shouCang); for (int i = 0; i < jsonArray.size(); i++) { PrankListModel prankListModel = JSON.parseObject(jsonArray.get(i).toString(), PrankListModel.class); @@ -325,28 +326,38 @@ public class PrankDetailsActivity extends AppCompatActivity { } } - boolean sss= false; + boolean sss = false; for (int i = 0; i < pankList.size(); i++) { - if(Objects.equals(pankList.get(i).getCategoryId(), id)){ + if (Objects.equals(pankList.get(i).getCategoryId(), id)) { sss = true; iv_shoucang.setImageDrawable(getResources().getDrawable(R.mipmap.xihuan1)); } } - return sss; + return sss; } - public int getIndex(String id){ - int reti = 0; + public int getIndex(String id) { + int reti = 0; for (int i = 0; i < pankList.size(); i++) { - if(Objects.equals(pankList.get(i).getCategoryId(), id)){ - reti = i; + if (Objects.equals(pankList.get(i).getCategoryId(), id)) { + reti = i; } } - return reti; + return reti; } + @Override + public void onBackPressed() { + super.onBackPressed(); + AdManager.showAD(PrankDetailsActivity.this, new Function1() { + @Override + public Unit invoke(Integer integer) { + return null; + } + }); + } } diff --git a/app/src/main/res/layout/splash_activity.xml b/app/src/main/res/layout/splash_activity.xml new file mode 100644 index 0000000..deb2c66 --- /dev/null +++ b/app/src/main/res/layout/splash_activity.xml @@ -0,0 +1,18 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/testPrankApp.jks b/app/testPrankApp.jks new file mode 100644 index 0000000..bf61e55 Binary files /dev/null and b/app/testPrankApp.jks differ diff --git a/build.gradle.kts b/build.gradle.kts index fd7dea1..325f130 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,13 +2,14 @@ plugins { id("com.android.application") version "8.1.0" apply false id("org.jetbrains.kotlin.android") version "1.8.0" apply false id("com.google.gms.google-services") version "4.4.1" apply false + id ("com.google.firebase.crashlytics") version "2.9.2" apply false } buildscript { repositories { - maven { url = uri("https://artifacts.applovin.com/android") } + } dependencies { - classpath ("com.applovin.quality:AppLovinQualityServiceGradlePlugin:5.2.6") + } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 50ffbd9..c57b13a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.1.0" +agp = "8.1.3" junit = "4.13.2" androidx-test-ext-junit = "1.1.5" espresso-core = "3.5.1" diff --git a/settings.gradle.kts b/settings.gradle.kts index 3124653..1877984 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -3,9 +3,7 @@ pluginManagement { google() mavenCentral() gradlePluginPortal() - maven { url = uri("https://android-sdk.is.com") } - maven { url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") } - maven { url = uri("https://artifact.bytedance.com/repository/pangle") } + } } dependencyResolutionManagement { @@ -14,12 +12,19 @@ dependencyResolutionManagement { google() mavenCentral() maven { url = uri("https://jitpack.io") } - maven { url = uri("https://android-sdk.is.com") } - maven { url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") } - maven { url = uri("https://artifact.bytedance.com/repository/pangle") } + + //Anythink(Core) + maven ("https://jfrog.anythinktech.com/artifactory/overseas_sdk") + //Mintegral + maven ("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") + + //TopOn集成测试工具 +// maven ( "https://jfrog.anythinktech.com/artifactory/debugger") + + } } -rootProject.name = "prink01" +rootProject.name = "Prank App" include(":app") \ No newline at end of file