This commit is contained in:
litingting 2025-08-08 16:18:19 +08:00
parent 6f8fb1beb9
commit e2a7a0b8ef
14 changed files with 151 additions and 27 deletions

View File

@ -5,6 +5,12 @@ plugins {
alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.android)
id("io.objectbox") id("io.objectbox")
id ("kotlin-kapt") id ("kotlin-kapt")
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")
id("applovin-quality-service")
}
applovin {
apiKey = "4yWSuJdlSBRrsgCT2fEzZvNoBH0M1hzyqNP9ZiCTn0an2TBTdxk01Ips4aov__5L4dU8_sQpVw0_GOMLgIfJu_"
} }
val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date()) val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date())
android { android {
@ -15,8 +21,8 @@ android {
applicationId = "com.drawing.drawsketch" applicationId = "com.drawing.drawsketch"
minSdk = 24 minSdk = 24
targetSdk = 35 targetSdk = 35
versionCode = 1 versionCode = 2
versionName = "1.0" versionName = "1.1"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
setProperty( setProperty(
"archivesBaseName", "archivesBaseName",
@ -73,4 +79,30 @@ dependencies {
implementation("androidx.camera:camera-view:${camerax_version}") implementation("androidx.camera:camera-view:${camerax_version}")
//noinspection GradleDependency //noinspection GradleDependency
implementation("androidx.camera:camera-extensions:${camerax_version}") implementation("androidx.camera:camera-extensions:${camerax_version}")
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")
implementation ("com.squareup.okhttp3:okhttp:4.12.0")
implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")
implementation(files("libs/UpLoadLibrary_07_03_11_54-release.aar"))
implementation(files("libs/MaxLibrary_08_08_15_08-release.aar"))
//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:+")
} }

48
app/google-services.json Normal file
View File

@ -0,0 +1,48 @@
{
"project_info": {
"project_number": "919002885894",
"project_id": "prank-tools-4a0d1",
"storage_bucket": "prank-tools-4a0d1.firebasestorage.app"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:919002885894:android:2ecea1173b63d0f3aa3887",
"android_client_info": {
"package_name": "com.drawing.drawsketch"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyDIj60MaLSRNqpU3OHc9pI2yYfULRC3zUQ"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:919002885894:android:40a35ca642d748c0aa3887",
"android_client_info": {
"package_name": "com.prank.tool"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyDIj60MaLSRNqpU3OHc9pI2yYfULRC3zUQ"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
}
],
"configuration_version": "1"
}

Binary file not shown.

Binary file not shown.

View File

@ -22,6 +22,7 @@
android:fullBackupContent="@xml/backup_rules" android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/logo" android:icon="@mipmap/logo"
android:label="@string/app_name" android:label="@string/app_name"
android:networkSecurityConfig="@xml/net"
android:roundIcon="@mipmap/logo" android:roundIcon="@mipmap/logo"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.DrawSketch" android:theme="@style/Theme.DrawSketch"

View File

@ -3,6 +3,8 @@ package com.drawing.drawsketch
import android.app.Application import android.app.Application
import android.content.Context import android.content.Context
import android.util.Log import android.util.Log
import com.ad.maxlibrary.MaxInitManager
import com.up.uploadlibrary.UpLoadManager
class App : Application() { class App : Application() {
@ -16,6 +18,16 @@ class App : Application() {
super.onCreate() super.onCreate()
mInstance = this mInstance = this
DbBase.init(this) DbBase.init(this)
MaxInitManager.init(
this,
"VVN64VW3_CeQrIZ9sSUMQAWAS4XI14L2etylkN_E2IkJpZrsF6Xt26aMuwBGOboUiFvkTVJ28EbPW53NL_6SPT",
"4b395fbe56938e55",
"1333fd8414ece2be",
"41633fd274e1e91c",
TAG
)
UpLoadManager.init(this,TAG)
assetFolders = getAssetFolders(this) assetFolders = getAssetFolders(this)
} }

View File

@ -9,10 +9,11 @@ import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import com.ad.maxlibrary.WelComManager
import com.drawing.drawsketch.main.MainActivity import com.drawing.drawsketch.main.MainActivity
class FullWelcomeActivity : AppCompatActivity() { class FullWelcomeActivity : AppCompatActivity() {
private val countTime = 1000L private val countTime = 14000L
private var countDownTimer:CountDownTimer?= null private var countDownTimer:CountDownTimer?= null
private lateinit var textView:TextView private lateinit var textView:TextView
@ -30,22 +31,16 @@ class FullWelcomeActivity : AppCompatActivity() {
insets insets
} }
countDownTimer = object :CountDownTimer(countTime, 100) { countDownTimer = WelComManager.initTimer(this@FullWelcomeActivity,countTime,{
override fun onTick(millisUntilFinished: Long) { val progressPercentage: Int = ((100 * it) / countTime).toInt()
val progressPercentage: Int = ((100 * millisUntilFinished) / countTime).toInt()
val progressInt = 100 - progressPercentage val progressInt = 100 - progressPercentage
textView.text = getString(R.string.welcome_text_progress, progressInt) textView.text = getString(R.string.welcome_text_progress, progressInt)
welpb.progress = progressInt welpb.progress = progressInt
}){
}
override fun onFinish() {
toMainAct() toMainAct()
} }
} }
countDownTimer?.start()
}
private fun toMainAct(){ private fun toMainAct(){
textView.text = getString(R.string.welcome_text_progress, 100) textView.text = getString(R.string.welcome_text_progress, 100)

View File

@ -11,6 +11,7 @@ import androidx.core.view.WindowInsetsCompat
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.ad.maxlibrary.MaxManager
import com.drawing.drawsketch.App import com.drawing.drawsketch.App
import com.drawing.drawsketch.ItemSpace import com.drawing.drawsketch.ItemSpace
import com.drawing.drawsketch.R import com.drawing.drawsketch.R
@ -27,6 +28,7 @@ class CategoryListActivity : AppCompatActivity() {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
enableEdgeToEdge() enableEdgeToEdge()
setContentView(R.layout.activity_category_list) setContentView(R.layout.activity_category_list)
MaxManager.onLoadAd()
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
@ -53,6 +55,10 @@ class CategoryListActivity : AppCompatActivity() {
} }
} }
MaxManager.startShowMaxAd(this@CategoryListActivity){
}
} }
private fun InitCategoryList(category: String): CategoryAllAdapter { private fun InitCategoryList(category: String): CategoryAllAdapter {

View File

@ -13,6 +13,7 @@ import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.ad.maxlibrary.MaxManager
import com.drawing.drawsketch.App import com.drawing.drawsketch.App
import com.drawing.drawsketch.DbBase import com.drawing.drawsketch.DbBase
import com.drawing.drawsketch.ItemSpace import com.drawing.drawsketch.ItemSpace
@ -39,7 +40,7 @@ class CollectionActivity : AppCompatActivity() {
insets insets
} }
MaxManager.onLoadAd()
recyclerView = findViewById(R.id.collection_recyclerview) recyclerView = findViewById(R.id.collection_recyclerview)
fmBack = findViewById(R.id.frame_back) fmBack = findViewById(R.id.frame_back)
emptyLayout = findViewById(R.id.layout_empty) emptyLayout = findViewById(R.id.layout_empty)
@ -47,6 +48,9 @@ class CollectionActivity : AppCompatActivity() {
showEmpty(true) showEmpty(true)
initData() initData()
setClick() setClick()
MaxManager.startShowMaxAd(this@CollectionActivity){
}
} }
private fun setClick(){ private fun setClick(){

View File

@ -36,6 +36,7 @@ import com.drawing.drawsketch.DbBase
import com.drawing.drawsketch.R import com.drawing.drawsketch.R
import com.drawing.drawsketch.Utils import com.drawing.drawsketch.Utils
import androidx.core.graphics.scale import androidx.core.graphics.scale
import com.ad.maxlibrary.MaxManager
class PreviewActivity : AppCompatActivity() ,OnTouchListener{ class PreviewActivity : AppCompatActivity() ,OnTouchListener{
companion object{ companion object{
@ -83,6 +84,7 @@ class PreviewActivity : AppCompatActivity() ,OnTouchListener{
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets insets
} }
MaxManager.onLoadAd()
curBitmapPath = intent.getStringExtra(IntentKeyPath) curBitmapPath = intent.getStringExtra(IntentKeyPath)
imTab1 = findViewById(R.id.im_tab1) imTab1 = findViewById(R.id.im_tab1)
@ -101,6 +103,9 @@ class PreviewActivity : AppCompatActivity() ,OnTouchListener{
imTab3.setSelected(DbBase.queryIsLike(curBitmapPath)) imTab3.setSelected(DbBase.queryIsLike(curBitmapPath))
setClick() setClick()
MaxManager.startShowMaxAd(this@PreviewActivity){
}
} }
private fun setClick(){ private fun setClick(){

View File

@ -25,6 +25,7 @@ import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.ad.maxlibrary.MaxManager
import com.drawing.drawsketch.App import com.drawing.drawsketch.App
import com.drawing.drawsketch.DbBase import com.drawing.drawsketch.DbBase
import com.drawing.drawsketch.ItemSpace import com.drawing.drawsketch.ItemSpace
@ -65,7 +66,7 @@ class UploadActivity : AppCompatActivity() {
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets insets
} }
MaxManager.onLoadAd()
recyclerView = findViewById(R.id.list_recyclerview) recyclerView = findViewById(R.id.list_recyclerview)
fmBack = findViewById(R.id.frame_back) fmBack = findViewById(R.id.frame_back)
emptyLayout = findViewById(R.id.layout_empty) emptyLayout = findViewById(R.id.layout_empty)
@ -124,6 +125,8 @@ class UploadActivity : AppCompatActivity() {
finish() finish()
} }
imageUpload.setOnClickListener { imageUpload.setOnClickListener {
MaxManager.startShowMaxAd(this@UploadActivity){
dialog = dialog ?: DialogSelect { type-> dialog = dialog ?: DialogSelect { type->
if(type == DialogSelect.TYPE_CAMERA){ if(type == DialogSelect.TYPE_CAMERA){
openCamera() openCamera()
@ -134,6 +137,8 @@ class UploadActivity : AppCompatActivity() {
} }
dialog!!.show(supportFragmentManager, "") dialog!!.show(supportFragmentManager, "")
} }
}
} }

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<network-security-config xmlns:tools="http://schemas.android.com/tools">
<domain-config cleartextTrafficPermitted="true">
<domain tools:ignore="NetworkSecurityConfig">mobile-server.lux-ad.com</domain>
</domain-config>
</network-security-config>

View File

@ -2,9 +2,16 @@
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{ buildscript{
repositories {
maven { url = uri("https://artifacts.applovin.com/android") }
}
dependencies{ dependencies{
classpath("io.objectbox:objectbox-gradle-plugin:4.0.3") classpath("io.objectbox:objectbox-gradle-plugin:4.0.3")
classpath ("com.applovin.quality:AppLovinQualityServiceGradlePlugin:+")
} }
} }

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") }
} }
} }