diff --git a/build.gradle b/build.gradle
index 55085ee20..ed94a62f8 100644
--- a/build.gradle
+++ b/build.gradle
@@ -129,6 +129,7 @@ dependencies {
implementation 'androidx.documentfile:documentfile:1.0.1'
implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
+ implementation 'androidx.core:core-splashscreen:1.0.0'
androidTestImplementation 'androidx.test:core:1.4.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
diff --git a/src/main/java/de/dennisguse/opentracks/TrackListActivity.java b/src/main/java/de/dennisguse/opentracks/TrackListActivity.java
index d56282b1d..275829532 100644
--- a/src/main/java/de/dennisguse/opentracks/TrackListActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/TrackListActivity.java
@@ -38,6 +38,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.SearchView;
import androidx.core.content.ContextCompat;
+import androidx.core.splashscreen.SplashScreen;
import androidx.cursoradapter.widget.ResourceCursorAdapter;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.CursorLoader;
@@ -158,8 +159,7 @@ public class TrackListActivity extends AbstractTrackDeleteActivity implements Co
@Override
protected void onCreate(Bundle savedInstanceState) {
- // Reset theme after splash
- setTheme(R.style.ThemeCustom);
+ SplashScreen.installSplashScreen(this);
super.onCreate(savedInstanceState);
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
diff --git a/src/main/java/de/dennisguse/opentracks/publicapi/AbstractAPIActivity.java b/src/main/java/de/dennisguse/opentracks/publicapi/AbstractAPIActivity.java
index a4f6a72a8..5684e0bcf 100644
--- a/src/main/java/de/dennisguse/opentracks/publicapi/AbstractAPIActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/publicapi/AbstractAPIActivity.java
@@ -6,6 +6,7 @@ import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.splashscreen.SplashScreen;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.services.TrackRecordingService;
@@ -30,7 +31,10 @@ public abstract class AbstractAPIActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
+ SplashScreen splashScreen = SplashScreen.installSplashScreen(this);
super.onCreate(savedInstanceState);
+ splashScreen.setKeepOnScreenCondition(() -> true );
+
if (PreferencesUtils.isPublicAPIenabled()) {
Log.i(TAG, "Received and trying to execute requested action.");
new TrackRecordingServiceConnection(serviceConnectedCallback)
diff --git a/src/main/res/drawable/ic_logo_color_splashscreen.xml b/src/main/res/drawable/ic_logo_color_splashscreen.xml
new file mode 100644
index 000000000..c377f4ff2
--- /dev/null
+++ b/src/main/res/drawable/ic_logo_color_splashscreen.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/res/drawable/splashscreen.xml b/src/main/res/drawable/splashscreen.xml
deleted file mode 100644
index b1831ec27..000000000
--- a/src/main/res/drawable/splashscreen.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- -
-
-
-
-
\ No newline at end of file
diff --git a/src/main/res/values/themes_custom.xml b/src/main/res/values/themes_custom.xml
index 8d73ea2d1..f0c68ba13 100644
--- a/src/main/res/values/themes_custom.xml
+++ b/src/main/res/values/themes_custom.xml
@@ -59,10 +59,11 @@ limitations under the License.
- ?attr/colorSecondary
-