_device_uri = self.device.current_track_uri or ""
self.set_current_media(uri=_device_uri, clear_all=True)
- if "spotify" in _device_uri:
+ # Let player controller determine active source, only override for known external sources
+ if _device_uri and _device_uri.startswith(self.mass.streams.base_url):
+ # MA stream - let controller determine source
+ self._attr_active_source = None
+ elif "spotify" in _device_uri:
+ # Spotify or Spotify Connect
self._attr_active_source = "spotify"
- elif _device_uri.startswith("http"):
+ elif _device_uri:
+ # External HTTP source
self._attr_active_source = "http"
else:
- # TODO: extend this list with other possible sources
+ # No URI - idle or unknown
self._attr_active_source = None
+ # TODO: extend this list with other possible sources
if self.device.media_position:
# only update elapsed_time if the device actually reports it
self._attr_elapsed_time = float(self.device.media_position)