Skip to content

Use new HA logo animated SVG for loading screen - #5218

Merged
bgoncal merged 4 commits into
mainfrom
splash-3
Jul 24, 2026
Merged

Use new HA logo animated SVG for loading screen#5218
bgoncal merged 4 commits into
mainfrom
splash-3

Conversation

@bgoncal

@bgoncal bgoncal commented Jul 23, 2026

Copy link
Copy Markdown
Member

AI Policy

Select exactly one option that describes AI usage in this contribution:

  • I have not used AI for this contribution.
  • AI assistance was used for this contribution.
  • AI fully generated the code for this contribution, but I've reviewed and understood it before submitting and will respond without AI during review.

Summary

Use animated HA logo SVG for loading screen.

Screenshots

Screen.Recording.2026-07-23.at.09.01.48.mov

Link to pull request in Documentation repository

Documentation: home-assistant/companion.home-assistant#

Any other notes

Copilot AI review requested due to automatic review settings July 23, 2026 12:10
@bgoncal
bgoncal marked this pull request as draft July 23, 2026 12:11
@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

⚠️ Unused L10n strings detected

Found 6 unused localization strings in the codebase.

Click to see details
Parsing Strings.swift...
Found 2191 L10n strings

Reading all Swift source code...
Read 7643550 characters of Swift code

Checking for unused strings...
Checked 100/2191 strings...
Checked 200/2191 strings...
Checked 300/2191 strings...
Checked 400/2191 strings...
Checked 500/2191 strings...
Checked 600/2191 strings...
Checked 700/2191 strings...
Checked 800/2191 strings...
Checked 900/2191 strings...
Checked 1000/2191 strings...
Checked 1100/2191 strings...
Checked 1200/2191 strings...
Checked 1300/2191 strings...
Checked 1400/2191 strings...
Checked 1500/2191 strings...
Checked 1600/2191 strings...
Checked 1700/2191 strings...
Checked 1800/2191 strings...
Checked 1900/2191 strings...
Checked 2000/2191 strings...
Checked 2100/2191 strings...

================================================================================
UNUSED STRINGS REPORT
================================================================================

Found 6 unused strings:


ONBOARDING:
  - L10n.Onboarding.ServerImport.Reauthenticate.errorsMissingPresenter
    Key: onboarding.server_import.reauthenticate.errors_missing_presenter
    Line: 3533

WATCH:
  - L10n.Watch.Complications.Builder.previewFooter
    Key: watch.complications.builder.preview_footer
    Line: 5936
  - L10n.Watch.Complications.Builder.sourceCustom
    Key: watch.complications.builder.source_custom
    Line: 5966
  - L10n.Watch.Complications.Builder.templateColor
    Key: watch.complications.builder.template_color
    Line: 5978
  - L10n.Watch.Complications.Builder.textTemplate
    Key: watch.complications.builder.text_template
    Line: 5996

ROOT:
  - L10n.debugSectionLabel
    Key: debug_section_label
    Line: 26

================================================================================
Total unused: 6
================================================================================

================================================================================
Copy-paste these keys into the "Lokalise: Delete Keys" workflow (keys input):
================================================================================
debug_section_label,onboarding.server_import.reauthenticate.errors_missing_presenter,watch.complications.builder.preview_footer,watch.complications.builder.source_custom,watch.complications.builder.template_color,watch.complications.builder.text_template

To remove them, run the
Lokalise: Delete Keys
workflow — it deletes the keys from Lokalise and opens a PR removing them from
Localizable.strings and regenerating Strings.swift. Copy-paste these keys into the keys input:

debug_section_label,onboarding.server_import.reauthenticate.errors_missing_presenter,watch.complications.builder.preview_footer,watch.complications.builder.source_custom,watch.complications.builder.template_color,watch.complications.builder.text_template

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the app’s loading/standby presentation to use a bundled animated Home Assistant logo SVG rendered via a transparent WKWebView, and refreshes the launch splash/LaunchScreen OHF wordmark asset sizing.

