1.1(2)
This commit is contained in:
parent
88ca5e00f6
commit
080c858e85
@ -7,6 +7,8 @@ plugins {
|
|||||||
id("org.jetbrains.kotlin.android")
|
id("org.jetbrains.kotlin.android")
|
||||||
kotlin("kapt")
|
kotlin("kapt")
|
||||||
id ("kotlin-android")
|
id ("kotlin-android")
|
||||||
|
id("com.google.gms.google-services")
|
||||||
|
id("com.google.firebase.crashlytics")
|
||||||
}
|
}
|
||||||
|
|
||||||
val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date())
|
val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date())
|
||||||
@ -17,8 +19,8 @@ android {
|
|||||||
applicationId = "com.app.personalised.board"
|
applicationId = "com.app.personalised.board"
|
||||||
minSdk = 24
|
minSdk = 24
|
||||||
targetSdk = 36
|
targetSdk = 36
|
||||||
versionCode = 1
|
versionCode = 2
|
||||||
versionName = "1.0"
|
versionName = "1.1"
|
||||||
setProperty(
|
setProperty(
|
||||||
"archivesBaseName",
|
"archivesBaseName",
|
||||||
"PersonalisedKeyboard_V" + versionName + "(${versionCode})_$timestamp"
|
"PersonalisedKeyboard_V" + versionName + "(${versionCode})_$timestamp"
|
||||||
@ -79,6 +81,93 @@ dependencies {
|
|||||||
|
|
||||||
implementation("com.google.android.material:material:1.8.0")
|
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")
|
||||||
|
|
||||||
}
|
}
|
||||||
29
app/google-services.json
Normal file
29
app/google-services.json
Normal file
@ -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"
|
||||||
|
}
|
||||||
BIN
app/libs/TradPlusLibrary_01_04_12_20-release.aar
Normal file
BIN
app/libs/TradPlusLibrary_01_04_12_20-release.aar
Normal file
Binary file not shown.
BIN
app/libs/UpLoadLibrary_12_03_15_13-release.aar
Normal file
BIN
app/libs/UpLoadLibrary_12_03_15_13-release.aar
Normal file
Binary file not shown.
2
app/proguard-rules.pro
vendored
2
app/proguard-rules.pro
vendored
@ -43,3 +43,5 @@
|
|||||||
-keep class com.omicronapplications.** { *; }
|
-keep class com.omicronapplications.** { *; }
|
||||||
-keep class net.sf.sevenzipjbinding.** { *; }
|
-keep class net.sf.sevenzipjbinding.** { *; }
|
||||||
|
|
||||||
|
-keep public class com.tradplus.** { *; }
|
||||||
|
-keep class com.tradplus.ads.** { *; }
|
||||||
@ -3,13 +3,18 @@
|
|||||||
xmlns:tools="http://schemas.android.com/tools">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.AD_ID" />
|
||||||
|
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
|
||||||
<application
|
<application
|
||||||
android:name=".BoartApp"
|
android:name=".BoartApp"
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:icon="@mipmap/logo"
|
android:icon="@mipmap/logo"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:roundIcon="@mipmap/logo"
|
android:roundIcon="@mipmap/logo"
|
||||||
|
android:networkSecurityConfig="@xml/net"
|
||||||
|
tools:replace="networkSecurityConfig"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/MyKeyBoard"
|
android:theme="@style/MyKeyBoard"
|
||||||
tools:targetApi="31">
|
tools:targetApi="31">
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import android.app.Application
|
|||||||
import android.graphics.Typeface
|
import android.graphics.Typeface
|
||||||
import com.app.input.personalised.board.databean.KeyboardTheme
|
import com.app.input.personalised.board.databean.KeyboardTheme
|
||||||
import com.app.input.personalised.board.databean.ThemeCategory
|
import com.app.input.personalised.board.databean.ThemeCategory
|
||||||
|
import com.up.uploadlibrary.UpLoadManager
|
||||||
//import com.pretty.keyboard.theme.keyboard.helper.ObjectBox
|
//import com.pretty.keyboard.theme.keyboard.helper.ObjectBox
|
||||||
import org.json.JSONArray
|
import org.json.JSONArray
|
||||||
import java.io.BufferedReader
|
import java.io.BufferedReader
|
||||||
@ -29,6 +30,8 @@ class BoartApp : Application() {
|
|||||||
boartAppInstance = this
|
boartAppInstance = this
|
||||||
defaultFont = Typeface.createFromAsset(assets, "my_font.ttf")
|
defaultFont = Typeface.createFromAsset(assets, "my_font.ttf")
|
||||||
dealFile()
|
dealFile()
|
||||||
|
|
||||||
|
UpLoadManager.init(this,"ocean",{s,ss->})
|
||||||
}
|
}
|
||||||
private fun dealFile() {
|
private fun dealFile() {
|
||||||
val openFile = boartAppInstance.assets.open("new_res.json")
|
val openFile = boartAppInstance.assets.open("new_res.json")
|
||||||
|
|||||||
@ -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!!)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -9,7 +9,10 @@ import androidx.core.graphics.Insets;
|
|||||||
import androidx.core.view.ViewCompat;
|
import androidx.core.view.ViewCompat;
|
||||||
import androidx.core.view.WindowInsetsCompat;
|
import androidx.core.view.WindowInsetsCompat;
|
||||||
import androidx.recyclerview.widget.GridLayoutManager;
|
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.R;
|
||||||
import com.app.input.personalised.board.databean.KeyboardTheme;
|
import com.app.input.personalised.board.databean.KeyboardTheme;
|
||||||
import com.app.input.personalised.board.itemback.FavoriteRemovedListener;
|
import com.app.input.personalised.board.itemback.FavoriteRemovedListener;
|
||||||
@ -21,7 +24,7 @@ import com.app.input.personalised.board.helpers.GridItemDecoration;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class FavoriteThemeActivity extends AppCompatActivity implements FavoriteRemovedListener {
|
public class FavoriteThemeActivity extends BaseActivity implements FavoriteRemovedListener {
|
||||||
private ActivityFavoriteThemeBinding vb;
|
private ActivityFavoriteThemeBinding vb;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -94,9 +97,29 @@ public class FavoriteThemeActivity extends AppCompatActivity implements Favorite
|
|||||||
vb.back.setOnClickListener(new View.OnClickListener() {
|
vb.back.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
finish();
|
onInterceptBackPressed();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean shouldInterceptBackPress() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onInterceptBackPressed() {
|
||||||
|
|
||||||
|
TPAdManager.INSTANCE.showTPAD(this, new Function0<Unit>() {
|
||||||
|
@Override
|
||||||
|
public Unit invoke() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (getBackPressedCallback() != null) {
|
||||||
|
getBackPressedCallback().setEnabled(false);
|
||||||
|
}
|
||||||
|
getOnBackPressedDispatcher().onBackPressed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import androidx.fragment.app.Fragment;
|
|||||||
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
||||||
import androidx.viewpager2.widget.ViewPager2;
|
import androidx.viewpager2.widget.ViewPager2;
|
||||||
|
|
||||||
|
import com.ad.tradpluslibrary.TPAdManager;
|
||||||
import com.app.input.personalised.board.R;
|
import com.app.input.personalised.board.R;
|
||||||
import com.app.input.personalised.board.databinding.ActivityMainTabBinding;
|
import com.app.input.personalised.board.databinding.ActivityMainTabBinding;
|
||||||
import com.app.input.personalised.board.helpers.FontTextView;
|
import com.app.input.personalised.board.helpers.FontTextView;
|
||||||
@ -57,6 +58,7 @@ public class MainTabActivity extends AppCompatActivity {
|
|||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
TPAdManager.INSTANCE.loadAllAd(this);
|
||||||
// 确保状态栏始终为透明
|
// 确保状态栏始终为透明
|
||||||
com.app.input.personalised.board.helpers.StatusBarHelper.INSTANCE.setTransparentStatusBar(this);
|
com.app.input.personalised.board.helpers.StatusBarHelper.INSTANCE.setTransparentStatusBar(this);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,8 +5,11 @@ import android.content.Intent
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.CountDownTimer
|
import android.os.CountDownTimer
|
||||||
|
import android.os.Handler
|
||||||
|
import android.os.Looper
|
||||||
import android.widget.ProgressBar
|
import android.widget.ProgressBar
|
||||||
import androidx.core.view.WindowCompat
|
import androidx.core.view.WindowCompat
|
||||||
|
import com.ad.tradpluslibrary.TPAdManager
|
||||||
import com.app.input.personalised.board.R
|
import com.app.input.personalised.board.R
|
||||||
import com.app.input.personalised.board.helpers.FontTextView
|
import com.app.input.personalised.board.helpers.FontTextView
|
||||||
import com.app.input.personalised.board.helpers.StatusBarHelper
|
import com.app.input.personalised.board.helpers.StatusBarHelper
|
||||||
@ -19,7 +22,7 @@ import kotlin.math.roundToInt
|
|||||||
class SplashItemActivity : Activity() {
|
class SplashItemActivity : Activity() {
|
||||||
|
|
||||||
private lateinit var progressBar: ProgressBar
|
private lateinit var progressBar: ProgressBar
|
||||||
private var countTime = 1500L
|
private var countTime = 15000L
|
||||||
private lateinit var timer: CountDownTimer
|
private lateinit var timer: CountDownTimer
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
@ -96,14 +99,21 @@ class SplashItemActivity : Activity() {
|
|||||||
.setStartDelay(400)
|
.setStartDelay(400)
|
||||||
.start()
|
.start()
|
||||||
|
|
||||||
timer = object : CountDownTimer(countTime, 50) {
|
TPAdManager.init(
|
||||||
override fun onTick(millisUntilFinished: Long) {
|
this,
|
||||||
|
"ocean",
|
||||||
|
"D04E3BFA57E4C6B80DEE2330FDA83911",
|
||||||
|
"55AF9308C928391273F59B56F85AE312",
|
||||||
|
"A7BB8224B2D507F6D9E60AB9A004B112",
|
||||||
|
"4D633F943D14075A7B4DE0A008254A12"
|
||||||
|
) {}
|
||||||
|
timer =
|
||||||
|
TPAdManager.showWelcomeAd(this, countTime, { millisUntilFinished ->
|
||||||
val percentage: Float = 100 - millisUntilFinished.toFloat() / countTime * 100
|
val percentage: Float = 100 - millisUntilFinished.toFloat() / countTime * 100
|
||||||
val round = percentage.roundToInt()
|
val round = percentage.roundToInt()
|
||||||
progressBar.progress = round
|
progressBar.progress = round
|
||||||
}
|
|
||||||
|
|
||||||
override fun onFinish() {
|
}) {
|
||||||
progressBar.progress = 100
|
progressBar.progress = 100
|
||||||
// 添加淡出动画
|
// 添加淡出动画
|
||||||
logo.animate()
|
logo.animate()
|
||||||
@ -122,7 +132,6 @@ class SplashItemActivity : Activity() {
|
|||||||
}
|
}
|
||||||
.start()
|
.start()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
timer.start()
|
timer.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import androidx.core.view.isVisible
|
|||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import com.ad.tradpluslibrary.TPAdManager
|
||||||
import com.app.input.personalised.board.BoartApp
|
import com.app.input.personalised.board.BoartApp
|
||||||
import com.app.input.personalised.board.R
|
import com.app.input.personalised.board.R
|
||||||
import com.app.input.personalised.board.databean.KeyboardTheme
|
import com.app.input.personalised.board.databean.KeyboardTheme
|
||||||
@ -93,6 +94,7 @@ class ThemeDetailActivity : AppCompatActivity() {
|
|||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
enableEdgeToEdge()
|
enableEdgeToEdge()
|
||||||
setContentView(R.layout.activity_theme_detail)
|
setContentView(R.layout.activity_theme_detail)
|
||||||
|
TPAdManager.loadAllAd(this)
|
||||||
com.app.input.personalised.board.helpers.StatusBarHelper.setTransparentStatusBar(this)
|
com.app.input.personalised.board.helpers.StatusBarHelper.setTransparentStatusBar(this)
|
||||||
ViewCompat.setOnApplyWindowInsetsListener(
|
ViewCompat.setOnApplyWindowInsetsListener(
|
||||||
findViewById<View?>(R.id.main),
|
findViewById<View?>(R.id.main),
|
||||||
@ -112,6 +114,8 @@ class ThemeDetailActivity : AppCompatActivity() {
|
|||||||
displayData()
|
displayData()
|
||||||
setApply()
|
setApply()
|
||||||
onClick()
|
onClick()
|
||||||
|
|
||||||
|
TPAdManager.showTPAD(this) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
|
|||||||
@ -9,7 +9,10 @@ import androidx.core.graphics.Insets;
|
|||||||
import androidx.core.view.ViewCompat;
|
import androidx.core.view.ViewCompat;
|
||||||
import androidx.core.view.WindowInsetsCompat;
|
import androidx.core.view.WindowInsetsCompat;
|
||||||
import androidx.recyclerview.widget.GridLayoutManager;
|
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.BoartApp;
|
||||||
import com.app.input.personalised.board.R;
|
import com.app.input.personalised.board.R;
|
||||||
import com.app.input.personalised.board.databean.KeyboardTheme;
|
import com.app.input.personalised.board.databean.KeyboardTheme;
|
||||||
@ -20,17 +23,19 @@ import com.app.input.personalised.board.helpers.GridItemDecoration;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ThemeListActivity extends AppCompatActivity {
|
public class ThemeListActivity extends BaseActivity {
|
||||||
private ActivityThemeListBinding vb;
|
private ActivityThemeListBinding vb;
|
||||||
public static final String KEY_NAME = "class_name";
|
public static final String KEY_NAME = "class_name";
|
||||||
private String name;
|
private String name;
|
||||||
private List<KeyboardTheme> data;
|
private List<KeyboardTheme> data;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
vb = ActivityThemeListBinding.inflate(getLayoutInflater());
|
vb = ActivityThemeListBinding.inflate(getLayoutInflater());
|
||||||
EdgeToEdge.enable(this);
|
EdgeToEdge.enable(this);
|
||||||
setContentView(vb.getRoot());
|
setContentView(vb.getRoot());
|
||||||
|
TPAdManager.INSTANCE.loadAllAd(this);
|
||||||
com.app.input.personalised.board.helpers.StatusBarHelper.INSTANCE.setTransparentStatusBar(this);
|
com.app.input.personalised.board.helpers.StatusBarHelper.INSTANCE.setTransparentStatusBar(this);
|
||||||
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
|
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
|
||||||
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
|
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
|
||||||
@ -73,13 +78,33 @@ public class ThemeListActivity extends AppCompatActivity {
|
|||||||
vb.recycler.addItemDecoration(gridItemDecoration);
|
vb.recycler.addItemDecoration(gridItemDecoration);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initClick() {
|
private void initClick() {
|
||||||
vb.back.setOnClickListener(new View.OnClickListener() {
|
vb.back.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
finish();
|
onInterceptBackPressed();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean shouldInterceptBackPress() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onInterceptBackPressed() {
|
||||||
|
|
||||||
|
TPAdManager.INSTANCE.showTPAD(this, new Function0<Unit>() {
|
||||||
|
@Override
|
||||||
|
public Unit invoke() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (getBackPressedCallback() != null) {
|
||||||
|
getBackPressedCallback().setEnabled(false);
|
||||||
|
}
|
||||||
|
getOnBackPressedDispatcher().onBackPressed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -18,6 +18,7 @@ import androidx.core.graphics.Insets;
|
|||||||
import androidx.core.view.ViewCompat;
|
import androidx.core.view.ViewCompat;
|
||||||
import androidx.core.view.WindowInsetsCompat;
|
import androidx.core.view.WindowInsetsCompat;
|
||||||
|
|
||||||
|
import com.ad.tradpluslibrary.TPAdManager;
|
||||||
import com.app.input.personalised.board.R;
|
import com.app.input.personalised.board.R;
|
||||||
import com.app.input.personalised.board.databinding.ActivityThemePreviewBinding;
|
import com.app.input.personalised.board.databinding.ActivityThemePreviewBinding;
|
||||||
import com.app.input.personalised.board.helpers.KeyboardConstants;
|
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 com.bumptech.glide.request.target.Target;
|
||||||
|
|
||||||
import jp.wasabeef.glide.transformations.BlurTransformation;
|
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;
|
private ActivityThemePreviewBinding vb;
|
||||||
public static String key_name = "key_name";
|
public static String key_name = "key_name";
|
||||||
private int mPreviousKeyboardHeight = -1;
|
private int mPreviousKeyboardHeight = -1;
|
||||||
@ -85,7 +88,7 @@ public class ThemePreviewActivity extends AppCompatActivity {
|
|||||||
vb.idBack.setOnClickListener(new View.OnClickListener() {
|
vb.idBack.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
finish();
|
onInterceptBackPressed();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (curPath == null) {
|
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<Unit>() {
|
||||||
|
@Override
|
||||||
|
public Unit invoke() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (getBackPressedCallback() != null) {
|
||||||
|
getBackPressedCallback().setEnabled(false);
|
||||||
|
}
|
||||||
|
getOnBackPressedDispatcher().onBackPressed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -15,7 +15,10 @@ import androidx.core.graphics.Insets;
|
|||||||
import androidx.core.view.ViewCompat;
|
import androidx.core.view.ViewCompat;
|
||||||
import androidx.core.view.WindowInsetsCompat;
|
import androidx.core.view.WindowInsetsCompat;
|
||||||
import androidx.recyclerview.widget.GridLayoutManager;
|
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.BoartApp;
|
||||||
import com.app.input.personalised.board.R;
|
import com.app.input.personalised.board.R;
|
||||||
import com.app.input.personalised.board.databean.KeyboardTheme;
|
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.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ThemeSearchActivity extends AppCompatActivity {
|
public class ThemeSearchActivity extends BaseActivity {
|
||||||
private ActivityThemeSearchBinding vb;
|
private ActivityThemeSearchBinding vb;
|
||||||
private RecommendedGridAdapter searchAdapter;
|
private RecommendedGridAdapter searchAdapter;
|
||||||
private List<KeyboardTheme> allItems = new ArrayList<>();
|
private List<KeyboardTheme> allItems = new ArrayList<>();
|
||||||
@ -153,7 +156,7 @@ public class ThemeSearchActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
private void initClick() {
|
private void initClick() {
|
||||||
// 返回按钮
|
// 返回按钮
|
||||||
vb.ivBack.setOnClickListener(v -> finish());
|
vb.ivBack.setOnClickListener(v -> onInterceptBackPressed());
|
||||||
|
|
||||||
// 清除按钮
|
// 清除按钮
|
||||||
vb.ivClear.setOnClickListener(v -> {
|
vb.ivClear.setOnClickListener(v -> {
|
||||||
@ -208,5 +211,26 @@ public class ThemeSearchActivity extends AppCompatActivity {
|
|||||||
vb.etSearch.getText().toString().trim().isEmpty() ? View.GONE : View.VISIBLE
|
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<Unit>() {
|
||||||
|
@Override
|
||||||
|
public Unit invoke() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (getBackPressedCallback() != null) {
|
||||||
|
getBackPressedCallback().setEnabled(false);
|
||||||
|
}
|
||||||
|
getOnBackPressedDispatcher().onBackPressed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -144,8 +144,10 @@ public class CustomInputMethodService extends InputMethodService implements Keyb
|
|||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
|
if(videoView!=null){
|
||||||
videoView.stopPlayback();
|
videoView.stopPlayback();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPress(int primaryCode) {
|
public void onPress(int primaryCode) {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
<!-- Base application theme. -->
|
<!-- Base application theme. -->
|
||||||
<style name="MyKeyBoard" beanWrapper="Theme.MaterialComponents.DayNight.NoActionBar">
|
<style name="MyKeyBoard" parent="Theme.MaterialComponents.DayNight.NoActionBar">
|
||||||
<!-- Primary brand color. -->
|
<!-- Primary brand color. -->
|
||||||
<item name="colorPrimary">@color/purple_200</item>
|
<item name="colorPrimary">@color/purple_200</item>
|
||||||
<item name="colorPrimaryVariant">@color/purple_700</item>
|
<item name="colorPrimaryVariant">@color/purple_700</item>
|
||||||
|
|||||||
6
app/src/main/res/xml/net.xml
Normal file
6
app/src/main/res/xml/net.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<network-security-config xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<domain-config cleartextTrafficPermitted="true">
|
||||||
|
<domain tools:ignore="NetworkSecurityConfig">mobile-server.lux-ad.com</domain>
|
||||||
|
</domain-config>
|
||||||
|
</network-security-config>
|
||||||
@ -3,4 +3,6 @@ plugins {
|
|||||||
id("com.android.application") version "8.9.2" apply false
|
id("com.android.application") version "8.9.2" apply false
|
||||||
id("org.jetbrains.kotlin.android") version "2.2.21" apply false
|
id("org.jetbrains.kotlin.android") version "2.2.21" apply false
|
||||||
kotlin("kapt") version "2.0.0"
|
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
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,27 @@ dependencyResolutionManagement {
|
|||||||
google()
|
google()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
maven("https://jitpack.io")
|
maven("https://jitpack.io")
|
||||||
|
flatDir {
|
||||||
|
dirs("libs")
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------- 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")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user