diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 4cb985a..48b903e 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.personalised.board"
minSdk = 24
targetSdk = 36
- versionCode = 1
- versionName = "1.0"
+ versionCode = 2
+ versionName = "1.1"
setProperty(
"archivesBaseName",
"PersonalisedKeyboard_V" + versionName + "(${versionCode})_$timestamp"
@@ -79,6 +81,93 @@ 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/UpLoadLibrary_12_03_15_13-release.aar"))
+
+ implementation(files("libs/TradPlusLibrary_01_04_12_20-release.aar"))
+ // TradPlus
+ implementation("com.tradplusad:tradplus:15.2.0.1")
+ implementation("androidx.legacy:legacy-support-v4:1.0.0")
+ implementation("androidx.appcompat:appcompat:1.3.0-alpha02")
+
+ // IronSource
+ implementation("com.ironsource.sdk:mediationsdk:9.0.0")
+ implementation("com.tradplusad:tradplus-ironsource:10.15.2.0.1")
+
+ // Pangle
+ implementation("com.tradplusad:tradplus-pangle:19.15.2.0.1")
+ implementation("com.pangle.global:pag-sdk:7.8.0.7")
+
+ // UnityAds
+ implementation("com.tradplusad:tradplus-unity:5.15.2.0.1")
+ implementation("com.unity3d.ads:unity-ads:4.16.3")
+
+ // Chartboost
+// implementation("com.tradplusad:tradplus-chartboostx:15.15.2.0.1")
+// implementation("com.chartboost:chartboost-sdk:9.10.0")
+// implementation("com.google.android.gms:play-services-ads-identifier:17.0.0")
+// implementation("com.google.android.gms:play-services-base:17.4.0")
+
+
+ //上面新版本下载失败用旧版本
+ 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.15.2.0.1")
+ implementation("com.inmobi.monetization:inmobi-ads-kotlin:11.0.0")
+ implementation("com.squareup.okhttp3:okhttp:3.14.9")
+ implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4")
+ implementation("androidx.core:core-ktx:1.5.0")
+ implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.0")
+
+ implementation("com.google.android.gms:play-services-ads-identifier:18.0.1")
+ implementation("com.google.android.gms:play-services-location:21.0.1") // optional
+ implementation("androidx.browser:browser:1.8.0")
+ implementation("com.squareup.picasso:picasso:2.8")
+ implementation("androidx.viewpager:viewpager:1.0.0")
+ implementation("androidx.recyclerview:recyclerview:1.2.1")
+
+ // Fyber
+ implementation("com.fyber:marketplace-sdk:8.4.0")
+ implementation("com.tradplusad:tradplus-fyber:24.15.2.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")
+
+ // Mintegral
+ implementation("com.tradplusad:tradplus-mintegralx_overseas:18.15.2.0.1")
+ implementation("androidx.recyclerview:recyclerview:1.1.0")
+ implementation("com.mbridge.msdk.oversea:mbridge_android_sdk:16.10.11")
+
+ // Liftoff (Vungle)
+ implementation("com.tradplusad:tradplus-vunglex:7.15.2.0.1")
+ implementation("com.vungle:vungle-ads:7.6.0")
+
+ // Bigo
+ implementation("com.bigossp:bigo-ads:5.5.2")
+ implementation("com.tradplusad:tradplus-bigo:57.15.2.0.1")
+
+ // Cross Promotion
+ implementation("com.tradplusad:tradplus-crosspromotion:27.15.2.0.1")
+
+ // TP Exchange(注意与主包版本同步)
+ implementation("com.google.code.gson:gson:2.8.6")
+ implementation("com.tradplusad:tp_exchange:40.15.2.0.1")
+
+ // Google UMP
+ implementation ("com.google.android.ump:user-messaging-platform:3.2.0")
}
\ No newline at end of file
diff --git a/app/google-services.json b/app/google-services.json
new file mode 100644
index 0000000..636e466
--- /dev/null
+++ b/app/google-services.json
@@ -0,0 +1,29 @@
+{
+ "project_info": {
+ "project_number": "707506673294",
+ "project_id": "personalisedkeyboard",
+ "storage_bucket": "personalisedkeyboard.firebasestorage.app"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:707506673294:android:8de1c21abf0344b5595bdf",
+ "android_client_info": {
+ "package_name": "com.app.personalised.board"
+ }
+ },
+ "oauth_client": [],
+ "api_key": [
+ {
+ "current_key": "AIzaSyBXboMtte05rWeoVVvUHmJRoZYTIE4ooQ0"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": []
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/app/libs/TradPlusLibrary_01_04_12_20-release.aar b/app/libs/TradPlusLibrary_01_04_12_20-release.aar
new file mode 100644
index 0000000..de049ac
Binary files /dev/null and b/app/libs/TradPlusLibrary_01_04_12_20-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/proguard-rules.pro b/app/proguard-rules.pro
index 438dba4..d5f1632 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -43,3 +43,5 @@
-keep class com.omicronapplications.** { *; }
-keep class net.sf.sevenzipjbinding.** { *; }
+-keep public class com.tradplus.** { *; }
+-keep class com.tradplus.ads.** { *; }
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9d61521..474a3e3 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,13 +3,18 @@
xmlns:tools="http://schemas.android.com/tools">
-
+
+
+
+
diff --git a/app/src/main/java/com/app/input/personalised/board/BoartApp.kt b/app/src/main/java/com/app/input/personalised/board/BoartApp.kt
index de30de5..8daf7a6 100644
--- a/app/src/main/java/com/app/input/personalised/board/BoartApp.kt
+++ b/app/src/main/java/com/app/input/personalised/board/BoartApp.kt
@@ -4,6 +4,7 @@ import android.app.Application
import android.graphics.Typeface
import com.app.input.personalised.board.databean.KeyboardTheme
import com.app.input.personalised.board.databean.ThemeCategory
+import com.up.uploadlibrary.UpLoadManager
//import com.pretty.keyboard.theme.keyboard.helper.ObjectBox
import org.json.JSONArray
import java.io.BufferedReader
@@ -29,6 +30,8 @@ class BoartApp : Application() {
boartAppInstance = this
defaultFont = Typeface.createFromAsset(assets, "my_font.ttf")
dealFile()
+
+ UpLoadManager.init(this,"ocean",{s,ss->})
}
private fun dealFile() {
val openFile = boartAppInstance.assets.open("new_res.json")
diff --git a/app/src/main/java/com/app/input/personalised/board/boartactivity/BaseActivity.kt b/app/src/main/java/com/app/input/personalised/board/boartactivity/BaseActivity.kt
new file mode 100644
index 0000000..708baab
--- /dev/null
+++ b/app/src/main/java/com/app/input/personalised/board/boartactivity/BaseActivity.kt
@@ -0,0 +1,36 @@
+package com.app.input.personalised.board.boartactivity
+
+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/input/personalised/board/boartactivity/FavoriteThemeActivity.java b/app/src/main/java/com/app/input/personalised/board/boartactivity/FavoriteThemeActivity.java
index ae8d845..d1c6274 100644
--- a/app/src/main/java/com/app/input/personalised/board/boartactivity/FavoriteThemeActivity.java
+++ b/app/src/main/java/com/app/input/personalised/board/boartactivity/FavoriteThemeActivity.java
@@ -9,7 +9,10 @@ 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.tradpluslibrary.TPAdManager;
import com.app.input.personalised.board.R;
import com.app.input.personalised.board.databean.KeyboardTheme;
import com.app.input.personalised.board.itemback.FavoriteRemovedListener;
@@ -21,7 +24,7 @@ import com.app.input.personalised.board.helpers.GridItemDecoration;
import java.util.List;
-public class FavoriteThemeActivity extends AppCompatActivity implements FavoriteRemovedListener {
+public class FavoriteThemeActivity extends BaseActivity implements FavoriteRemovedListener {
private ActivityFavoriteThemeBinding vb;
@Override
@@ -94,9 +97,29 @@ public class FavoriteThemeActivity extends AppCompatActivity implements Favorite
vb.back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- finish();
+ onInterceptBackPressed();
}
});
}
+
+ @Override
+ protected boolean shouldInterceptBackPress() {
+ return true;
+ }
+
+ @Override
+ protected void onInterceptBackPressed() {
+
+ TPAdManager.INSTANCE.showTPAD(this, new Function0() {
+ @Override
+ public Unit invoke() {
+ return null;
+ }
+ });
+ if (getBackPressedCallback() != null) {
+ getBackPressedCallback().setEnabled(false);
+ }
+ getOnBackPressedDispatcher().onBackPressed();
+ }
}
diff --git a/app/src/main/java/com/app/input/personalised/board/boartactivity/MainTabActivity.java b/app/src/main/java/com/app/input/personalised/board/boartactivity/MainTabActivity.java
index cc06e55..23ecc09 100644
--- a/app/src/main/java/com/app/input/personalised/board/boartactivity/MainTabActivity.java
+++ b/app/src/main/java/com/app/input/personalised/board/boartactivity/MainTabActivity.java
@@ -16,6 +16,7 @@ import androidx.fragment.app.Fragment;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2;
+import com.ad.tradpluslibrary.TPAdManager;
import com.app.input.personalised.board.R;
import com.app.input.personalised.board.databinding.ActivityMainTabBinding;
import com.app.input.personalised.board.helpers.FontTextView;
@@ -57,6 +58,7 @@ public class MainTabActivity extends AppCompatActivity {
@Override
protected void onResume() {
super.onResume();
+ TPAdManager.INSTANCE.loadAllAd(this);
// 确保状态栏始终为透明
com.app.input.personalised.board.helpers.StatusBarHelper.INSTANCE.setTransparentStatusBar(this);
}
diff --git a/app/src/main/java/com/app/input/personalised/board/boartactivity/SplashItemActivity.kt b/app/src/main/java/com/app/input/personalised/board/boartactivity/SplashItemActivity.kt
index 94d5cbf..e14ab90 100644
--- a/app/src/main/java/com/app/input/personalised/board/boartactivity/SplashItemActivity.kt
+++ b/app/src/main/java/com/app/input/personalised/board/boartactivity/SplashItemActivity.kt
@@ -5,8 +5,11 @@ import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.os.CountDownTimer
+import android.os.Handler
+import android.os.Looper
import android.widget.ProgressBar
import androidx.core.view.WindowCompat
+import com.ad.tradpluslibrary.TPAdManager
import com.app.input.personalised.board.R
import com.app.input.personalised.board.helpers.FontTextView
import com.app.input.personalised.board.helpers.StatusBarHelper
@@ -19,7 +22,7 @@ import kotlin.math.roundToInt
class SplashItemActivity : Activity() {
private lateinit var progressBar: ProgressBar
- private var countTime = 1500L
+ private var countTime = 15000L
private lateinit var timer: CountDownTimer
override fun onCreate(savedInstanceState: Bundle?) {
@@ -96,14 +99,21 @@ class SplashItemActivity : Activity() {
.setStartDelay(400)
.start()
- timer = object : CountDownTimer(countTime, 50) {
- override fun onTick(millisUntilFinished: Long) {
+ TPAdManager.init(
+ this,
+ "ocean",
+ "D04E3BFA57E4C6B80DEE2330FDA83911",
+ "55AF9308C928391273F59B56F85AE312",
+ "A7BB8224B2D507F6D9E60AB9A004B112",
+ "4D633F943D14075A7B4DE0A008254A12"
+ ) {}
+ timer =
+ TPAdManager.showWelcomeAd(this, countTime, { millisUntilFinished ->
val percentage: Float = 100 - millisUntilFinished.toFloat() / countTime * 100
val round = percentage.roundToInt()
progressBar.progress = round
- }
- override fun onFinish() {
+ }) {
progressBar.progress = 100
// 添加淡出动画
logo.animate()
@@ -122,7 +132,6 @@ class SplashItemActivity : Activity() {
}
.start()
}
- }
timer.start()
}
diff --git a/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemeDetailActivity.kt b/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemeDetailActivity.kt
index a5eba77..a394a94 100644
--- a/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemeDetailActivity.kt
+++ b/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemeDetailActivity.kt
@@ -20,6 +20,7 @@ import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
+import com.ad.tradpluslibrary.TPAdManager
import com.app.input.personalised.board.BoartApp
import com.app.input.personalised.board.R
import com.app.input.personalised.board.databean.KeyboardTheme
@@ -93,6 +94,7 @@ class ThemeDetailActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_theme_detail)
+ TPAdManager.loadAllAd(this)
com.app.input.personalised.board.helpers.StatusBarHelper.setTransparentStatusBar(this)
ViewCompat.setOnApplyWindowInsetsListener(
findViewById(R.id.main),
@@ -112,6 +114,8 @@ class ThemeDetailActivity : AppCompatActivity() {
displayData()
setApply()
onClick()
+
+ TPAdManager.showTPAD(this) {}
}
override fun onResume() {
diff --git a/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemeListActivity.java b/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemeListActivity.java
index 94a9dbd..767fcfa 100644
--- a/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemeListActivity.java
+++ b/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemeListActivity.java
@@ -9,7 +9,10 @@ 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.tradpluslibrary.TPAdManager;
import com.app.input.personalised.board.BoartApp;
import com.app.input.personalised.board.R;
import com.app.input.personalised.board.databean.KeyboardTheme;
@@ -20,17 +23,19 @@ import com.app.input.personalised.board.helpers.GridItemDecoration;
import java.util.List;
-public class ThemeListActivity extends AppCompatActivity {
+public class ThemeListActivity extends BaseActivity {
private ActivityThemeListBinding vb;
- public static final String KEY_NAME ="class_name";
+ public static final String KEY_NAME = "class_name";
private String name;
private List data;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
vb = ActivityThemeListBinding.inflate(getLayoutInflater());
EdgeToEdge.enable(this);
setContentView(vb.getRoot());
+ TPAdManager.INSTANCE.loadAllAd(this);
com.app.input.personalised.board.helpers.StatusBarHelper.INSTANCE.setTransparentStatusBar(this);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
@@ -58,10 +63,10 @@ public class ThemeListActivity extends AppCompatActivity {
}
}
- private void initData(){
+ private void initData() {
vb.className.setText(name);
for (ThemeCategory beanWrapper : BoartApp.list) {
- if(beanWrapper.getParentName().equals(name)){
+ if (beanWrapper.getParentName().equals(name)) {
data = beanWrapper.getKeyboardList();
}
}
@@ -73,13 +78,33 @@ public class ThemeListActivity extends AppCompatActivity {
vb.recycler.addItemDecoration(gridItemDecoration);
}
- private void initClick(){
+
+ private void initClick() {
vb.back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- finish();
+ onInterceptBackPressed();
}
});
}
+ @Override
+ protected boolean shouldInterceptBackPress() {
+ return true;
+ }
+
+ @Override
+ protected void onInterceptBackPressed() {
+
+ TPAdManager.INSTANCE.showTPAD(this, new Function0() {
+ @Override
+ public Unit invoke() {
+ return null;
+ }
+ });
+ if (getBackPressedCallback() != null) {
+ getBackPressedCallback().setEnabled(false);
+ }
+ getOnBackPressedDispatcher().onBackPressed();
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemePreviewActivity.java b/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemePreviewActivity.java
index a273ee0..5cd9808 100644
--- a/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemePreviewActivity.java
+++ b/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemePreviewActivity.java
@@ -18,6 +18,7 @@ import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
+import com.ad.tradpluslibrary.TPAdManager;
import com.app.input.personalised.board.R;
import com.app.input.personalised.board.databinding.ActivityThemePreviewBinding;
import com.app.input.personalised.board.helpers.KeyboardConstants;
@@ -30,9 +31,11 @@ import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
import jp.wasabeef.glide.transformations.BlurTransformation;
+import kotlin.Unit;
+import kotlin.jvm.functions.Function0;
-public class ThemePreviewActivity extends AppCompatActivity {
+public class ThemePreviewActivity extends BaseActivity {
private ActivityThemePreviewBinding vb;
public static String key_name = "key_name";
private int mPreviousKeyboardHeight = -1;
@@ -85,7 +88,7 @@ public class ThemePreviewActivity extends AppCompatActivity {
vb.idBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- finish();
+ onInterceptBackPressed();
}
});
if (curPath == null) {
@@ -147,4 +150,25 @@ public class ThemePreviewActivity extends AppCompatActivity {
}
});
}
+
+
+ @Override
+ protected boolean shouldInterceptBackPress() {
+ return true;
+ }
+
+ @Override
+ protected void onInterceptBackPressed() {
+
+ TPAdManager.INSTANCE.showTPAD(this, new Function0() {
+ @Override
+ public Unit invoke() {
+ return null;
+ }
+ });
+ if (getBackPressedCallback() != null) {
+ getBackPressedCallback().setEnabled(false);
+ }
+ getOnBackPressedDispatcher().onBackPressed();
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemeSearchActivity.java b/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemeSearchActivity.java
index eea11e7..6461d24 100644
--- a/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemeSearchActivity.java
+++ b/app/src/main/java/com/app/input/personalised/board/boartactivity/ThemeSearchActivity.java
@@ -15,7 +15,10 @@ 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.tradpluslibrary.TPAdManager;
import com.app.input.personalised.board.BoartApp;
import com.app.input.personalised.board.R;
import com.app.input.personalised.board.databean.KeyboardTheme;
@@ -27,7 +30,7 @@ import com.app.input.personalised.board.helpers.GridItemDecoration;
import java.util.ArrayList;
import java.util.List;
-public class ThemeSearchActivity extends AppCompatActivity {
+public class ThemeSearchActivity extends BaseActivity {
private ActivityThemeSearchBinding vb;
private RecommendedGridAdapter searchAdapter;
private List allItems = new ArrayList<>();
@@ -153,7 +156,7 @@ public class ThemeSearchActivity extends AppCompatActivity {
private void initClick() {
// 返回按钮
- vb.ivBack.setOnClickListener(v -> finish());
+ vb.ivBack.setOnClickListener(v -> onInterceptBackPressed());
// 清除按钮
vb.ivClear.setOnClickListener(v -> {
@@ -208,5 +211,26 @@ public class ThemeSearchActivity extends AppCompatActivity {
vb.etSearch.getText().toString().trim().isEmpty() ? View.GONE : View.VISIBLE
);
}
+
+
+ @Override
+ protected boolean shouldInterceptBackPress() {
+ return true;
+ }
+
+ @Override
+ protected void onInterceptBackPressed() {
+
+ TPAdManager.INSTANCE.showTPAD(this, new Function0() {
+ @Override
+ public Unit invoke() {
+ return null;
+ }
+ });
+ if (getBackPressedCallback() != null) {
+ getBackPressedCallback().setEnabled(false);
+ }
+ getOnBackPressedDispatcher().onBackPressed();
+ }
}
diff --git a/app/src/main/java/com/app/input/personalised/board/keyboardutils/CustomInputMethodService.java b/app/src/main/java/com/app/input/personalised/board/keyboardutils/CustomInputMethodService.java
index ffa06c7..bfcdd37 100644
--- a/app/src/main/java/com/app/input/personalised/board/keyboardutils/CustomInputMethodService.java
+++ b/app/src/main/java/com/app/input/personalised/board/keyboardutils/CustomInputMethodService.java
@@ -144,7 +144,9 @@ public class CustomInputMethodService extends InputMethodService implements Keyb
@Override
public void onDestroy() {
super.onDestroy();
- videoView.stopPlayback();
+ if(videoView!=null){
+ videoView.stopPlayback();
+ }
}
@Override
diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml
index 4bc214a..147193d 100644
--- a/app/src/main/res/values-night/themes.xml
+++ b/app/src/main/res/values-night/themes.xml
@@ -1,6 +1,6 @@
-