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