加广告

This commit is contained in:
yuqian 2025-12-03 10:29:16 +08:00
parent 3c46502592
commit cd9bbc4a47
21 changed files with 204 additions and 23 deletions

1
.idea/.name generated Normal file
View File

@ -0,0 +1 @@
PixelShow

4
.idea/vcs.xml generated
View File

@ -1,4 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings" defaultProject="true" />
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

Binary file not shown.

22
.safedk/app_sdks.lst Normal file
View File

@ -0,0 +1,22 @@
106f9be0e66f52f36eaaaff4dd231971
75939c4ce23c53ad9534d43be176b3e9
217e8f437c9fc4244d6e74653ac8a8c7
b9b88d70c3d018bfbda46cd93ba3ddca
946dbe0d5ed7fee91c8ece64d035e70b
1be9e72506f3307ce6a9e78d26d65bd0
d41ed920405e4bd14f3a42cd93c43d89
7eac188d3286b05ccbba774f63a2c049
4df96d3bc9afd17b812e65e6c6add1ef
9f5a74f6ccfb81b48969231b39bf937f
eb3214f29c0a52815b41977d6cc9a46e
becf75b2cc99e82716da2e6697879509
7eec7b9476b99b3ce94533da4f2eb987
974322f19d813702ea048d95288d2b8c
95ff573e4cdf46a05f6c5ac703940db3
f281c2ca1b0ba69b5805badd314ef646
29015bbfcc182d80e7f75bd2c38e4521
c4d1f1775f251f03dce94fdf267a7b89
dd2971b0681141d57b221687791ad1bd
86a0d598cde251321e21a0da4ab94065
74616804a7dc29147dfb0afe122a9fd2

Binary file not shown.

Binary file not shown.

2
.safedk/hashes.safedk Normal file
View File

@ -0,0 +1,2 @@
#Wed Dec 03 10:24:24 CST 2025
json=-1389480098

1
.safedk/list.enc Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,4 @@
#
#Wed Dec 03 10:24:24 CST 2025
8GRrPSHaq8UzR4AxEKORfyLK7pFtbFgCwkKwOHwuPd42bmfT6dZa45gAlLZ7_9a2HD3zmc0GX2K4EwTcC6iL4B=Dd37BrtbLDlaeiDhxVzaDbsI67Mc1h5lAGIinzo4v2IbkpufdtVmT5Tag9O3aGexzkS4txEPigaEexktewANIk
sdk_analysis_plugin_version=5.10.3

View File

@ -0,0 +1,50 @@
-keep class androidx.multidex.** { *; }
-keep class androidx.browser.customtabs.CustomTabsIntent { *; }
-keep class androidx.** {
*** startActivityForResult(***);
*** startActivity(***);
}
-keep class android.support.multidex.** { *; }
-keep class android.support.v4.app.** { *; }
-keep class com.google.android.gms.location.FusedLocationProviderApi { *; }
-keep class com.google.android.gms.location.LocationListener { *; }
-keep class io.fabric.sdk.android.** { *; }
-keep class okio.** { *; }
-keep class retrofit2.** { *; }
-keep class okhttp3.** { *; }
-keep class com.squareup.okhttp.** { *; }
-keep class com.android.volley.** { *; }
-keep class com.flurry.** { *; }
-keep class org.apache.** { *; }
-keep class com.applovin.** { *; }
-keep class com.google.android.gms.ads.** { *; }
-keep class com.ironsource.** { *; }
-keep class com.fyber.inneractive.** { *; }
-keep class com.vungle.** { *; }
-keep class com.unity3d.ads.** { *; }
-keep class com.unity3d.services.** { *; }
-keep class com.mintegral.msdk.** { *; }
-keep class com.mbridge.msdk.** { *; }
-keep class com.adcolony.sdk.** { *; }
-keep class com.inmobi.** { *; }
-keep class com.five_corp.** { *; }
-keep class com.bytedance.** { *; }
-keep class com.smaato.** { *; }
-keep class com.explorestack.** { *; }
-keep class io.bidmachine.** { *; }
-keep class com.pubmatic.** { *; }
-keep class com.chartboost.** { *; }
-keep class com.mobilefuse.** { *; }
-keep class com.verve.** { *; }
-keep class net.pubnative.** { *; }
-keep class com.moloco.sdk.** { *; }
-keep class com.safedk.** { *; }
-keep class com.applovin.quality.** { *; }
-keep class com.braze.** { *; }
-keep public class com.google.android.exoplayer2.** { *; }
-keep public interface com.google.android.exoplayer2.** { *; }
-keep class androidx.media3.** { *; }
-keep interface androidx.media3.** { *; }
-keep class androidx.media3.common.Player {
void release();
}

View File

