Uploaded image for project: 'Titanium SDK/CLI'
  1. Titanium SDK/CLI
  2. TIMOB-28473

Android: Address splash screen breaking-changes on Android 12

    Details

      Description

      Summary:
      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.
      https://developer.android.com/about/versions/12/features/splash-screen

      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.

      Splash 1st shows app icon   Next shows default.png
      ->

      Note:
      This impacts all apps that run on Android 12 regardless of what API Level they target.

      To-Do:
      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.

      Work-Around:
      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.
      https://github.com/appcelerator/hyperloop-examples/blob/master/tiapp.xml#L64

        Attachments

          Activity

            People

            • Assignee:
              jquick Joshua Quick
              Reporter:
              jquick Joshua Quick
              Reviewer:
              Gary Mathews
            • Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Backbone Issue Sync

                • Backbone Issue Sync is enabled for your project, but we do not have any synchronization info for this issue.

                  Git Integration