diff --git a/Source/Android/app/build.gradle b/Source/Android/app/build.gradle
index 72779c3fb5..525c7be0fd 100644
--- a/Source/Android/app/build.gradle
+++ b/Source/Android/app/build.gradle
@@ -103,6 +103,7 @@ dependencies {
implementation 'androidx.fragment:fragment:1.4.1'
implementation 'androidx.slidingpanelayout:slidingpanelayout:1.2.0'
implementation 'com.google.android.material:material:1.6.0'
+ implementation 'androidx.core:core-splashscreen:1.0.0'
// Android TV UI libraries.
implementation 'androidx.leanback:leanback:1.0.0'
diff --git a/Source/Android/app/src/main/AndroidManifest.xml b/Source/Android/app/src/main/AndroidManifest.xml
index 78bd53c35f..cb493596e8 100644
--- a/Source/Android/app/src/main/AndroidManifest.xml
+++ b/Source/Android/app/src/main/AndroidManifest.xml
@@ -49,20 +49,20 @@
+ android:theme="@style/Theme.Dolphin.Splash.Main">
-
+
-
+
+ android:theme="@style/Theme.Dolphin.Splash.TV">
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
index 1224fa0397..c0238617f9 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
@@ -14,6 +14,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
+import androidx.core.splashscreen.SplashScreen;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import androidx.viewpager.widget.ViewPager;
@@ -55,6 +56,10 @@ public final class MainActivity extends AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState)
{
+ SplashScreen splashScreen = SplashScreen.installSplashScreen(this);
+ splashScreen.setKeepOnScreenCondition(
+ () -> !DirectoryInitialization.areDolphinDirectoriesReady());
+
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
index d486533c55..8e9c96442c 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
@@ -10,6 +10,7 @@ import android.util.TypedValue;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
+import androidx.core.splashscreen.SplashScreen;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.leanback.app.BrowseSupportFragment;
@@ -53,6 +54,10 @@ public final class TvMainActivity extends FragmentActivity
@Override
protected void onCreate(Bundle savedInstanceState)
{
+ SplashScreen splashScreen = SplashScreen.installSplashScreen(this);
+ splashScreen.setKeepOnScreenCondition(
+ () -> !DirectoryInitialization.areDolphinDirectoriesReady());
+
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tv_main);
diff --git a/Source/Android/app/src/main/res/drawable-hdpi/ic_dolphin.png b/Source/Android/app/src/main/res/drawable-hdpi/ic_dolphin.png
deleted file mode 100644
index e50a86dac1..0000000000
Binary files a/Source/Android/app/src/main/res/drawable-hdpi/ic_dolphin.png and /dev/null differ
diff --git a/Source/Android/app/src/main/res/drawable-xhdpi/ic_dolphin.png b/Source/Android/app/src/main/res/drawable-xhdpi/ic_dolphin.png
deleted file mode 100644
index f20aa29c6a..0000000000
Binary files a/Source/Android/app/src/main/res/drawable-xhdpi/ic_dolphin.png and /dev/null differ
diff --git a/Source/Android/app/src/main/res/drawable-xxhdpi/ic_dolphin.png b/Source/Android/app/src/main/res/drawable-xxhdpi/ic_dolphin.png
deleted file mode 100644
index c1a05c347b..0000000000
Binary files a/Source/Android/app/src/main/res/drawable-xxhdpi/ic_dolphin.png and /dev/null differ
diff --git a/Source/Android/app/src/main/res/drawable/ic_dolphin.xml b/Source/Android/app/src/main/res/drawable/ic_dolphin.xml
new file mode 100644
index 0000000000..1cc88d50f5
--- /dev/null
+++ b/Source/Android/app/src/main/res/drawable/ic_dolphin.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Android/app/src/main/res/values-night/colors.xml b/Source/Android/app/src/main/res/values-night/colors.xml
index 8db7ef7bc5..d792ba7d42 100644
--- a/Source/Android/app/src/main/res/values-night/colors.xml
+++ b/Source/Android/app/src/main/res/values-night/colors.xml
@@ -4,6 +4,8 @@
#2196f3
#FFFFFF
+ #1A1C1E
+
#444444
#36ff0000
diff --git a/Source/Android/app/src/main/res/values/colors.xml b/Source/Android/app/src/main/res/values/colors.xml
index 46bb372e2c..e6dc65f906 100644
--- a/Source/Android/app/src/main/res/values/colors.xml
+++ b/Source/Android/app/src/main/res/values/colors.xml
@@ -4,6 +4,8 @@
#21b0f3
#ffffff
+ #FDFCFF
+
#444444
#36ff0000
diff --git a/Source/Android/app/src/main/res/values/themes.xml b/Source/Android/app/src/main/res/values/themes.xml
index 110242a302..34f476380f 100644
--- a/Source/Android/app/src/main/res/values/themes.xml
+++ b/Source/Android/app/src/main/res/values/themes.xml
@@ -1,5 +1,17 @@
+
+
+
+