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 @@ -