Google has made a breaking-change to an app's splash screen handling as of Android 12 whether you target it or not. Android 12 now ignores the android:windowBackground attribute. This means the Titanium project's "default.png" will be ignored on Android 12 during a cold start, but it will be displayed after the cold start ends.
Android 12 shows the app's icon in the splash instead of the "default.png" image. If the app is not set up to use android:roundIcon, then the app's icon will be clipped via a circle mask as shown below and this may not look good for most apps.
This impacts all apps that run on Android 12 regardless of what API Level they target.
On Android 12:
- Do not show Titanium's splash if Android 12's splash is shown. (Avoids double splash on startup.)
- Do not support legacy "default.png"/"background.png" on Android 12 and higher. (Icon-only splash is being forced on all apps on Android 12. You cannot opt-out.)
Make legacy "default.png"/"background.png" optional on Android 11 and older:
- If splash image is found, then it will be shown the same as before.
- If not found, then icon-only splash will be shown just like Android 12.
- Support "roundIcon" in splash on Android 8 and higher if configured in manifest.
- Remove all legacy "default.png" images from Titanium app templates.
Set up your app to use an adaptive icon and add an android:roundIcon attribute to the <application/> as shown in the hyperloop-examples project.