加广告

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"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="VcsDirectoryMappings" defaultProject="true" /> <component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project> </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) alias(libs.plugins.kotlin.android)
id("kotlin-kapt") id("kotlin-kapt")
id("kotlin-parcelize") id("kotlin-parcelize")
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")
id("applovin-quality-service")
}
applovin {
apiKey = "8GRrPSHaq8UzR4AxEKORfyLK7pFtbFgCwkKwOHwuPd42bmfT6dZa45gAlLZ7_9a2HD3zmc0GX2K4EwTcC6iL4B"
} }
android { android {
namespace = "com.adpro.pixelshow" namespace = "com.adpro.pixelshow"
compileSdk = 36 compileSdk = 36
@ -66,4 +71,31 @@ dependencies {
implementation("androidx.activity:activity-ktx:1.10.1") implementation("androidx.activity:activity-ktx:1.10.1")
implementation("com.github.bumptech.glide:glide:4.16.0") implementation("com.github.bumptech.glide:glide:4.16.0")
implementation("com.squareup.okhttp3:okhttp:4.12.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_info": {
"project_number": "751074193027", "project_number": "978551510698",
"project_id": "sketch-master-9f917", "project_id": "pixelshow-86d7e",
"storage_bucket": "sketch-master-9f917.firebasestorage.app" "storage_bucket": "pixelshow-86d7e.firebasestorage.app"
}, },
"client": [ "client": [
{ {
"client_info": { "client_info": {
"mobilesdk_app_id": "1:751074193027:android:4183c3717dff0d59d735b6", "mobilesdk_app_id": "1:978551510698:android:935c9222dfc319b353a2d3",
"android_client_info": { "android_client_info": {
"package_name": "com.apps.sketchmaster" "package_name": "com.adpro.pixelshow"
} }
}, },
"oauth_client": [], "oauth_client": [],
"api_key": [ "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": { "services": {

View File

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

View File

@ -2,9 +2,12 @@ package com.adpro.pixelshow
import android.app.Application import android.app.Application
import android.util.Log import android.util.Log
import com.ad.maxlibrary.MaxInitManager
import com.adpro.pixelshow.data.AppDataBase import com.adpro.pixelshow.data.AppDataBase
import com.adpro.pixelshow.data.MovieDao import com.adpro.pixelshow.data.MovieDao
import com.adpro.pixelshow.util.TypeUtil import com.adpro.pixelshow.util.TypeUtil
import com.applovin.sdk.AppLovinSdk
import com.up.uploadlibrary.UpLoadManager
import java.io.IOException import java.io.IOException
@ -23,10 +26,26 @@ class IAppLifecycle : Application() {
var classificationList: MutableList<String> = mutableListOf() var classificationList: MutableList<String> = mutableListOf()
var isDataInitialized = false var isDataInitialized = false
private set private set
var TAG = "IAppLifecycle"
} }
override fun onCreate() { override fun onCreate() {
super.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 database = AppDataBase.getDatabase(this)
val paperDao = database.movieDao() val paperDao = database.movieDao()
Thread { Thread {

View File

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

View File

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

View File

@ -5,6 +5,7 @@ import android.os.Bundle
import android.os.CountDownTimer import android.os.CountDownTimer
import android.os.Handler import android.os.Handler
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.ad.maxlibrary.WelComManager
import com.adpro.pixelshow.databinding.ActivityInitBinding import com.adpro.pixelshow.databinding.ActivityInitBinding
import com.adpro.pixelshow.util.TopBarUtils import com.adpro.pixelshow.util.TopBarUtils
@ -12,31 +13,31 @@ class InitActivity : AppCompatActivity() {
lateinit var binding: ActivityInitBinding lateinit var binding: ActivityInitBinding
private var handler: Handler = Handler() private var handler: Handler = Handler()
private var countDownTimer: CountDownTimer? = null private var countDownTimer: CountDownTimer? = null
private val time = 12000L
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
binding = ActivityInitBinding.inflate(layoutInflater) binding = ActivityInitBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)
TopBarUtils.setStatusBar(this.window) TopBarUtils.setStatusBar(this.window)
TopBarUtils.setLightStatusBar(this.window,true) 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( val intent= Intent(
this@InitActivity, this@InitActivity,
FirstSelActivity::class.java FirstSelActivity::class.java
) )
startActivity(intent) startActivity(intent)
finish() 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() { override fun onDestroy() {

View File

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

View File

@ -2,4 +2,14 @@
plugins { plugins {
alias(libs.plugins.android.application) apply false alias(libs.plugins.android.application) apply false
alias(libs.plugins.kotlin.android) 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 # http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process. # Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings. # 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. # When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. For more details, visit # This option should only be used with decoupled projects. For more details, visit
# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects # https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects

View File

@ -16,6 +16,9 @@ dependencyResolutionManagement {
repositories { repositories {
google() google()
mavenCentral() 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") }
} }
} }