From fbcea3777d627d5c7e73c9ca7fbe905400477a3b Mon Sep 17 00:00:00 2001 From: litingting Date: Wed, 9 Jul 2025 17:33:29 +0800 Subject: [PATCH] V1.1(2) --- app/build.gradle.kts | 92 +++++++++++++++++- app/google-services.json | 29 ++++++ app/libs/TopOnLibrary_06_27_16_00-release.aar | Bin 0 -> 22911 bytes .../UpLoadLibrary_07_03_11_54-release.aar | Bin 0 -> 19887 bytes app/src/main/AndroidManifest.xml | 1 + .../main/java/com/prank/app/color/App.java | 11 +++ .../app/color/activity/ActivityHome.java | 4 +- .../app/color/activity/ActivityImport.kt | 5 +- .../prank/app/color/activity/ActivityLike.kt | 7 +- .../app/color/activity/ActivityList.java | 10 ++ .../app/color/activity/ActivityPlay.java | 67 ++++++++----- .../app/color/activity/ActivityRecord.java | 10 +- .../app/color/activity/ActivitySave.java | 39 +++++--- .../prank/app/color/activity/ActivityWel.java | 22 +++-- app/src/main/res/xml/net.xml | 6 ++ build.gradle.kts | 2 + settings.gradle.kts | 19 ++++ 17 files changed, 270 insertions(+), 54 deletions(-) create mode 100644 app/google-services.json create mode 100644 app/libs/TopOnLibrary_06_27_16_00-release.aar create mode 100644 app/libs/UpLoadLibrary_07_03_11_54-release.aar create mode 100644 app/src/main/res/xml/net.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6eefe42..2028580 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -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 { @@ -16,8 +18,8 @@ android { minSdk = 24 //noinspection OldTargetApi targetSdk = 35 - versionCode = 1 - versionName = "1.0" + versionCode = 2 + versionName = "1.1" setProperty("archivesBaseName", "The Prank App_V" + versionName + "(${versionCode})_$timestamp") testInstrumentationRunner = "androidx.sounds.runner.AndroidJUnitRunner" vectorDrawables { @@ -61,5 +63,91 @@ 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 } \ No newline at end of file diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..fca7fa2 --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "804679130215", + "project_id": "the-prank-app-599a9", + "storage_bucket": "the-prank-app-599a9.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:804679130215:android:9528cd7bfb6352394088c2", + "android_client_info": { + "package_name": "com.prank.app.color" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyCxgqYiydRqfdKTBxX5778VusbPBOL94h8" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/libs/TopOnLibrary_06_27_16_00-release.aar b/app/libs/TopOnLibrary_06_27_16_00-release.aar new file mode 100644 index 0000000000000000000000000000000000000000..25009385cdf31c7a9666f48e10d48d9cd5c8c780 GIT binary patch literal 22911 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

webcgb}}O71WB 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 ( ActivityResultContracts.RequestPermission() ) { isGranted: Boolean -> @@ -78,6 +79,8 @@ class ActivityImport : AppCompatActivity(), View.OnClickListener { binding.btnimport.setOnClickListener(this) binding.record.setOnClickListener(this) binding.back.setOnClickListener(this) + + AdManager.showTopOn(this){} } private fun initList() { diff --git a/app/src/main/java/com/prank/app/color/activity/ActivityLike.kt b/app/src/main/java/com/prank/app/color/activity/ActivityLike.kt index 6ef827b..bb31d23 100644 --- a/app/src/main/java/com/prank/app/color/activity/ActivityLike.kt +++ b/app/src/main/java/com/prank/app/color/activity/ActivityLike.kt @@ -4,8 +4,10 @@ import android.os.Bundle import android.view.View import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.GridLayoutManager -import com.prank.app.color.dbdata.DbTool +import com.ad.toponlibrary.AdManager +import com.ad.toponlibrary.onActionListener import com.prank.app.color.databinding.ActivityLikeBinding +import com.prank.app.color.dbdata.DbTool import com.prank.app.color.list.AdapterLike import com.prank.app.color.utils.Common import com.prank.app.color.utils.ItemDecoration @@ -20,7 +22,7 @@ class ActivityLike : AppCompatActivity(), View.OnClickListener { setContentView(binding.root) Common.setStatusBarTextColor(this, true) binding.back.setOnClickListener(this) - + AdManager.loadAllAd() binding.list.run { layoutManager = GridLayoutManager(this@ActivityLike, 2) @@ -43,6 +45,7 @@ class ActivityLike : AppCompatActivity(), View.OnClickListener { adapter = likeAdapter } + AdManager.showTopOn(this, onActionListener { }) } override fun onClick(v: View?) { diff --git a/app/src/main/java/com/prank/app/color/activity/ActivityList.java b/app/src/main/java/com/prank/app/color/activity/ActivityList.java index 7131bdd..2ed960b 100644 --- a/app/src/main/java/com/prank/app/color/activity/ActivityList.java +++ b/app/src/main/java/com/prank/app/color/activity/ActivityList.java @@ -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.app.color.dbdata.MyData; import com.prank.app.color.dbdata.MyInfo; import com.prank.app.color.databinding.ActivityListBinding; @@ -31,7 +33,15 @@ public class ActivityList extends AppCompatActivity implements View.OnClickListe colorIndex = getIntent().getIntExtra(Common.KEY_LIST_COLOR_POS,0); activityListBinding.categoryName.setText(data.getName()); onList(); + AdManager.loadAllAd(); activityListBinding.back.setOnClickListener(this); + + AdManager.showTopOn(this, new onActionListener() { + @Override + public void onAction() { + + } + }); } private void onList() { diff --git a/app/src/main/java/com/prank/app/color/activity/ActivityPlay.java b/app/src/main/java/com/prank/app/color/activity/ActivityPlay.java index e9210a7..5831a99 100644 --- a/app/src/main/java/com/prank/app/color/activity/ActivityPlay.java +++ b/app/src/main/java/com/prank/app/color/activity/ActivityPlay.java @@ -15,6 +15,8 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.LinearLayoutManager; +import com.ad.toponlibrary.AdManager; +import com.ad.toponlibrary.onActionListener; import com.bumptech.glide.Glide; import com.prank.app.color.R; import com.prank.app.color.dbdata.DbTool; @@ -53,7 +55,7 @@ public class ActivityPlay extends AppCompatActivity implements View.OnClickListe Common.setStatusBarTextColor(this, true); info = (MyInfo) getIntent().getSerializableExtra(Common.KEY_PLAY_DATA); color = getIntent().getIntExtra(Common.KEY_LIST_COLOR_POS, 0); -// playBinding.constraintLayout.setBackground(ContextCompat.getDrawable(this, Tools.playBgs[color])); + AdManager.loadAllAd(); initAudio(); String covert = info.getCovert(); if (covert != null && !covert.isEmpty()) { @@ -76,6 +78,12 @@ public class ActivityPlay extends AppCompatActivity implements View.OnClickListe initLike(); loadMore(); volumeReceiver(); + AdManager.showTopOn(this, new onActionListener() { + @Override + public void onAction() { + + } + }); } @@ -183,26 +191,31 @@ public class ActivityPlay extends AppCompatActivity implements View.OnClickListe if (v.equals(playBinding.back)) { finish(); } else if (v.equals(playBinding.btnPlay)) { - boolean selected = playBinding.btnPlay.isSelected(); - if (selected) { - if (mediaPlayer.isPlaying()) { - playBinding.rippleView.pauseRipple(); - mediaPlayer.pause(); - isPause = true; - } - } else { - if (!mediaPlayer.isPlaying()) { - mediaPlayer.start(); - if (isPause) { - playBinding.rippleView.resumeRipple(); - } else { - playBinding.rippleView.startRipple(); - } - isPause = false; - } - } - playBinding.btnPlay.setSelected(!selected); + AdManager.showTopOn(ActivityPlay.this, new onActionListener() { + @Override + public void onAction() { + boolean selected = playBinding.btnPlay.isSelected(); + if (selected) { + if (mediaPlayer.isPlaying()) { + playBinding.rippleView.pauseRipple(); + mediaPlayer.pause(); + isPause = true; + } + } else { + if (!mediaPlayer.isPlaying()) { + mediaPlayer.start(); + if (isPause) { + playBinding.rippleView.resumeRipple(); + } else { + playBinding.rippleView.startRipple(); + } + isPause = false; + } + } + playBinding.btnPlay.setSelected(!selected); + } + }); } else if (v.equals(playBinding.imLike)) { playBinding.imLike.setSelected(!playBinding.imLike.isSelected()); boolean selected = playBinding.imLike.isSelected(); @@ -216,10 +229,16 @@ public class ActivityPlay extends AppCompatActivity implements View.OnClickListe playBinding.imLoop.setSelected(!playBinding.imLoop.isSelected()); mediaPlayer.setLooping(playBinding.imLoop.isSelected()); } else if (v.equals(playBinding.imTimer)) { - if (dialogTimer == null) { - dialogTimer = new DialogTimer(ActivityPlay.this, this); - } - dialogTimer.showTop(playBinding.imTimer); + AdManager.showTopOn(ActivityPlay.this, new onActionListener() { + @Override + public void onAction() { + if (dialogTimer == null) { + dialogTimer = new DialogTimer(ActivityPlay.this, ActivityPlay.this); + } + dialogTimer.showTop(playBinding.imTimer); + } + }); + } } diff --git a/app/src/main/java/com/prank/app/color/activity/ActivityRecord.java b/app/src/main/java/com/prank/app/color/activity/ActivityRecord.java index 608e5cf..b76436e 100644 --- a/app/src/main/java/com/prank/app/color/activity/ActivityRecord.java +++ b/app/src/main/java/com/prank/app/color/activity/ActivityRecord.java @@ -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.app.color.R; import com.prank.app.color.databinding.ActivityRecorderBinding; import com.prank.app.color.utils.Common; @@ -31,9 +33,15 @@ public class ActivityRecord extends AppCompatActivity { setContentView(binding.getRoot()); Common.setStatusBarTextColor(this, true); recorderUtils = new RecorderUtils(this); - + AdManager.loadAllAd(); binding.audioTime.setText(R.string.time_init); + AdManager.showTopOn(this, new onActionListener() { + @Override + public void onAction() { + + } + }); initEvent(); } diff --git a/app/src/main/java/com/prank/app/color/activity/ActivitySave.java b/app/src/main/java/com/prank/app/color/activity/ActivitySave.java index 55857a1..df833c0 100644 --- a/app/src/main/java/com/prank/app/color/activity/ActivitySave.java +++ b/app/src/main/java/com/prank/app/color/activity/ActivitySave.java @@ -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.app.color.R; import com.prank.app.color.dbdata.DbTool; import com.prank.app.color.dbdata.MyInfo; @@ -48,7 +50,7 @@ public class ActivitySave extends AppCompatActivity { super.onCreate(savedInstanceState); binding = ActivitySaveBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - + AdManager.loadAllAd(); Common.setStatusBarTextColor(this, true); binding.audioTime.setText(R.string.time_init); initData(); @@ -137,20 +139,29 @@ public class ActivitySave extends AppCompatActivity { } }); binding.save.setOnClickListener(v -> { - String name = binding.saveEdit.getText().toString().trim(); - boolean b = DbTool.checkName(name); - if (!TextUtils.isEmpty(name)) { - if(!b){ - binding.saveEdit.setText(""); - Toast.makeText(ActivitySave.this, getString(R.string.name_hint), Toast.LENGTH_SHORT).show(); - return; + + AdManager.showTopOn(ActivitySave.this, new onActionListener() { + @Override + public void onAction() { + String name = binding.saveEdit.getText().toString().trim(); + boolean b = DbTool.checkName(name); + if (!TextUtils.isEmpty(name)) { + if(!b){ + binding.saveEdit.setText(""); + Toast.makeText(ActivitySave.this, getString(R.string.name_hint), Toast.LENGTH_SHORT).show(); + return; + } + saveData(name); + Toast.makeText(ActivitySave.this, getString(R.string.save_tips), Toast.LENGTH_SHORT).show(); + finish(); + } else { + Toast.makeText(ActivitySave.this, getString(R.string.save_tip), Toast.LENGTH_SHORT).show(); + } } - saveData(name); - Toast.makeText(ActivitySave.this, getString(R.string.save_tips), Toast.LENGTH_SHORT).show(); - finish(); - } else { - Toast.makeText(ActivitySave.this, getString(R.string.save_tip), Toast.LENGTH_SHORT).show(); - } + }); + + + }); } diff --git a/app/src/main/java/com/prank/app/color/activity/ActivityWel.java b/app/src/main/java/com/prank/app/color/activity/ActivityWel.java index 1042373..3ff4eff 100644 --- a/app/src/main/java/com/prank/app/color/activity/ActivityWel.java +++ b/app/src/main/java/com/prank/app/color/activity/ActivityWel.java @@ -6,12 +6,17 @@ import android.os.CountDownTimer; import androidx.appcompat.app.AppCompatActivity; +import com.ad.toponlibrary.AdManager; import com.prank.app.color.databinding.ActivityWelBinding; import com.prank.app.color.utils.Common; +import kotlin.Unit; +import kotlin.jvm.functions.Function0; +import kotlin.jvm.functions.Function1; + public class ActivityWel extends AppCompatActivity { - private long time = 3000; + private long time = 12000; private ActivityWelBinding binding; private CountDownTimer countDownTimer; @@ -21,20 +26,21 @@ public class ActivityWel extends AppCompatActivity { binding = ActivityWelBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); Common.setStatusBarTextColor(this, true); - countDownTimer = new CountDownTimer(time, 200) { + countDownTimer = AdManager.showWelcomeAd(this, time, new Function1() { @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() { @Override - public void onFinish() { + public Unit invoke() { welcomeMain(); + return null; } - }; - + }); countDownTimer.start(); } diff --git a/app/src/main/res/xml/net.xml b/app/src/main/res/xml/net.xml new file mode 100644 index 0000000..0ac6102 --- /dev/null +++ b/app/src/main/res/xml/net.xml @@ -0,0 +1,6 @@ + + + + mobile-server.lux-ad.com + + diff --git a/build.gradle.kts b/build.gradle.kts index 0f3fea3..8a366f6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,6 +2,8 @@ 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 { diff --git a/settings.gradle.kts b/settings.gradle.kts index 53bb526..c93a9bc 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -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") } }