Conversation
There was a problem hiding this comment.
Pull request overview
Updates the CarPlay experience to take advantage of iOS 26’s condensed list UI while improving icon rendering/coloring so entity tiles better match live server state (including dynamic light colors).
Changes:
- Add iOS 26 condensed-element image rendering for CarPlay icons (including background styling).
- Update CarPlay templates (Quick Access, Domains, Areas, Entities) to use condensed image-row items on iOS 26 with consistent grouping.
- Adjust entity icon coloring to use a centralized color provider + add/extend tests for CarPlay icon coloring behavior.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| Tests/Shared/HAEntityCarPlay.test.swift | Updates/extends tests for CarPlay icon tinting, including server-provided RGB color. |
| Sources/Shared/MaterialDesignIcons+CarPlay.swift | Adds iOS 26 condensed-element icon rendering helpers for MaterialDesignIcons and UIImage. |
| Sources/Shared/HAEntity+CarPlay.swift | Routes CarPlay icon tint selection through EntityIconColorProvider and parses color attributes. |
| Sources/Shared/EntityIconColorProvider.swift | Tweaks default inactive-state icon color selection logic. |
| Sources/CarPlay/Templates/QuickAccess/CarPlayQuickAccessTemplate.swift | Uses iOS 26 condensed rows for grid layout and updated condensed icon rendering. |
| Sources/CarPlay/Templates/Entities/CarPlayEntityListItem.swift | Refactors display-content computation and adopts live server-provided icon coloring for dynamic entities. |
| Sources/CarPlay/Templates/Entities/CarPlayEntitiesListViewModel.swift | Updates state-refresh behavior to optionally re-render template items after entity updates. |
| Sources/CarPlay/Templates/Entities/CarPlayEntitiesListTemplate.swift | Adds condensed entity rows on iOS 26 and centralizes group sizing. |
| Sources/CarPlay/Templates/Domains/CarPlayDomainsListViewModel.swift | Adopts iOS 26 condensed domain rows and updated icon rendering. |
| Sources/CarPlay/Templates/Areas/CarPlayAreasViewModel.swift | Adopts iOS 26 condensed area rows and updated icon rendering. |
| Sources/App/Settings/CarPlay/CarPlayConfigurationViewModel.swift | Changes the default Quick Access layout when unset. |
| Sources/App/Settings/CarPlay/CarPlayConfigurationView.swift | Switches to an asset-catalog image reference for the CarPlay logo. |
Sources/CarPlay/Templates/Entities/CarPlayEntitiesListTemplate.swift
Outdated
Show resolved
Hide resolved
Sources/App/Settings/CarPlay/CarPlayConfigurationViewModel.swift
Outdated
Show resolved
Hide resolved
Keep a per-server cache of the latest quick-access HACachedStates and replay them when the quick access template is (re)built or appears. Adds latestQuickAccessStatesPerServer, updates it on state subscription callbacks, filters out entries for removed servers, and replays cached states via replayQuickAccessStates() to avoid empty/incorrect UI when templates are recreated or brought back on screen.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 15 out of 15 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (1)
Sources/CarPlay/Templates/Areas/CarPlayAreasViewModel.swift:84
accessorySymbolNameis passed as the raw string "chevron.right" here, while other CarPlay condensed lists useSFSymbol.chevronRight.rawValue. Using the typed SF Symbol constant avoids typos and keeps symbol usage consistent across templates.
CPListImageRowItemCondensedElement(
image: MaterialDesignIcons(
serversideValueNamed: area.icon ?? "mdi:circle"
).carPlayCondensedElementImage(color: .haPrimary),
imageShape: .circular,
title: area.name,
subtitle: nil,
accessorySymbolName: "chevron.right"
)
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #4465 +/- ##
=======================================
Coverage ? 42.24%
=======================================
Files ? 268
Lines ? 15759
Branches ? 0
=======================================
Hits ? 6657
Misses ? 9102
Partials ? 0 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Summary
Screenshots
Link to pull request in Documentation repository
Documentation: home-assistant/companion.home-assistant#
Any other notes