From bbceb80f5cddb5e73881990c761f79ed40f98bfb Mon Sep 17 00:00:00 2001 From: HapeLee <1321903405@qq.com> Date: Thu, 9 Oct 2025 19:40:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=90=AF=E5=8A=A8=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E9=97=AA=E7=83=81=E9=97=AE=E9=A2=98=20#78?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 + app/src/main/AndroidManifest.xml | 4 +- .../kazusa/ui/welcome/SplashActivity.kt | 59 ++++++++----------- app/src/main/res/layout/activity_splash.xml | 6 +- app/src/main/res/values/themes.xml | 6 ++ gradle/libs.versions.toml | 4 ++ 6 files changed, 42 insertions(+), 39 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 631d91956..b5be5cd69 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -331,4 +331,6 @@ dependencies { implementation libs.androidx.datastore.preferences implementation libs.androidx.palette + implementation libs.androidx.core.splashscreen + implementation libs.androidx.startup.runtime } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a1a819a42..04519317f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -125,8 +125,8 @@ diff --git a/app/src/main/java/io/legato/kazusa/ui/welcome/SplashActivity.kt b/app/src/main/java/io/legato/kazusa/ui/welcome/SplashActivity.kt index ad901776b..13d6459f4 100644 --- a/app/src/main/java/io/legato/kazusa/ui/welcome/SplashActivity.kt +++ b/app/src/main/java/io/legato/kazusa/ui/welcome/SplashActivity.kt @@ -3,11 +3,8 @@ package io.legato.kazusa.ui.welcome import android.annotation.SuppressLint import android.content.Intent import android.os.Bundle -import android.transition.Fade import androidx.core.app.ActivityOptionsCompat -import androidx.core.content.ContextCompat.startActivity -import androidx.core.view.postDelayed -import com.google.android.material.transition.platform.MaterialSharedAxis +import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import io.legato.kazusa.base.BaseActivity import io.legato.kazusa.constant.PreferKey import io.legato.kazusa.databinding.ActivitySplashBinding @@ -22,40 +19,32 @@ class SplashActivity : BaseActivity() { override val binding by viewBinding(ActivitySplashBinding::inflate) override fun onCreate(savedInstanceState: Bundle?) { + val splashScreen = installSplashScreen() super.onCreate(savedInstanceState) + splashScreen.setKeepOnScreenCondition { true } + routeNext() + } - window.exitTransition = Fade().apply { - duration = 300 + private fun routeNext() { + when { + LocalConfig.isFirstOpenApp -> { + go(WelcomeActivity::class.java) + } + getPrefBoolean(PreferKey.defaultToRead) -> { + go(MainActivity::class.java) + go(ReadBookActivity::class.java) + } + else -> { + go(MainActivity::class.java) + } } - window.reenterTransition = Fade().apply { - duration = 300 - } - - if (LocalConfig.isFirstOpenApp) { - startActivity( - Intent(this, WelcomeActivity::class.java), - ActivityOptionsCompat.makeSceneTransitionAnimation(this).toBundle() - ) - finish() - return - } - - if (getPrefBoolean(PreferKey.defaultToRead)) { - startActivity( - Intent(this, MainActivity::class.java), - ActivityOptionsCompat.makeSceneTransitionAnimation(this).toBundle() - ) - startActivity( - Intent(this, ReadBookActivity::class.java), - ActivityOptionsCompat.makeSceneTransitionAnimation(this).toBundle() - ) - finish() - return - } - - startActivity(Intent(this, MainActivity::class.java), - ActivityOptionsCompat.makeSceneTransitionAnimation(this).toBundle()) finish() } -} + private fun go(target: Class<*>) { + startActivity( + Intent(this, target), + ActivityOptionsCompat.makeSceneTransitionAnimation(this).toBundle() + ) + } +} diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 77d9ef65f..c5c536cee 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -1,6 +1,8 @@ - + android:layout_height="match_parent" + android:background="?attr/colorSurface"> \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 555ccb446..cbac8dbdd 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -13,6 +13,12 @@ @style/Widget.Material3Expressive.BottomNavigationView + +