This commit is contained in:
litingting 2025-07-08 16:24:32 +08:00
parent b97f1beea9
commit 8d7d5e3ed5
12 changed files with 257 additions and 56 deletions

View File

@ -4,6 +4,8 @@ plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("io.objectbox")
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")
}
val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date())
android {
@ -15,8 +17,8 @@ android {
applicationId = "com.prank.tool.sounds.app"
minSdk = 24
targetSdk = 35
versionCode = 1
versionName = "1.0"
versionCode = 2
versionName = "1.1"
setProperty("archivesBaseName", "Prank Tools_V" + versionName + "(${versionCode})_$timestamp")
testInstrumentationRunner = "androidx.sounds.runner.AndroidJUnitRunner"
vectorDrawables {
@ -62,5 +64,90 @@ implementation("androidx.appcompat:appcompat:1.6.1")
implementation ("com.github.bumptech.glide:glide:4.16.0")
implementation ("com.airbnb.android:lottie:5.2.0")
implementation(files("libs/TopOnLibrary_06_27_16_00-release.aar"))
implementation(files("libs/UpLoadLibrary_07_03_11_54-release.aar"))
implementation(platform("com.google.firebase:firebase-bom:33.7.0"))
implementation("com.google.firebase:firebase-crashlytics")
implementation("com.google.firebase:firebase-analytics")
implementation("com.google.firebase:firebase-config")
//-----------------------------------------------TopOn(Mintegral、Pangle、UnitAds、Digital Turbine(Fyber)、Chartboost&Helium、Ironsource、Liftoff(Vungle)、Inmobi、Start.io、Bigo)
//TU (Necessary)
implementation("com.thinkup.sdk:core-tpn:6.4.90")
implementation("com.thinkup.sdk:nativead-tpn:6.4.90")
implementation("com.thinkup.sdk:banner-tpn:6.4.90")
implementation("com.thinkup.sdk:interstitial-tpn:6.4.90")
implementation("com.thinkup.sdk:rewardedvideo-tpn:6.4.90")
implementation("com.thinkup.sdk:splash-tpn:6.4.90")
//Androidx (Necessary)
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("androidx.browser:browser:1.4.0")
//StartApp
implementation("com.thinkup.sdk:adapter-tpn-startapp:6.4.90")
implementation("com.startapp:inapp-sdk:5.0.2")
//Vungle
implementation("com.thinkup.sdk:adapter-tpn-vungle:6.4.90")
implementation("com.vungle:vungle-ads:7.5.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.thinkup.sdk:adapter-tpn-unityads:6.4.90")
implementation("com.unity3d.ads:unity-ads:4.14.0")
//Ironsource
implementation("com.thinkup.sdk:adapter-tpn-ironsource:6.4.90")
implementation("com.ironsource.sdk:mediationsdk:8.7.0")
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.thinkup.sdk:adapter-tpn-bigo:6.4.90")
implementation("com.bigossp:bigo-ads:5.3.0")
//Pangle
implementation("com.thinkup.sdk:adapter-tpn-pangle:6.4.90.1")
implementation("com.pangle.global:pag-sdk:7.2.0.6")
implementation("com.google.android.gms:play-services-ads-identifier:18.2.0")
//Inmobi
implementation("com.thinkup.sdk:adapter-tpn-inmobi:6.4.90")
implementation("com.inmobi.monetization:inmobi-ads-kotlin:10.8.2")
//Mintegral
implementation("com.thinkup.sdk:adapter-tpn-mintegral:6.4.90")
implementation("com.mbridge.msdk.oversea:mbridge_android_sdk:16.9.71")
implementation("androidx.recyclerview:recyclerview:1.1.0")
//Chartboost
implementation("com.thinkup.sdk:adapter-tpn-chartboost:6.4.90")
implementation("com.chartboost:chartboost-sdk:9.8.3")
implementation("com.chartboost:chartboost-mediation-sdk:4.9.2")
implementation("com.chartboost:chartboost-mediation-adapter-chartboost:4.9.8.1.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.thinkup.sdk:adapter-tpn-fyber:6.4.90")
implementation("com.fyber:marketplace-sdk:8.3.7")
implementation("com.google.android.gms:play-services-ads-identifier:18.0.1")
//Tramini
implementation("com.thinkup.sdk:tramini-plugin-tpn:6.4.90")
// Debugger UI Tools
implementation("com.anythink.sdk:debugger-ui:1.1.0")
//----------------------------------------------TopOn
}

Binary file not shown.

Binary file not shown.

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
@ -19,8 +19,21 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/icon"
android:supportsRtl="true"
android:networkSecurityConfig="@xml/net"
android:theme="@style/Theme.FunnyAudio"
tools:targetApi="31">
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
<!-- source file: nonchina_jcenter/network_sdk/startapp/5.0.2/AndroidManifest.xml -->
<!--start.io-->
<meta-data
android:name="com.startapp.sdk.SPLASH_ENABLED"
android:value="false" />
<!--start.io-->
<meta-data
android:name="com.startapp.sdk.RETURN_ADS_ENABLED"
android:value="false" />
<activity
android:name=".activity.ViewPlaySound"
android:screenOrientation="portrait"

View File

@ -4,11 +4,13 @@ import android.app.Application;
import android.content.res.AssetManager;
import android.graphics.Typeface;
import com.ad.toponlibrary.AdManager;
import com.prank.tool.sounds.app.data.Sounds;
import com.prank.tool.sounds.app.data.detail;
import com.prank.tool.sounds.app.data.Db;
import com.prank.tool.sounds.app.common.MyUtils;
import com.up.uploadlibrary.UpLoadManager;
import java.io.IOException;
import java.io.InputStream;
@ -29,6 +31,14 @@ public class MyPrank extends Application {
Db.init(this);
if (bean != null)
return;
String TAG = "=============";
AdManager.INSTANCE.init(TAG,app,"h686c94daa9048","a4d08f2ee92add56411b087ab9bc47732",
"fe06c76b794f95216f98e5982ae8f335fc558956",
"n686c95104d799",
"n686c950497733",
"n686c94f520af0",false);
UpLoadManager.INSTANCE.init(this,TAG);
try {
InputStream open = getAssets().open("prank.json");
String string = MyUtils.getString(open);

View File

@ -7,6 +7,8 @@ import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import com.ad.toponlibrary.AdManager;
import com.ad.toponlibrary.onActionListener;
import com.prank.tool.sounds.app.adapter.AdaList;
import com.prank.tool.sounds.app.common.MyItemDecoration;
import com.prank.tool.sounds.app.common.MyUtils;
@ -32,6 +34,13 @@ public class ViewInfo extends AppCompatActivity implements View.OnClickListener,
activityListBinding.categoryName.setText(data.getName());
onList();
activityListBinding.back.setOnClickListener(this);
AdManager.loadAllAd();
AdManager.showTopOn(this, new onActionListener() {
@Override
public void onAction() {
}
});
}
private void onList() {
@ -46,8 +55,13 @@ public class ViewInfo extends AppCompatActivity implements View.OnClickListener,
@Override
public void onClick(View v) {
if(v.equals(activityListBinding.back)){
AdManager.showTopOn(ViewInfo.this, new onActionListener() {
@Override
public void onAction() {
finish();
}
});
}
}

View File

@ -13,6 +13,8 @@ import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.ad.toponlibrary.AdManager;
import com.ad.toponlibrary.onActionListener;
import com.bumptech.glide.Glide;
import com.prank.tool.sounds.app.R;
import com.prank.tool.sounds.app.adapter.AdaList;
@ -68,11 +70,17 @@ public class ViewPlaySound extends AppCompatActivity implements View.OnClickList
playBinding.imLoop.setOnClickListener(this);
playBinding.imTimer.setOnClickListener(this);
MyUtils.setVolume(this, playBinding.seekbar);
AdManager.loadAllAd();
initLike();
loadMore();
volumeReceiver();
AdManager.showTopOn(this, new onActionListener() {
@Override
public void onAction() {
}
});
}
private void stopCountDown() {
@ -173,6 +181,9 @@ public class ViewPlaySound extends AppCompatActivity implements View.OnClickList
if (v.equals(playBinding.back)) {
finish();
} else if (v.equals(playBinding.btnPlay)) {
AdManager.showTopOn(ViewPlaySound.this, new onActionListener() {
@Override
public void onAction() {
boolean selected = playBinding.btnPlay.isSelected();
if (selected) {
if (mediaPlayer.isPlaying()) {
@ -192,8 +203,14 @@ public class ViewPlaySound extends AppCompatActivity implements View.OnClickList
}
}
playBinding.btnPlay.setSelected(!selected);
}
});
} else if (v.equals(playBinding.imLike)) {
AdManager.showTopOn(ViewPlaySound.this, new onActionListener() {
@Override
public void onAction() {
playBinding.imLike.setSelected(!playBinding.imLike.isSelected());
boolean selected = playBinding.imLike.isSelected();
if (selected) {
@ -202,15 +219,25 @@ public class ViewPlaySound extends AppCompatActivity implements View.OnClickList
} else {
Db.removeLike(detail);
}
}
});
} else if (v.equals(playBinding.imLoop)) {
playBinding.imLoop.setSelected(!playBinding.imLoop.isSelected());
mediaPlayer.setLooping(playBinding.imLoop.isSelected());
} else if (v.equals(playBinding.imTimer)) {
AdManager.showTopOn(ViewPlaySound.this, new onActionListener() {
@Override
public void onAction() {
if (popupTime == null) {
popupTime = new PopupTime(ViewPlaySound.this, this);
popupTime = new PopupTime(ViewPlaySound.this, ViewPlaySound.this);
}
popupTime.showTop(playBinding.imTimer);
}
});
}
}

View File

@ -9,6 +9,8 @@ import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import com.ad.toponlibrary.AdManager;
import com.ad.toponlibrary.onActionListener;
import com.prank.tool.sounds.app.R;
import com.prank.tool.sounds.app.common.MyUtils;
import com.prank.tool.sounds.app.common.RecorderManager;
@ -33,8 +35,15 @@ public class ViewRecorderSound extends AppCompatActivity {
recorderManager = new RecorderManager(this);
binding.audioTime.setText(R.string.time_init);
AdManager.loadAllAd();
initEvent();
AdManager.showTopOn(ViewRecorderSound.this, new onActionListener() {
@Override
public void onAction() {
}
});
}
private void initEvent() {

View File

@ -16,6 +16,8 @@ import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.ad.toponlibrary.AdManager;
import com.ad.toponlibrary.onActionListener;
import com.prank.tool.sounds.app.R;
import com.prank.tool.sounds.app.common.MyUtils;
import com.prank.tool.sounds.app.data.Db;
@ -48,7 +50,7 @@ public class ViewSaveSound extends AppCompatActivity {
super.onCreate(savedInstanceState);
binding = ViewSaveSoundBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
AdManager.loadAllAd();
MyUtils.setStatusBarTextColor(this, true);
binding.audioTime.setText(R.string.time_init);
initData();
@ -137,6 +139,10 @@ public class ViewSaveSound extends AppCompatActivity {
}
});
binding.save.setOnClickListener(v -> {
AdManager.showTopOn(ViewSaveSound.this, new onActionListener() {
@Override
public void onAction() {
String name = binding.saveEdit.getText().toString().trim();
boolean b = Db.checkName(name);
if (!TextUtils.isEmpty(name)) {
@ -151,6 +157,11 @@ public class ViewSaveSound extends AppCompatActivity {
} else {
Toast.makeText(ViewSaveSound.this, getString(R.string.save_tip), Toast.LENGTH_SHORT).show();
}
}
});
});
}

View File

@ -6,12 +6,17 @@ import android.os.CountDownTimer;
import androidx.appcompat.app.AppCompatActivity;
import com.ad.toponlibrary.AdManager;
import com.prank.tool.sounds.app.common.MyUtils;
import com.prank.tool.sounds.app.databinding.ViewSplashBinding;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.functions.Function1;
public class ViewSplash extends AppCompatActivity {
private long time = 1000;
private long time = 12000;
private ViewSplashBinding binding;
private CountDownTimer countDownTimer;
@ -21,19 +26,22 @@ public class ViewSplash extends AppCompatActivity {
binding = ViewSplashBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
MyUtils.setStatusBarTextColor(this, true);
countDownTimer = new CountDownTimer(time, 200) {
countDownTimer = AdManager.showWelcomeAd(this, time, new Function1<Long, Unit>() {
@Override
public void onTick(long millisUntilFinished) {
int progressPercentage = (int) ((100 * millisUntilFinished) / time);
public Unit invoke(Long aLong) {
int progressPercentage = (int) ((100 * aLong) / time);
int Percentage = 100 - progressPercentage;
binding.loadingPb.setProgress(Percentage);
return null;
}
}, new Function0<Unit>() {
@Override
public void onFinish() {
public Unit invoke() {
welcomeMain();
return null;
}
};
});
countDownTimer.start();
}

View File

@ -2,6 +2,9 @@
plugins {
id("com.android.application") version "8.6.0" apply false
id("org.jetbrains.kotlin.android") version "2.0.0" apply false
id("com.google.gms.google-services") version "4.4.2" apply false
id ("com.google.firebase.crashlytics") version "3.0.2" apply false
}
buildscript {

View File

@ -12,6 +12,25 @@ dependencyResolutionManagement {
repositories {
google()
mavenCentral()
//TU(Core)
maven ( "https://jfrog.anythinktech.com/artifactory/overseas_sdk")
//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")
}
}