Changes:

  • Replace the standby loading presentation with an animated SVG overlay (new AnimatedSVGView + AnimatedSVGWebViewCache and integration in HomeAssistantStandByView).
  • Update launch screen / splash overlay to use the ohf-inline asset and new sizing.
  • Remove legacy Lottie JSON resources (home / ha-loading / error) and update SwiftPM Package.resolved hash.

Reviewed changes

Copilot reviewed 11 out of 14 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Sources/App/Resources/Lottie Files/home.json Removes legacy Lottie “home” animation resource.
Sources/App/Resources/Lottie Files/ha-loading.json Removes legacy Lottie loading animation resource.
Sources/App/Resources/Lottie Files/error.json Removes legacy Lottie error animation resource.
Sources/App/Resources/home-assistant-logo-loading.svg Adds the new animated SVG used for the loading logo.
Sources/App/Resources/Base.lproj/LaunchScreen.storyboard Switches launch screen wordmark image reference and adjusts sizing.
Sources/App/Resources/Assets.xcassets/LaunchScreen/ohf-inline.imageset/OHF-lockup-inline-monochrome-on-light.svg Adds new OHF inline lockup (light).
Sources/App/Resources/Assets.xcassets/LaunchScreen/ohf-inline.imageset/OHF-lockup-inline-monochrome-on-dark.svg Adds new OHF inline lockup (dark).
Sources/App/Resources/Assets.xcassets/LaunchScreen/ohf-inline.imageset/Contents.json Adds asset catalog metadata for the new OHF inline lockup.
Sources/App/Frontend/WebView/Views/HomeAssistantStandByView.swift Integrates the animated SVG loading logo and refactors layout.
Sources/App/Frontend/WebView/Views/AnimatedSVGWebViewCache.swift Adds a cache/preload layer for the animated SVG WKWebView.
Sources/App/Frontend/WebView/Views/AnimatedSVGView.swift Adds the SwiftUI UIViewRepresentable wrapper for rendering the SVG.
Sources/App/Container/LaunchSplash/LaunchSplashOverlayView.swift Updates splash overlay to use ohf-inline and the new frame size.
Sources/App/AppDelegate.swift Preloads the animated SVG web view at launch.
HomeAssistant.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved Updates SwiftPM resolution metadata hash.
Comments suppressed due to low confidence (1)

Sources/App/Frontend/WebView/Views/AnimatedSVGWebViewCache.swift:41

  • The WKWebView here is only used to render a bundled SVG. Using a default WKWebViewConfiguration() keeps JavaScript and a persistent data store enabled, which is unnecessary and increases attack surface / potential disk writes. Prefer a hardened configuration (disable JS if possible and use a non-persistent data store).
    private static func makeWebView() -> WKWebView {
        let webView = WKWebView(frame: .zero, configuration: WKWebViewConfiguration())
        webView.isOpaque = false
        webView.backgroundColor = .clear
        webView.scrollView.backgroundColor = .clear

Comment thread Sources/App/Frontend/WebView/Views/AnimatedSVGWebViewCache.swift Outdated
Comment thread Sources/App/AppDelegate.swift
bgoncal added 3 commits July 23, 2026 09:18
…aunch

Hand out the warm WKWebView only while it is unattached, creating a fresh
loaded instance when it is already parented (multi-window scenes). Skip the
launch-time preload on background location launches where the stand-by view
is not shown.
Adjust logo (120) and OHF logo (height 25) sizes and mirror the new caption in the SwiftUI launch splash overlay.
@bgoncal

bgoncal commented Jul 23, 2026

Copy link
Copy Markdown
Member Author

Update with new ohf logo and ha logo size

Screen.Recording.iPhone.17.Pro.07-23-2026.at.11.12.54.mp4

@bgoncal bgoncal changed the title [WIP] Use new HA logo animated SVG for loading screen Use new HA logo animated SVG for loading screen Jul 24, 2026
@bgoncal
bgoncal marked this pull request as ready for review July 24, 2026 02:01
@bgoncal
bgoncal merged commit 914df3c into main Jul 24, 2026
11 checks passed
@bgoncal
bgoncal deleted the splash-3 branch July 24, 2026 02:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants