diff options
4 files changed, 12 insertions, 2 deletions
diff --git a/src/android/app/build.gradle b/src/android/app/build.gradle index 68e11bb66..8b621f5d5 100644 --- a/src/android/app/build.gradle +++ b/src/android/app/build.gradle @@ -136,6 +136,7 @@ dependencies { implementation 'androidx.preference:preference:1.2.0' implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1" implementation "io.coil-kt:coil:2.2.2" + implementation 'androidx.core:core-splashscreen:1.0.0' // Allows FRP-style asynchronous operations in Android. implementation 'io.reactivex:rxandroid:1.2.1' diff --git a/src/android/app/src/main/AndroidManifest.xml b/src/android/app/src/main/AndroidManifest.xml index 6c6720222..7d3eccc5c 100644 --- a/src/android/app/src/main/AndroidManifest.xml +++ b/src/android/app/src/main/AndroidManifest.xml @@ -32,7 +32,7 @@ <activity android:name="org.yuzu.yuzu_emu.ui.main.MainActivity" android:exported="true" - android:theme="@style/Theme.Yuzu.Main" + android:theme="@style/Theme.Yuzu.Splash.Main" android:resizeableActivity="false"> <!-- This intentfilter marks this Activity as the one that gets launched from Home screen. --> diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt index 768159857..f87f13463 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt @@ -14,12 +14,12 @@ import android.widget.FrameLayout import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar +import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.view.ViewCompat import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat import androidx.core.view.updatePadding import com.google.android.material.appbar.AppBarLayout -import com.google.android.material.color.MaterialColors import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.yuzu.yuzu_emu.NativeLibrary import org.yuzu.yuzu_emu.R @@ -35,6 +35,9 @@ class MainActivity : AppCompatActivity(), MainView { private val presenter = MainPresenter(this) override fun onCreate(savedInstanceState: Bundle?) { + val splashScreen = installSplashScreen() + splashScreen.setKeepOnScreenCondition { !DirectoryInitialization.areDirectoriesReady() } + ThemeHelper.setTheme(this) super.onCreate(savedInstanceState) diff --git a/src/android/app/src/main/res/values/themes.xml b/src/android/app/src/main/res/values/themes.xml index 268e72c4b..b2ed1d4b9 100644 --- a/src/android/app/src/main/res/values/themes.xml +++ b/src/android/app/src/main/res/values/themes.xml @@ -1,6 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> <resources> + <style name="Theme.Yuzu.Splash.Main" parent="Theme.SplashScreen"> + <item name="windowSplashScreenBackground">@color/yuzu_surface</item> + <item name="windowSplashScreenAnimatedIcon">@drawable/ic_yuzu</item> + <item name="postSplashScreenTheme">@style/Theme.Yuzu.Main</item> + </style> + <style name="Theme.Yuzu" parent="Theme.Material3.DayNight.NoActionBar"> <item name="colorPrimary">@color/yuzu_primary</item> <item name="colorOnPrimary">@color/yuzu_onPrimary</item> |