diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3c3aa55..eae3409 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -6,6 +6,8 @@ plugins { alias(libs.plugins.kotlin.android) id("kotlin-kapt") id("kotlin-parcelize") + id("com.google.gms.google-services") + id("com.google.firebase.crashlytics") } android { @@ -18,8 +20,8 @@ android { applicationId = "com.design.mischiefgo" minSdk = 26 targetSdk = 36 - versionCode = 1 - versionName = "1.0" + versionCode = 2 + versionName = "2.0" setProperty( "archivesBaseName", "Mischief_Go_V" + versionName + "_${versionCode}$timeStamp" @@ -68,4 +70,92 @@ dependencies { implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.6.2") implementation("androidx.activity:activity-ktx:1.10.1") implementation("com.google.android.flexbox:flexbox:3.0.0") + + + implementation(files("libs/TradPlusLibrary_11_25_15_02-release.aar")) + implementation(files("libs/UpLoadLibrary_12_03_15_13-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") + + // TradPlus + implementation("com.tradplusad:tradplus:14.5.0.1") + //noinspection GradleCompatible + implementation("androidx.legacy:legacy-support-v4:1.0.0") + implementation("androidx.appcompat:appcompat:1.3.0-alpha02") + // Meta + implementation("com.facebook.android:audience-network-sdk:6.20.0") + implementation("com.tradplusad:tradplus-facebook:1.14.5.0.1") + // Applovin + implementation("com.applovin:applovin-sdk:13.3.1") + implementation("com.tradplusad:tradplus-applovin:9.14.5.0.1") + implementation("com.google.android.gms:play-services-ads-identifier:18.2.0") + // Ironsource + implementation("com.ironsource.sdk:mediationsdk:8.10.0") + implementation("com.tradplusad:tradplus-ironsource:10.14.5.0.1") + implementation("com.google.android.gms:play-services-appset:16.0.0") + implementation("com.google.android.gms:play-services-ads-identifier:17.0.0") + implementation("com.google.android.gms:play-services-basement:17.5.0") + // Adcolony + implementation("com.adcolony:sdk:4.8.0") + implementation("com.tradplusad:tradplus-adcolony:4.14.5.0.1") + implementation("com.google.android.gms:play-services-ads-identifier:17.0.0") + // Pangle + implementation("com.tradplusad:tradplus-pangle:19.14.5.0.1") + implementation("com.pangle.global:pag-sdk:7.3.0.3") + // UnityAds + implementation("com.tradplusad:tradplus-unity:5.14.5.0.1") + implementation("com.unity3d.ads:unity-ads:4.15.1") + // Chartboost + implementation("com.tradplusad:tradplus-chartboostx:15.14.5.0.1") + implementation("com.chartboost:chartboost-sdk:9.8.3") + implementation("com.google.android.gms:play-services-ads-identifier:17.0.0") + implementation("com.google.android.gms:play-services-base:17.4.0") + // Inmobi + implementation("com.tradplusad:tradplus-inmobix:23.14.5.0.1") + implementation("com.inmobi.monetization:inmobi-ads-kotlin:10.8.3") + implementation("androidx.core:core-ktx:1.5.0") + implementation("com.inmobi.omsdk:inmobi-omsdk:1.5.2.0") + // Fyber + implementation("com.fyber:marketplace-sdk:8.3.7") + implementation("com.tradplusad:tradplus-fyber:24.14.5.0.1") + implementation("com.google.android.gms:play-services-ads-identifier:17.0.0") + implementation("com.google.android.gms:play-services-base:17.4.0") + // Start.io + implementation("com.startapp:inapp-sdk:5.2.3") + implementation("com.tradplusad:tradplus-startapp:28.14.5.0.1") + // Mintegral + implementation("com.tradplusad:tradplus-mintegralx_overseas:18.14.5.0.1") + implementation("androidx.recyclerview:recyclerview:1.1.0") + implementation("com.mbridge.msdk.oversea:mbridge_android_sdk:16.9.71") + // Liftoff + implementation("com.tradplusad:tradplus-vunglex:7.14.5.0.1") + implementation("com.vungle:vungle-ads:7.5.0") + // Yandex + implementation("com.yandex.android:mobileads:7.13.0") { + exclude(group = "com.caverock", module = "androidsvg-aar") + } + implementation("com.tradplusad:tradplus-yandex:50.14.6.10.1") + // Bigo + implementation("com.bigossp:bigo-ads:5.4.0") + implementation("com.tradplusad:tradplus-bigo:57.14.5.0.1") + // Cross Promotion + implementation("com.tradplusad:tradplus-crosspromotion:27.14.5.0.1") + // TP Exchange + // 请注意保持与主包版本同步更新 + implementation("com.google.code.gson:gson:2.8.6") + implementation("com.tradplusad:tp_exchange:40.14.5.0.1") + + // Google UMP + implementation ("com.google.android.ump:user-messaging-platform:3.2.0") + + // TradPlus Tools + // implementation 'com.tradplusad:tradplus-tool:1.1.4' + + //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") } \ No newline at end of file diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..f53db73 --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "817124504854", + "project_id": "mischiefgo", + "storage_bucket": "mischiefgo.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:817124504854:android:a00b4ebfe9a372c0270c37", + "android_client_info": { + "package_name": "com.design.mischiefgo" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyAbRiYbKs7g-TOxgQYZENO7LszpbRMmBpw" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/libs/TradPlusLibrary_11_25_15_02-release.aar b/app/libs/TradPlusLibrary_11_25_15_02-release.aar new file mode 100644 index 0000000..803bb1c Binary files /dev/null and b/app/libs/TradPlusLibrary_11_25_15_02-release.aar differ diff --git a/app/libs/UpLoadLibrary_12_03_15_13-release.aar b/app/libs/UpLoadLibrary_12_03_15_13-release.aar new file mode 100644 index 0000000..a3e30aa Binary files /dev/null and b/app/libs/UpLoadLibrary_12_03_15_13-release.aar differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 51019f4..b8d2393 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -19,6 +19,8 @@ android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" + android:networkSecurityConfig="@xml/net" + tools:replace="android:networkSecurityConfig" android:supportsRtl="true" android:theme="@style/Theme.MischiefGo"> ? = null + const val TAG = "MischiefGo" } override fun onCreate() { super.onCreate() + UpLoadManager.init(this, TAG) { _, _ -> + // 处理逻辑 + Log.d(TAG, "upload success") + } app = this CoroutineScope(Dispatchers.IO).launch { initializeDatabase() diff --git a/app/src/main/java/com/design/mischiefgo/ui/AdShowActivity.kt b/app/src/main/java/com/design/mischiefgo/ui/AdShowActivity.kt index b2ff6cd..e7f1246 100644 --- a/app/src/main/java/com/design/mischiefgo/ui/AdShowActivity.kt +++ b/app/src/main/java/com/design/mischiefgo/ui/AdShowActivity.kt @@ -5,6 +5,8 @@ import android.os.Bundle import android.os.CountDownTimer import android.os.Handler import androidx.appcompat.app.AppCompatActivity +import com.ad.tradpluslibrary.TPAdManager +import com.design.mischiefgo.NewApp import com.design.mischiefgo.databinding.ActivityAdShowBinding import com.design.mischiefgo.ut.EvenTopUtils @@ -12,6 +14,7 @@ class AdShowActivity : AppCompatActivity() { private lateinit var binding : ActivityAdShowBinding private var handler: Handler = Handler() private var countDownTimer: CountDownTimer? = null + private var time=14000L override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -19,24 +22,35 @@ class AdShowActivity : AppCompatActivity() { EvenTopUtils.setLightStatusBar(this.window, true) binding = ActivityAdShowBinding.inflate(layoutInflater) setContentView(binding.root) - handler.postDelayed({ - val intent= Intent( - this@AdShowActivity, - NavigationActivity::class.java - ) - startActivity(intent) - finish() - }, 4000) - countDownTimer = object : CountDownTimer(4000, 100) { - override fun onTick(millisUntilFinished: Long) { - val progress = ((4000 - millisUntilFinished) / 4000f * 100).toInt() - binding.loadingPb.progress = progress - } - - override fun onFinish() { + TPAdManager.init( + this@AdShowActivity, + NewApp.TAG, + "17EDDAE88015DE3BF7D6D4E436B18111", + "F9C9551815F75E1944178419F1517C12", + "61BF5E6CA907277EBA5EFC3AFC429012", + "85C9DD1C2A714986A3627007150E9312" + ) { + null + } + countDownTimer = TPAdManager.showWelcomeAd( + this@AdShowActivity, + time, + { aLong -> + val progressPercentage = (100 * aLong) / time + val percentage = 100 - progressPercentage + binding.loadingPb.progress = percentage.toInt() + }, + { binding.loadingPb.progress = 100 + val intent= Intent( + this@AdShowActivity, + NavigationActivity::class.java + ) + startActivity(intent) + finish() } - }.start() + ) + countDownTimer?.start() } override fun onDestroy() { diff --git a/app/src/main/java/com/design/mischiefgo/ui/ListenSoundActivity.kt b/app/src/main/java/com/design/mischiefgo/ui/ListenSoundActivity.kt index b0aa962..089a80f 100644 --- a/app/src/main/java/com/design/mischiefgo/ui/ListenSoundActivity.kt +++ b/app/src/main/java/com/design/mischiefgo/ui/ListenSoundActivity.kt @@ -5,6 +5,7 @@ import android.os.Bundle import android.os.Handler import android.os.SystemClock import androidx.appcompat.app.AppCompatActivity +import com.ad.tradpluslibrary.TPAdManager.showTPAD import com.design.mischiefgo.R import com.design.mischiefgo.databinding.ActivityListenSoundBinding import com.design.mischiefgo.ut.StartPlayUtil @@ -28,12 +29,12 @@ class ListenSoundActivity : AppCompatActivity() { setContentView(binding!!.root) record = StartPlayUtil(this) binding!!.audioTime.setText(R.string.time_init) - + showTPAD(this){} initClick() } private fun initClick() { - binding!!.back.setOnClickListener { finish() } + binding!!.back.setOnClickListener { showTPAD(this){finish()} } binding!!.imMic.setOnClickListener { binding!!.imMic.isSelected = !binding!!.imMic.isSelected binding!!.audioTint.text=getString(R.string.click_to_finish) diff --git a/app/src/main/java/com/design/mischiefgo/ui/SaveToLocalActivity.kt b/app/src/main/java/com/design/mischiefgo/ui/SaveToLocalActivity.kt index 5b3e155..81384f6 100644 --- a/app/src/main/java/com/design/mischiefgo/ui/SaveToLocalActivity.kt +++ b/app/src/main/java/com/design/mischiefgo/ui/SaveToLocalActivity.kt @@ -20,6 +20,7 @@ import java.io.File import java.io.FileOutputStream import java.io.IOException import androidx.core.net.toUri +import com.ad.tradpluslibrary.TPAdManager.showTPAD import com.design.mischiefgo.databinding.ActivitySaveToLocalBinding import com.design.mischiefgo.ut.EvenTopUtils @@ -135,40 +136,43 @@ class SaveToLocalActivity : AppCompatActivity() { } binding.save.setOnClickListener { - val name = binding.saveEdit.text.toString().trim() - viewModel.checkSaveStatus(name, callback = { isSave -> - runOnUiThread { - // 1. 先检查Activity是否即将销毁,避免在已销毁的Activity上操作 - if (isFinishing || isDestroyed) { - return@runOnUiThread - } - if (TextUtils.isEmpty(name)) { - Toast.makeText( - this@SaveToLocalActivity, - getString(R.string.save_tip), // 空名称提示 - Toast.LENGTH_SHORT - ).show() - return@runOnUiThread - } + showTPAD(this){ + val name = binding.saveEdit.text.toString().trim() + viewModel.checkSaveStatus(name, callback = { isSave -> + runOnUiThread { + // 1. 先检查Activity是否即将销毁,避免在已销毁的Activity上操作 + if (isFinishing || isDestroyed) { + return@runOnUiThread + } + if (TextUtils.isEmpty(name)) { + Toast.makeText( + this@SaveToLocalActivity, + getString(R.string.save_tip), // 空名称提示 + Toast.LENGTH_SHORT + ).show() + return@runOnUiThread + } - if (isSave) { - binding.saveEdit.setText("") - Toast.makeText( - this@SaveToLocalActivity, // 使用显式的 this@ActivityName - getString(R.string.name_hint), // 名称已存在提示 - Toast.LENGTH_SHORT - ).show() - } else { - saveData(name) - Toast.makeText( - this@SaveToLocalActivity, - getString(R.string.save_tips), // 保存成功提示 - Toast.LENGTH_SHORT - ).show() - finish() + if (isSave) { + binding.saveEdit.setText("") + Toast.makeText( + this@SaveToLocalActivity, // 使用显式的 this@ActivityName + getString(R.string.name_hint), // 名称已存在提示 + Toast.LENGTH_SHORT + ).show() + } else { + saveData(name) + Toast.makeText( + this@SaveToLocalActivity, + getString(R.string.save_tips), // 保存成功提示 + Toast.LENGTH_SHORT + ).show() + finish() + } } - } - }) + }) + } + } } diff --git a/app/src/main/java/com/design/mischiefgo/ui/TypeInActivity.kt b/app/src/main/java/com/design/mischiefgo/ui/TypeInActivity.kt index 348359d..41f2c6a 100644 --- a/app/src/main/java/com/design/mischiefgo/ui/TypeInActivity.kt +++ b/app/src/main/java/com/design/mischiefgo/ui/TypeInActivity.kt @@ -3,6 +3,7 @@ package com.design.mischiefgo.ui import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.GridLayoutManager +import com.ad.tradpluslibrary.TPAdManager.showTPAD import com.design.mischiefgo.ut.RandomAdapter import com.design.mischiefgo.entity.Usual import com.bumptech.glide.Glide @@ -29,6 +30,7 @@ class TypeInActivity : AppCompatActivity() { } private fun initView() { + showTPAD(this) { null } Glide.with(this) .load(data.convert) .apply(RequestOptions.circleCropTransform()) @@ -38,6 +40,6 @@ class TypeInActivity : AppCompatActivity() { binding.recyclerView.adapter = adapter binding.recyclerView.layoutManager = GridLayoutManager(this, 3) adapter.setList(data.infolist) - binding.back.setOnClickListener { finish() } + binding.back.setOnClickListener {showTPAD(this) { finish() } } } } \ No newline at end of file diff --git a/app/src/main/java/com/design/mischiefgo/ui/UseSoundActivity.kt b/app/src/main/java/com/design/mischiefgo/ui/UseSoundActivity.kt index d35343e..f40b951 100644 --- a/app/src/main/java/com/design/mischiefgo/ui/UseSoundActivity.kt +++ b/app/src/main/java/com/design/mischiefgo/ui/UseSoundActivity.kt @@ -15,6 +15,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.view.isVisible import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager +import com.ad.tradpluslibrary.TPAdManager.showTPAD import com.design.mischiefgo.ut.CommonUtil import com.design.mischiefgo.R import com.design.mischiefgo.ut.RandomAdapter @@ -52,6 +53,7 @@ class UseSoundActivity : AppCompatActivity(), OnMoreClickListener, setContentView(binding.root) viewModel = ViewModelProvider(this)[MainViewModel::class.java] popView = ChooseTimeFragment(this, this) + showTPAD(this){} initView() initAudio() initClick() @@ -95,18 +97,21 @@ class UseSoundActivity : AppCompatActivity(), OnMoreClickListener, } //弹出倒计时 binding.imTimer.setOnClickListener { - popView.showTop(binding.imTimer) + showTPAD(this){ + popView.showTop(binding.imTimer) + } } //like binding.imLike.setOnClickListener { - val isSelected = binding.imLike.isSelected - if(isSelected){ - viewModel.updateLikeStatus(data.name,false) - }else{ - viewModel.updateLikeStatus(data.name,true) + showTPAD(this){ + val isSelected = binding.imLike.isSelected + if(isSelected){ + viewModel.updateLikeStatus(data.name,false) + }else{ + viewModel.updateLikeStatus(data.name,true) + } + binding.imLike.isSelected = !isSelected } - binding.imLike.isSelected = !isSelected - } } 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/settings.gradle.kts b/settings.gradle.kts index 02d825b..efd65b9 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -16,6 +16,26 @@ dependencyResolutionManagement { repositories { google() mavenCentral() + //------------------------- TradPlus + // Ironsource + maven { url = uri("https://android-sdk.is.com/") } + // Pangle + maven { + url = uri("https://artifact.bytedance.com/repository/pangle") + } + // Chartboost + maven { url = uri("https://cboost.jfrog.io/artifactory/chartboost-ads/") } + maven { + name = "Chartboost Mediation’s maven repo" + url = uri("https://cboost.jfrog.io/artifactory/chartboost-mediation") + } + // Mintegral + //Launch GP market application, Android X Version + //If you fail to pull the code using gradle, add the maven warehouse configuration to the project root build.gradle file + maven { + url = + uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") + } } }