@ -6,8 +6,13 @@ plugins {
alias(libs.plugins.kotlin.android)
id("kotlin-kapt")
id("kotlin-parcelize")
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")
id("applovin-quality-service")
}
applovin {
apiKey = "8GRrPSHaq8UzR4AxEKORfyLK7pFtbFgCwkKwOHwuPd42bmfT6dZa45gAlLZ7_9a2HD3zmc0GX2K4EwTcC6iL4B"
}
android {
namespace = "com.adpro.pixelshow"
compileSdk = 36
@ -66,4 +71,31 @@ dependencies {
implementation("androidx.activity:activity-ktx:1.10.1")
implementation("com.github.bumptech.glide:glide:4.16.0")
implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation(files("libs/UpLoadLibrary_11_24_18_30-release.aar"))
implementation(files("libs/MaxLibrary_08_08_15_08-release.aar"))
// implementation ("com.squareup.okhttp3:okhttp:4.12.0")
implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")
implementation ("com.google.android.gms:play-services-ads-identifier:18.0.1")
//firebase
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")
//Max(BIGO Ads、Chartboost、DT Exchange、InMobi、ironSource、Liftoff Monetize、Mintegral、Pangle)
implementation("com.applovin:applovin-sdk:+")
implementation("com.applovin.mediation:bigoads-adapter:+")
implementation("com.applovin.mediation:chartboost-adapter:+")
implementation("com.google.android.gms:play-services-base:16.1.0")
implementation("com.applovin.mediation:fyber-adapter:+")
implementation("com.applovin.mediation:inmobi-adapter:+")
implementation("com.squareup.picasso:picasso:2.8")
implementation("androidx.recyclerview:recyclerview:1.1.0")
implementation("com.applovin.mediation:ironsource-adapter:+")
implementation("com.applovin.mediation:vungle-adapter:+")
implementation("com.applovin.mediation:mintegral-adapter:+")
implementation("com.applovin.mediation:bytedance-adapter:+")
}

View File

@ -1,21 +1,40 @@
{
"project_info": {
"project_number": "751074193027",
"project_id": "sketch-master-9f917",
"storage_bucket": "sketch-master-9f917.firebasestorage.app"
"project_number": "978551510698",
"project_id": "pixelshow-86d7e",
"storage_bucket": "pixelshow-86d7e.firebasestorage.app"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:751074193027:android:4183c3717dff0d59d735b6",
"mobilesdk_app_id": "1:978551510698:android:935c9222dfc319b353a2d3",
"android_client_info": {
"package_name": "com.apps.sketchmaster"
"package_name": "com.adpro.pixelshow"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyCdsZ677J8g3SEy376qKPoR-xMOljicZJQ"
"current_key": "AIzaSyCjd1xT2rH0S32wbePhuwfek_dO8W5__hw"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:978551510698:android:4b4da147c233b04653a2d3",
"android_client_info": {
"package_name": "com.android.pixelshow"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyCjd1xT2rH0S32wbePhuwfek_dO8W5__hw"
}
],
"services": {

View File

@ -17,6 +17,7 @@
android:name="com.adpro.pixelshow.IAppLifecycle"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:networkSecurityConfig="@xml/net"
android:theme="@style/Theme.PixelShow"
tools:targetApi="31">
<activity

View File

@ -2,9 +2,12 @@ package com.adpro.pixelshow
import android.app.Application
import android.util.Log
import com.ad.maxlibrary.MaxInitManager
import com.adpro.pixelshow.data.AppDataBase
import com.adpro.pixelshow.data.MovieDao
import com.adpro.pixelshow.util.TypeUtil
import com.applovin.sdk.AppLovinSdk
import com.up.uploadlibrary.UpLoadManager
import java.io.IOException
@ -23,10 +26,26 @@ class IAppLifecycle : Application() {
var classificationList: MutableList<String> = mutableListOf()
var isDataInitialized = false
private set
var TAG = "IAppLifecycle"
}
override fun onCreate() {
super.onCreate()
UpLoadManager.init(this,TAG){ _, _ ->
// 处理逻辑
null
Log.d(TAG, "upload success")
}
//调试
AppLovinSdk.getInstance( this ).showMediationDebugger()
MaxInitManager.init(
this,
"Dd37BrtbLDlaeiDhxVzaDbsI67Mc1h5lAGIinzo4v2IbkpufdtVmT5Tag9O3aGexzkS4txEPigaEexktewANIk",
"3cbf4bd957da0eb3",
"768b5586c4ab6ad1",
"a4dd3cb20fd8925d",
"=============="
)
val database = AppDataBase.getDatabase(this)
val paperDao = database.movieDao()
Thread {

View File

@ -9,6 +9,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.ad.maxlibrary.MaxManager
import com.adpro.pixelshow.IAppLifecycle
import com.adpro.pixelshow.event.ClassFrameAdapter
import com.adpro.pixelshow.data.MainViewModel
@ -26,6 +27,7 @@ class ClassificationFragment : Fragment(),FirClassListener {
savedInstanceState: Bundle?
): View {
binding=FragmentClassBinding.inflate(inflater,container,false)
MaxManager.onLoadAd()
init()
return binding.root
}

View File

@ -9,6 +9,7 @@ import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider
import com.ad.maxlibrary.MaxManager
import com.adpro.pixelshow.R
import com.adpro.pixelshow.data.MainViewModel
import com.adpro.pixelshow.data.Movie
@ -67,6 +68,8 @@ class DownloadRequestActivity : AppCompatActivity(), IntentListener {
setContentView(binding.root)
TopBarUtils.setStatusBar(this.window)
TopBarUtils.setLightStatusBar(this.window,true)
MaxManager.onLoadAd()
MaxManager.startShowMaxAd (this){}
init()
}
override fun onDestroy() {
@ -119,8 +122,10 @@ class DownloadRequestActivity : AppCompatActivity(), IntentListener {
}
binding.layoutDownload.setOnClickListener {
MaxManager.startShowMaxAd (this){
startDownload()
}
}
binding.layoutSet.setOnClickListener {
showSetDialog()
}

View File

@ -5,6 +5,7 @@ import android.os.Bundle
import android.os.CountDownTimer
import android.os.Handler
import androidx.appcompat.app.AppCompatActivity
import com.ad.maxlibrary.WelComManager
import com.adpro.pixelshow.databinding.ActivityInitBinding
import com.adpro.pixelshow.util.TopBarUtils
@ -12,31 +13,31 @@ class InitActivity : AppCompatActivity() {
lateinit var binding: ActivityInitBinding
private var handler: Handler = Handler()
private var countDownTimer: CountDownTimer? = null
private val time = 12000L
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityInitBinding.inflate(layoutInflater)
setContentView(binding.root)
TopBarUtils.setStatusBar(this.window)
TopBarUtils.setLightStatusBar(this.window,true)
handler.postDelayed({
countDownTimer = WelComManager.initTimer(this, time, { millisUntilFinished ->
val v: Float =
100 - millisUntilFinished.toFloat() / time * 100
val v1 = v.toInt()
binding.progressbar.progress = v1
}) {
val intent= Intent(
this@InitActivity,
FirstSelActivity::class.java
)
startActivity(intent)
finish()
}, 4000)
countDownTimer = object : CountDownTimer(4000, 100) {
override fun onTick(millisUntilFinished: Long) {
val progress = ((4000 - millisUntilFinished) / 4000f * 100).toInt()
binding.progressbar.progress = progress
}
override fun onFinish() {
binding.progressbar.progress = 100
}
}.start()
}
override fun onDestroy() {

View File

@ -12,6 +12,7 @@ import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
import com.ad.maxlibrary.MaxManager
import com.adpro.pixelshow.R
import com.adpro.pixelshow.event.MoreAndSearchAdapter
import com.adpro.pixelshow.data.MainViewModel
@ -32,6 +33,7 @@ class SearchKeyActivity : AppCompatActivity(), SecFavListener {
binding = ActivitySearchKeyBinding.inflate(layoutInflater)
setContentView(binding.root)
TopBarUtils.setStatusBar(this.window)
MaxManager.onLoadAd()
TopBarUtils.setLightStatusBar(this.window,true)
init()
}
@ -42,14 +44,19 @@ class SearchKeyActivity : AppCompatActivity(), SecFavListener {
adapter.setListener(this)
binding.list.adapter = adapter
binding.list.layoutManager = GridLayoutManager(this, 2)
binding.tvStart.setOnClickListener { startSearch() }
binding.tvStart.setOnClickListener {
MaxManager.startShowMaxAd (this){startSearch();} }
binding.imageBack.setOnClickListener { finish() }
binding.editText.requestFocus()
binding.editText.setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE) {
return@setOnEditorActionListener true
MaxManager.startShowMaxAd (this){
startSearch()
}
return@setOnEditorActionListener true
}
false
}
viewModel.searchList.observe(this) { list ->

View File

@ -2,4 +2,14 @@
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.kotlin.android) 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 {
repositories {
maven { url = uri("https://artifacts.applovin.com/android") }
}
dependencies {
classpath ("com.applovin.quality:AppLovinQualityServiceGradlePlugin:+")
}
}

View File

@ -6,7 +6,7 @@
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
org.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=1g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. For more details, visit
# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects

View File

@ -16,6 +16,9 @@ dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { url = uri("https://cboost.jfrog.io/artifactory/chartboost-ads/") }
maven { url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") }
maven { url = uri("https://artifact.bytedance.com/repository/pangle") }
}
}