diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index a39c157..f5a90fa 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -6,6 +6,12 @@ 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 = "2NDHUtVmS85hXJ7INJrCTTpkxihhidEyycMLDh_32gnvUv_LFG0f1HeKxFKhS1CGdF2xv1whGbHNiRFIraBfvn"
}
val timeStamp: String = SimpleDateFormat("MM_dd_HH_mm").format(Date())
android {
@@ -16,8 +22,8 @@ android {
applicationId = "com.apps.pixwall"
minSdk = 24
targetSdk = 35
- versionCode = 1
- versionName = "1.0"
+ versionCode = 2
+ versionName = "1.1"
setProperty(
"archivesBaseName",
"Pix Wall_V" + versionName + "(${versionCode})_$timeStamp"
@@ -70,4 +76,31 @@ dependencies {
implementation(libs.androidx.activity.ktx) // 可选,简化 ViewModel 获取
implementation(libs.glide)
implementation(libs.okhttp)
+
+
+ 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(files("libs/UpLoadLibrary_07_03_11_54-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")
+
+
+ //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:+")
}
\ No newline at end of file
diff --git a/app/google-services.json b/app/google-services.json
new file mode 100644
index 0000000..3bbe83b
--- /dev/null
+++ b/app/google-services.json
@@ -0,0 +1,29 @@
+{
+ "project_info": {
+ "project_number": "521704763807",
+ "project_id": "pix-wall-54894",
+ "storage_bucket": "pix-wall-54894.firebasestorage.app"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:521704763807:android:beb502847983e06c218daa",
+ "android_client_info": {
+ "package_name": "com.apps.pixwall"
+ }
+ },
+ "oauth_client": [],
+ "api_key": [
+ {
+ "current_key": "AIzaSyC0oAeIv5WYLGjQeeTnit5Qaq_-XQf67t8"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": []
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/app/libs/MaxLibrary_08_08_15_08-release.aar b/app/libs/MaxLibrary_08_08_15_08-release.aar
new file mode 100644
index 0000000..c2ce202
Binary files /dev/null and b/app/libs/MaxLibrary_08_08_15_08-release.aar differ
diff --git a/app/libs/UpLoadLibrary_07_03_11_54-release.aar b/app/libs/UpLoadLibrary_07_03_11_54-release.aar
new file mode 100644
index 0000000..5a50672
Binary files /dev/null and b/app/libs/UpLoadLibrary_07_03_11_54-release.aar differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b07c085..29f6561 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,9 +4,14 @@
-
+
+
+
+
+
+ var progressPercentage = ((100 * aLong) / time)
+ val i = (100 - progressPercentage).toInt()
+ binding.progressbar.progress = i
+ null
+ }, {
+ goMain()
+ null
+ })
+ }
+
+ private fun goMain(){
+ binding.progressbar.progress = 100
+ val intent= Intent(
+ this@LoadActivity,
+ MainActivity::class.java
+ )
+ startActivity(intent)
+ finish()
}
override fun onDestroy() {
super.onDestroy()
- handler.removeCallbacksAndMessages(null)
+
if (countDownTimer != null) {
countDownTimer!!.cancel()
diff --git a/app/src/main/java/com/apps/pixwall/view/MorePaperActivity.kt b/app/src/main/java/com/apps/pixwall/view/MorePaperActivity.kt
index 752c549..0a0e977 100644
--- a/app/src/main/java/com/apps/pixwall/view/MorePaperActivity.kt
+++ b/app/src/main/java/com/apps/pixwall/view/MorePaperActivity.kt
@@ -8,6 +8,7 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
+import com.ad.maxlibrary.MaxManager
import com.apps.pixwall.adapter.DoubleLineAdapter
import com.apps.pixwall.data.MainViewModel
@@ -28,6 +29,10 @@ class MorePaperActivity : AppCompatActivity(),MainInListener {
binding=ActivityMorePaperBinding.inflate(layoutInflater)
init()
setContentView(binding.root)
+ MaxManager.onLoadAd()
+ MaxManager.startShowMaxAd(this@MorePaperActivity){
+
+ }
}
private fun init(){
diff --git a/app/src/main/java/com/apps/pixwall/view/PaperActivity.kt b/app/src/main/java/com/apps/pixwall/view/PaperActivity.kt
index 35dd894..f8f260a 100644
--- a/app/src/main/java/com/apps/pixwall/view/PaperActivity.kt
+++ b/app/src/main/java/com/apps/pixwall/view/PaperActivity.kt
@@ -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.apps.pixwall.R
import com.apps.pixwall.data.MainViewModel
import com.apps.pixwall.data.Paper
@@ -16,6 +17,7 @@ import com.apps.pixwall.databinding.ActivityPaperBinding
import com.apps.pixwall.listener.ShowDialogListener
import com.apps.pixwall.util.ConnectUtil
import com.apps.pixwall.util.ConvertUtil
+import com.apps.pixwall.view.SearchActivity
import com.bumptech.glide.Glide
import com.bumptech.glide.load.DecodeFormat
import com.bumptech.glide.request.RequestOptions
@@ -45,6 +47,7 @@ class PaperActivity : AppCompatActivity(), ShowDialogListener {
) { permissions ->
if (permissions.all { it.value }) {
isGranted = true
+ startSave()
} else {
Toast.makeText(this, getString(R.string.no_permit), Toast.LENGTH_SHORT).show()
}
@@ -54,6 +57,7 @@ class PaperActivity : AppCompatActivity(), ShowDialogListener {
val permissions = ConvertUtil.getStoragePermissions()
if (ConvertUtil.hasStoragePermission(this)) {
isGranted = true
+ startSave()
} else {
storagePermissionLauncher.launch(permissions)
}
@@ -64,7 +68,12 @@ class PaperActivity : AppCompatActivity(), ShowDialogListener {
super.onCreate(savedInstanceState)
binding = ActivityPaperBinding.inflate(layoutInflater)
setContentView(binding.root)
+ MaxManager.onLoadAd()
init()
+
+ MaxManager.startShowMaxAd (this@PaperActivity){
+
+ }
}
override fun onDestroy() {
super.onDestroy()
@@ -114,10 +123,17 @@ class PaperActivity : AppCompatActivity(), ShowDialogListener {
}
binding.layoutDownload.setOnClickListener {
- startDownload()
+
+ requestStoragePermission()
+
+
}
binding.layoutSet.setOnClickListener {
- showSetDialog()
+
+ MaxManager.startShowMaxAd (this@PaperActivity){
+ showSetDialog()
+ }
+
}
}
@@ -135,15 +151,17 @@ class PaperActivity : AppCompatActivity(), ShowDialogListener {
viewModel.setLike(paper)
}
- private fun startDownload() {
- requestStoragePermission()
- if (!isGranted) return
- showDownloadLoading(true)
- if (downloadFile.exists()) {
- saveToGallery()
- return
+
+ private fun startSave(){
+ MaxManager.startShowMaxAd (this@PaperActivity){
+ showDownloadLoading(true)
+ if (downloadFile.exists()) {
+ saveToGallery()
+ }else{
+ doDownload()
+ }
+
}
- doDownload()
}
private fun saveToGallery() {
diff --git a/app/src/main/java/com/apps/pixwall/view/SearchActivity.kt b/app/src/main/java/com/apps/pixwall/view/SearchActivity.kt
index 1d9f33e..3aa0550 100644
--- a/app/src/main/java/com/apps/pixwall/view/SearchActivity.kt
+++ b/app/src/main/java/com/apps/pixwall/view/SearchActivity.kt
@@ -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.apps.pixwall.R
import com.apps.pixwall.adapter.DoubleLineAdapter
import com.apps.pixwall.data.MainViewModel
@@ -30,7 +31,11 @@ class SearchActivity : AppCompatActivity(), MainInListener {
super.onCreate(savedInstanceState)
binding = ActivitySearchBinding.inflate(layoutInflater)
setContentView(binding.root)
+ MaxManager.onLoadAd()
init()
+ MaxManager.startShowMaxAd (this@SearchActivity){
+
+ }
}
private fun init() {
diff --git a/app/src/main/res/layout/activity_load.xml b/app/src/main/res/layout/activity_load.xml
index 7ee8335..6638d30 100644
--- a/app/src/main/res/layout/activity_load.xml
+++ b/app/src/main/res/layout/activity_load.xml
@@ -36,7 +36,7 @@
android:layout_marginHorizontal="20dp"
android:max="100"
android:layout_marginTop="20dp"
- android:progress="80"
+ android:progress="1"
android:indeterminateTint="@color/min_blue"
android:progressDrawable="@drawable/load_pb" />
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 922f551..b62baca 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -2,4 +2,16 @@
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:+")
+ }
}
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 4387edc..20b22f5 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -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=-Xmx4096m -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
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 37fa1c7..03d8252 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -16,6 +16,10 @@ 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") }
}
}