From 3c63df2c5d5e228996f35af0f10aa132cb158f60 Mon Sep 17 00:00:00 2001 From: ocean <503259349@qq.com> Date: Wed, 7 Jan 2026 18:44:31 +0800 Subject: [PATCH] update --- app/build.gradle.kts | 49 +++++++++++++++++- app/google-services.json | 29 +++++++++++ .../IronSourceLibrary_01_07_18_13-release.aar | Bin 0 -> 17321 bytes .../UpLoadLibrary_12_03_15_13-release.aar | Bin 0 -> 21581 bytes app/proguard-rules.pro | 11 ++++ app/src/main/AndroidManifest.xml | 5 +- .../main/java/com/app/brush/guitar/ink/App.kt | 41 ++++++++++----- .../brush/guitar/ink/eraser/BaseActivity.kt | 36 +++++++++++++ .../ink/eraser/CategoryListResonance.java | 22 +++++++- .../guitar/ink/eraser/CategoryPanorama.java | 7 +++ .../guitar/ink/eraser/LauncherSilhouette.kt | 25 ++++----- .../guitar/ink/eraser/SearchTrajectory.kt | 23 ++++++-- .../guitar/ink/eraser/SetKeyboardAmplify.kt | 7 +++ .../ink/eraser/SuccessPreviewBewilder.java | 20 ++++++- app/src/main/res/xml/net.xml | 6 +++ build.gradle.kts | 2 + settings.gradle.kts | 24 ++++++++- 17 files changed, 268 insertions(+), 39 deletions(-) create mode 100644 app/google-services.json create mode 100644 app/libs/IronSourceLibrary_01_07_18_13-release.aar create mode 100644 app/libs/UpLoadLibrary_12_03_15_13-release.aar create mode 100644 app/src/main/java/com/app/brush/guitar/ink/eraser/BaseActivity.kt create mode 100644 app/src/main/res/xml/net.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4fef996..1269a61 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -7,6 +7,8 @@ plugins { id("org.jetbrains.kotlin.android") kotlin("kapt") id ("kotlin-android") + id("com.google.gms.google-services") + id("com.google.firebase.crashlytics") } val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date()) @@ -17,8 +19,8 @@ android { applicationId = "com.app.brush.guitar.ink" minSdk = 24 targetSdk = 36 - versionCode = 1 - versionName = "1.0" + versionCode = 2 + versionName = "1.1" setProperty( "archivesBaseName", "RandomKeyboard_V" + versionName + "(${versionCode})_$timestamp" ) @@ -78,6 +80,49 @@ dependencies { implementation("com.google.android.material:material:1.8.0") + implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2") + implementation("com.google.android.gms:play-services-ads-identifier:18.0.1") + implementation("com.google.android.gms:play-services-location:21.0.1") + implementation("com.google.android.gms:play-services-appset:16.0.1") + // Import the Firebase BoM + implementation(platform("com.google.firebase:firebase-bom:34.6.0")) + implementation("com.google.firebase:firebase-crashlytics-ndk") + implementation("com.google.firebase:firebase-analytics") + // okhttp + implementation("com.squareup.okhttp3:okhttp:4.12.0") + implementation("com.squareup.okhttp3:logging-interceptor:4.12.0") + implementation(files("libs/IronSourceLibrary_01_07_18_13-release.aar")) + implementation(files("libs/UpLoadLibrary_12_03_15_13-release.aar")) + //---------------------------ironSource + implementation("com.unity3d.ads-mediation:mediation-sdk:9.2.0") +// Add BIGO Ads Network + implementation("com.unity3d.ads-mediation:bigo-adapter:5.2.0") + implementation("com.bigossp:bigo-ads:5.6.2") +// Add Chartboost Network + implementation("com.unity3d.ads-mediation:chartboost-adapter:5.2.0") +// implementation("com.chartboost:chartboost-sdk:9.10.2") + implementation("com.chartboost:chartboost-sdk:9.8.3") +// Add DT Exchange Network + implementation("com.unity3d.ads-mediation:fyber-adapter:5.2.0") + implementation("com.fyber:marketplace-sdk:8.4.1") +// Add InMobi Network + implementation("com.unity3d.ads-mediation:inmobi-adapter:5.3.0") + implementation("com.inmobi.monetization:inmobi-ads-kotlin:11.1.0") +// Add Liftoff Monetize Network + implementation("com.unity3d.ads-mediation:vungle-adapter:5.2.0") + implementation("com.vungle:vungle-ads:7.6.1") +// Add Mintegral Network + implementation("com.unity3d.ads-mediation:mintegral-adapter:5.3.0") + implementation("com.mbridge.msdk.oversea:mbridge_android_sdk:17.0.31") +// Add Moloco Network + implementation("com.unity3d.ads-mediation:moloco-adapter:5.5.0") + implementation("com.moloco.sdk:moloco-sdk:4.3.1") +// Add Pangle Network + implementation("com.unity3d.ads-mediation:pangle-adapter:5.4.0") + implementation("com.pangle.global:pag-sdk:7.8.0.7") +// Add Unity Ads Network + implementation("com.unity3d.ads-mediation:unityads-adapter:5.3.0") + implementation("com.unity3d.ads:unity-ads:4.16.4") } \ No newline at end of file diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..09952f9 --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "1083327770366", + "project_id": "randomkeyboard-399e1", + "storage_bucket": "randomkeyboard-399e1.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:1083327770366:android:f896bca0cf313f09bb3faf", + "android_client_info": { + "package_name": "com.app.brush.guitar.ink" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDMqgmBjgvtbtMb3x3hlt4skHm5ZgvJ6HI" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/libs/IronSourceLibrary_01_07_18_13-release.aar b/app/libs/IronSourceLibrary_01_07_18_13-release.aar new file mode 100644 index 0000000000000000000000000000000000000000..97be64bfce96b11e3b9b316bce0f77d273396dc5 GIT binary patch literal 17321 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 E0J@nwP5=M^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a3e30aacae042bf525f5eec498dbec4a8a476cf5 GIT binary patch literal 21581 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 BjSv6; literal 0 HcmV?d00001 diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 438dba4..e4de2a5 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -43,3 +43,14 @@ -keep class com.omicronapplications.** { *; } -keep class net.sf.sevenzipjbinding.** { *; } +-keepclassmembers class com.ironsource.sdk.controller.IronSourceWebView$JSInterface { + public *; +} +-keepclassmembers class * implements android.os.Parcelable { + public static final android.os.Parcelable$Creator *; +} +-keep public class com.google.android.gms.ads.** { + public *; +} +-keep class com.ironsource.adapters.** { *; +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b7cddbb..caaf9f6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,7 +3,8 @@ xmlns:tools="http://schemas.android.com/tools"> - + + }) + + ISAdManager.init("ocean", this, + "24d0ff7fd", + "693xdmd9cr0qkiv3", + "ijo9mg4t2m8a0as8", + "l4eic48lokbz4ub8", true, + onInitSuccess = { + }, onInitFail = { + + }) } + private fun dealFile() { val openFile = appInstance.assets.open("new_res.json") val jsonString = getJsonString(openFile) @@ -68,23 +84,22 @@ class App : Application() { } beanDetailsList.add( DichotomyDetails().apply { - setImgPath(imgPath) - setZipPath(zipPath) - setTitleName(title) - setImgGif(imgGif) - thumbUrl = thUrl - thumbGif = thGif - }) + setImgPath(imgPath) + setZipPath(zipPath) + setTitleName(title) + setImgGif(imgGif) + thumbUrl = thUrl + thumbGif = thGif + }) } } val shuffled = beanDetailsList.shuffled() - val dataBeanWrapper = EphemeralWrapper() - .apply { - parentName = pName - keyboardList = shuffled - } + val dataBeanWrapper = EphemeralWrapper().apply { + parentName = pName + keyboardList = shuffled + } dataList.add(dataBeanWrapper) } @@ -98,6 +113,7 @@ class App : Application() { list = mainList } + private fun getJsonString(fileInputStream: InputStream): String? { return try { // FileInputStream fileInputStream = new FileInputStream(path); @@ -116,5 +132,4 @@ class App : Application() { } - } \ No newline at end of file diff --git a/app/src/main/java/com/app/brush/guitar/ink/eraser/BaseActivity.kt b/app/src/main/java/com/app/brush/guitar/ink/eraser/BaseActivity.kt new file mode 100644 index 0000000..41ac3e5 --- /dev/null +++ b/app/src/main/java/com/app/brush/guitar/ink/eraser/BaseActivity.kt @@ -0,0 +1,36 @@ +package com.app.brush.guitar.ink.eraser + +import android.os.Bundle +import androidx.activity.OnBackPressedCallback +import androidx.appcompat.app.AppCompatActivity + +open class BaseActivity: AppCompatActivity() { + protected var backPressedCallback: OnBackPressedCallback? = null + /** 子类是否需要拦截返回 */ + protected open fun shouldInterceptBackPress(): Boolean = false + + /** 子类定义拦截后的操作(例如弹窗) */ + protected open fun onInterceptBackPressed() {} + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setupBackPressedCallback()//初始化back事件 + } + private fun setupBackPressedCallback() { + backPressedCallback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + if (shouldInterceptBackPress()) { + // 由子类处理拦截动作 + onInterceptBackPressed() + } else { + // 不拦截:关闭自己 + isEnabled = false + onBackPressedDispatcher.onBackPressed() + } + } + } + + onBackPressedDispatcher.addCallback(this, backPressedCallback!!) + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/app/brush/guitar/ink/eraser/CategoryListResonance.java b/app/src/main/java/com/app/brush/guitar/ink/eraser/CategoryListResonance.java index 9021ae2..ce8fddc 100644 --- a/app/src/main/java/com/app/brush/guitar/ink/eraser/CategoryListResonance.java +++ b/app/src/main/java/com/app/brush/guitar/ink/eraser/CategoryListResonance.java @@ -9,7 +9,11 @@ import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; import androidx.recyclerview.widget.GridLayoutManager; +import kotlin.Unit; +import kotlin.jvm.functions.Function0; +import com.ad.ironsourcelibrary.ActionListener; +import com.ad.ironsourcelibrary.ISAdManager; import com.app.brush.guitar.ink.App; import com.app.brush.guitar.ink.R; import com.app.brush.guitar.ink.drama.DichotomyDetails; @@ -20,7 +24,7 @@ import com.app.brush.guitar.ink.iguana.ListDecorationFossil; import java.util.List; -public class CategoryListResonance extends AppCompatActivity { +public class CategoryListResonance extends BaseActivity { private SmallActivityListCategoryBinding vb; public static final String KEY_NAME ="class_name"; private String name; @@ -31,6 +35,7 @@ public class CategoryListResonance extends AppCompatActivity { vb = SmallActivityListCategoryBinding.inflate(getLayoutInflater()); EdgeToEdge.enable(this); setContentView(vb.getRoot()); + ISAdManager.loadAllAd(); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); @@ -59,9 +64,22 @@ public class CategoryListResonance extends AppCompatActivity { vb.back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - finish(); + onInterceptBackPressed(); } }); } + @Override + protected boolean shouldInterceptBackPress() { + return true; + } + + @Override + protected void onInterceptBackPressed() { + ISAdManager.showIsAd(this, () -> {}); + if (getBackPressedCallback() != null) { + getBackPressedCallback().setEnabled(false); + } + getOnBackPressedDispatcher().onBackPressed(); + } } \ No newline at end of file diff --git a/app/src/main/java/com/app/brush/guitar/ink/eraser/CategoryPanorama.java b/app/src/main/java/com/app/brush/guitar/ink/eraser/CategoryPanorama.java index c398123..bc6b719 100644 --- a/app/src/main/java/com/app/brush/guitar/ink/eraser/CategoryPanorama.java +++ b/app/src/main/java/com/app/brush/guitar/ink/eraser/CategoryPanorama.java @@ -16,6 +16,7 @@ import androidx.fragment.app.Fragment; import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.widget.ViewPager2; +import com.ad.ironsourcelibrary.ISAdManager; import com.app.brush.guitar.ink.R; import com.app.brush.guitar.ink.databinding.FlatActivityCategoryMainBinding; import com.app.brush.guitar.ink.iguana.IsotopeTextView; @@ -48,6 +49,12 @@ public class CategoryPanorama extends AppCompatActivity { } + @Override + protected void onResume() { + super.onResume(); + ISAdManager.loadAllAd(); + } + private void init() { List listFragment = new ArrayList<>(); listFragment.add(QuixoticHome.newInstance()); diff --git a/app/src/main/java/com/app/brush/guitar/ink/eraser/LauncherSilhouette.kt b/app/src/main/java/com/app/brush/guitar/ink/eraser/LauncherSilhouette.kt index 26b27b1..cac0ab3 100644 --- a/app/src/main/java/com/app/brush/guitar/ink/eraser/LauncherSilhouette.kt +++ b/app/src/main/java/com/app/brush/guitar/ink/eraser/LauncherSilhouette.kt @@ -5,6 +5,7 @@ import android.content.Intent import android.os.Bundle import android.os.CountDownTimer import android.widget.ProgressBar +import com.ad.ironsourcelibrary.ISAdManager import com.app.brush.guitar.ink.R import com.app.brush.guitar.ink.iguana.UbiquitousSerene import kotlin.math.roundToInt @@ -16,7 +17,7 @@ import kotlin.math.roundToInt class LauncherSilhouette : Activity() { private lateinit var progressBar: ProgressBar - private var countTime = 1500L + private var countTime = 15000L private lateinit var timer: CountDownTimer override fun onCreate(savedInstanceState: Bundle?) { @@ -29,22 +30,16 @@ class LauncherSilhouette : Activity() { } private fun init() { - - timer = object : CountDownTimer(countTime, 100) { - override fun onTick(millisUntilFinished: Long) { - val percentage: Float = 100 - millisUntilFinished.toFloat() / countTime * 100 - val round = percentage.roundToInt() - progressBar.progress = round - } - - override fun onFinish() { - progressBar.progress = 100 - toHome() - } - + timer = ISAdManager.showWelcomeAd(this,countTime,{ millisUntilFinished-> + val percentage: Float = 100 - millisUntilFinished.toFloat() / countTime * 100 + val round = percentage.roundToInt() + progressBar.progress = round + }){ + progressBar.progress = 100 + toHome() } - timer.start() + timer.start() } private fun toHome() { diff --git a/app/src/main/java/com/app/brush/guitar/ink/eraser/SearchTrajectory.kt b/app/src/main/java/com/app/brush/guitar/ink/eraser/SearchTrajectory.kt index f984616..bd30895 100644 --- a/app/src/main/java/com/app/brush/guitar/ink/eraser/SearchTrajectory.kt +++ b/app/src/main/java/com/app/brush/guitar/ink/eraser/SearchTrajectory.kt @@ -9,17 +9,18 @@ import android.view.View import android.view.inputmethod.EditorInfo import android.view.inputmethod.InputMethodManager import androidx.activity.enableEdgeToEdge -import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import androidx.recyclerview.widget.GridLayoutManager +import com.ad.ironsourcelibrary.ActionListener +import com.ad.ironsourcelibrary.ISAdManager import com.app.brush.guitar.ink.App import com.app.brush.guitar.ink.databinding.CoolActivitySearchKeyboardBinding import com.app.brush.guitar.ink.drama.DichotomyDetails import com.app.brush.guitar.ink.gallery.HomeChildGalvanize import com.app.brush.guitar.ink.iguana.ListDecorationFossil -class SearchTrajectory : AppCompatActivity() { +class SearchTrajectory : BaseActivity() { private lateinit var vb: CoolActivitySearchKeyboardBinding private lateinit var adapter: HomeChildGalvanize @@ -54,7 +55,7 @@ class SearchTrajectory : AppCompatActivity() { private fun setupViews() { // 返回按钮 vb.ivBack.setOnClickListener { - finish() + onInterceptBackPressed() } // 搜索框 @@ -162,5 +163,21 @@ class SearchTrajectory : AppCompatActivity() { vb.recyclerSearch.visibility = View.VISIBLE } } + + override fun shouldInterceptBackPress(): Boolean { + return true + } + + override fun onInterceptBackPressed() { + ISAdManager.showIsAd(this,object : ActionListener{ + override fun onAction() { + + } + }) + if (backPressedCallback != null) { + backPressedCallback!!.isEnabled = false + } + onBackPressedDispatcher.onBackPressed() + } } diff --git a/app/src/main/java/com/app/brush/guitar/ink/eraser/SetKeyboardAmplify.kt b/app/src/main/java/com/app/brush/guitar/ink/eraser/SetKeyboardAmplify.kt index 152874a..ec8f10f 100644 --- a/app/src/main/java/com/app/brush/guitar/ink/eraser/SetKeyboardAmplify.kt +++ b/app/src/main/java/com/app/brush/guitar/ink/eraser/SetKeyboardAmplify.kt @@ -20,6 +20,8 @@ import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView +import com.ad.ironsourcelibrary.ActionListener +import com.ad.ironsourcelibrary.ISAdManager import com.app.brush.guitar.ink.App import com.app.brush.guitar.ink.R import com.app.brush.guitar.ink.drama.DichotomyDetails @@ -92,6 +94,7 @@ class SetKeyboardAmplify : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.fast_activity_keyboard_setting) + ISAdManager.loadAllAd() this.enableEdgeToEdge() ViewCompat.setOnApplyWindowInsetsListener( findViewById(R.id.main), @@ -100,7 +103,11 @@ class SetKeyboardAmplify : AppCompatActivity() { v!!.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets }) + ISAdManager.showIsAd(this,object : ActionListener{ + override fun onAction() { + } + }) findViewId() getExtraData() displayData() diff --git a/app/src/main/java/com/app/brush/guitar/ink/eraser/SuccessPreviewBewilder.java b/app/src/main/java/com/app/brush/guitar/ink/eraser/SuccessPreviewBewilder.java index e6542dc..5ab9e5c 100644 --- a/app/src/main/java/com/app/brush/guitar/ink/eraser/SuccessPreviewBewilder.java +++ b/app/src/main/java/com/app/brush/guitar/ink/eraser/SuccessPreviewBewilder.java @@ -18,6 +18,7 @@ import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; +import com.ad.ironsourcelibrary.ISAdManager; import com.app.brush.guitar.ink.R; import com.app.brush.guitar.ink.databinding.BigActivityPreviewSuccessBinding; import com.app.brush.guitar.ink.iguana.DiodeEclipse; @@ -32,7 +33,7 @@ import com.bumptech.glide.request.target.Target; import jp.wasabeef.glide.transformations.BlurTransformation; -public class SuccessPreviewBewilder extends AppCompatActivity { +public class SuccessPreviewBewilder extends BaseActivity { private BigActivityPreviewSuccessBinding vb; public static String key_name = "key_name"; private int mPreviousKeyboardHeight = -1; @@ -66,7 +67,7 @@ public class SuccessPreviewBewilder extends AppCompatActivity { vb.idBack.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - finish(); + onInterceptBackPressed(); } }); if (curPath == null) { @@ -128,4 +129,19 @@ public class SuccessPreviewBewilder extends AppCompatActivity { } }); } + + + @Override + protected boolean shouldInterceptBackPress() { + return true; + } + + @Override + protected void onInterceptBackPressed() { + ISAdManager.showIsAd(this, () -> {}); + if (getBackPressedCallback() != null) { + getBackPressedCallback().setEnabled(false); + } + getOnBackPressedDispatcher().onBackPressed(); + } } \ No newline at end of file diff --git a/app/src/main/res/xml/net.xml b/app/src/main/res/xml/net.xml new file mode 100644 index 0000000..4c12327 --- /dev/null +++ b/app/src/main/res/xml/net.xml @@ -0,0 +1,6 @@ + + + + mobile-server.lux-ad.com + + \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index d4e8229..3d3bc68 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,4 +3,6 @@ plugins { id("com.android.application") version "8.11.1" apply false id("org.jetbrains.kotlin.android") version "2.2.21" apply false kotlin("kapt") version "2.0.0" + id("com.google.gms.google-services") version "4.4.4" apply false + id("com.google.firebase.crashlytics") version "3.0.6" apply false } diff --git a/settings.gradle.kts b/settings.gradle.kts index 654ecad..f0a4577 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -11,8 +11,30 @@ dependencyResolutionManagement { repositories { google() mavenCentral() - maven("https://jitpack.io") + flatDir { + dirs("libs") + } + maven("https://jitpack.io") + //------------------------- IronSource + maven { + url = uri("https://android-sdk.is.com/") + } + maven { + url = uri("https://dl.bintray.com/ironsource-mobile/android-sdk") + } + maven { + url = uri("https://dl.bintray.com/ironsource-mobile/android-adapters") + } + 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") + } } }