From b78e29fa15353bb00efdf9b21385b511f605ab20 Mon Sep 17 00:00:00 2001 From: litingting Date: Tue, 2 Sep 2025 14:33:54 +0800 Subject: [PATCH] V1.1(2) --- app/build.gradle.kts | 37 +++++++++++++- app/google-services.json | 29 +++++++++++ app/libs/MaxLibrary_08_08_15_08-release.aar | Bin 0 -> 13602 bytes .../UpLoadLibrary_07_03_11_54-release.aar | Bin 0 -> 19887 bytes app/src/main/AndroidManifest.xml | 12 +++-- .../java/com/apps/pixwall/IApplication.kt | 12 +++++ .../com/apps/pixwall/view/LoadActivity.kt | 45 ++++++++++-------- .../apps/pixwall/view/MorePaperActivity.kt | 5 ++ .../com/apps/pixwall/view/PaperActivity.kt | 38 +++++++++++---- .../com/apps/pixwall/view/SearchActivity.kt | 5 ++ app/src/main/res/layout/activity_load.xml | 2 +- app/src/main/res/xml/net.xml | 6 +++ build.gradle.kts | 12 +++++ gradle.properties | 2 +- settings.gradle.kts | 4 ++ 15 files changed, 171 insertions(+), 38 deletions(-) create mode 100644 app/google-services.json create mode 100644 app/libs/MaxLibrary_08_08_15_08-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 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 0000000000000000000000000000000000000000..c2ce2022fa421521647c5528ec813f793aee26a0 GIT binary patch literal 13602 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 z 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 - + + + + + + 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") } } }