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