mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 01:08:12 +00:00
Enforce MediaPlayerEntityFeature (#82462)
This commit is contained in:
parent
a225fc456f
commit
6f05a74686
@ -775,10 +775,10 @@ class BluesoundPlayer(MediaPlayerEntity):
|
||||
return None
|
||||
|
||||
@property
|
||||
def supported_features(self) -> MediaPlayerEntityFeature | int:
|
||||
def supported_features(self) -> MediaPlayerEntityFeature:
|
||||
"""Flag of media commands that are supported."""
|
||||
if self._status is None:
|
||||
return 0
|
||||
return MediaPlayerEntityFeature(0)
|
||||
|
||||
if self.is_grouped and not self.is_master:
|
||||
return (
|
||||
|
@ -478,15 +478,15 @@ class DlnaDmrEntity(MediaPlayerEntity):
|
||||
return MediaPlayerState.IDLE
|
||||
|
||||
@property
|
||||
def supported_features(self) -> MediaPlayerEntityFeature | int:
|
||||
def supported_features(self) -> MediaPlayerEntityFeature:
|
||||
"""Flag media player features that are supported at this moment.
|
||||
|
||||
Supported features may change as the device enters different states.
|
||||
"""
|
||||
if not self._device:
|
||||
return 0
|
||||
return MediaPlayerEntityFeature(0)
|
||||
|
||||
supported_features = 0
|
||||
supported_features = MediaPlayerEntityFeature(0)
|
||||
|
||||
if self._device.has_volume_level:
|
||||
supported_features |= MediaPlayerEntityFeature.VOLUME_SET
|
||||
|
@ -284,11 +284,11 @@ class EmbyDevice(MediaPlayerEntity):
|
||||
return self.device.media_album_artist
|
||||
|
||||
@property
|
||||
def supported_features(self) -> MediaPlayerEntityFeature | int:
|
||||
def supported_features(self) -> MediaPlayerEntityFeature:
|
||||
"""Flag media player features that are supported."""
|
||||
if self.supports_remote_control:
|
||||
return SUPPORT_EMBY
|
||||
return 0
|
||||
return MediaPlayerEntityFeature(0)
|
||||
|
||||
async def async_media_play(self) -> None:
|
||||
"""Play media."""
|
||||
|
@ -405,7 +405,7 @@ class MediaPlayerGroup(MediaPlayerEntity):
|
||||
else:
|
||||
self._state = MediaPlayerState.OFF
|
||||
|
||||
supported_features = 0
|
||||
supported_features = MediaPlayerEntityFeature(0)
|
||||
if self._features[KEY_CLEAR_PLAYLIST]:
|
||||
supported_features |= MediaPlayerEntityFeature.CLEAR_PLAYLIST
|
||||
if self._features[KEY_TRACKS]:
|
||||
|
@ -80,9 +80,9 @@ class HomeKitTelevision(HomeKitEntity, MediaPlayerEntity):
|
||||
]
|
||||
|
||||
@property
|
||||
def supported_features(self) -> MediaPlayerEntityFeature | int:
|
||||
def supported_features(self) -> MediaPlayerEntityFeature:
|
||||
"""Flag media player features that are supported."""
|
||||
features = 0
|
||||
features = MediaPlayerEntityFeature(0)
|
||||
|
||||
if self.service.has(CharacteristicsTypes.ACTIVE_IDENTIFIER):
|
||||
features |= MediaPlayerEntityFeature.SELECT_SOURCE
|
||||
|
@ -198,11 +198,11 @@ class JellyfinMediaPlayer(JellyfinEntity, MediaPlayerEntity):
|
||||
return get_artwork_url(self.coordinator.api_client, self.now_playing, 150)
|
||||
|
||||
@property
|
||||
def supported_features(self) -> MediaPlayerEntityFeature | int:
|
||||
def supported_features(self) -> MediaPlayerEntityFeature:
|
||||
"""Flag media player features that are supported."""
|
||||
commands: list[str] = self.capabilities.get("SupportedCommands", [])
|
||||
controllable = self.capabilities.get("SupportsMediaControl", False)
|
||||
features = 0
|
||||
features = MediaPlayerEntityFeature(0)
|
||||
|
||||
if controllable:
|
||||
features |= (
|
||||
|
@ -492,7 +492,7 @@ class MediaPlayerEntity(Entity):
|
||||
_attr_source_list: list[str] | None = None
|
||||
_attr_source: str | None = None
|
||||
_attr_state: MediaPlayerState | str | None = None
|
||||
_attr_supported_features: MediaPlayerEntityFeature | int = 0
|
||||
_attr_supported_features: MediaPlayerEntityFeature = MediaPlayerEntityFeature(0)
|
||||
_attr_volume_level: float | None = None
|
||||
|
||||
# Implement these for your media player
|
||||
@ -692,7 +692,7 @@ class MediaPlayerEntity(Entity):
|
||||
return self._attr_group_members
|
||||
|
||||
@property
|
||||
def supported_features(self) -> MediaPlayerEntityFeature | int:
|
||||
def supported_features(self) -> MediaPlayerEntityFeature:
|
||||
"""Flag media player features that are supported."""
|
||||
return self._attr_supported_features
|
||||
|
||||
|
@ -338,10 +338,10 @@ class MpdDevice(MediaPlayerEntity):
|
||||
return None
|
||||
|
||||
@property
|
||||
def supported_features(self) -> MediaPlayerEntityFeature | int:
|
||||
def supported_features(self) -> MediaPlayerEntityFeature:
|
||||
"""Flag media player features that are supported."""
|
||||
if self._status is None:
|
||||
return 0
|
||||
return MediaPlayerEntityFeature(0)
|
||||
|
||||
supported = SUPPORT_MPD
|
||||
if "volume" in self._status:
|
||||
|
@ -453,11 +453,11 @@ class UniversalMediaPlayer(MediaPlayerEntity):
|
||||
return self._override_or_child_attr(ATTR_MEDIA_SHUFFLE)
|
||||
|
||||
@property
|
||||
def supported_features(self) -> MediaPlayerEntityFeature | int:
|
||||
def supported_features(self) -> MediaPlayerEntityFeature:
|
||||
"""Flag media player features that are supported."""
|
||||
flags: MediaPlayerEntityFeature | int = (
|
||||
self._child_attr(ATTR_SUPPORTED_FEATURES) or 0
|
||||
)
|
||||
flags: MediaPlayerEntityFeature = self._child_attr(
|
||||
ATTR_SUPPORTED_FEATURES
|
||||
) or MediaPlayerEntityFeature(0)
|
||||
|
||||
if SERVICE_TURN_ON in self._cmds:
|
||||
flags |= MediaPlayerEntityFeature.TURN_ON
|
||||
|
@ -137,7 +137,7 @@ class LgWebOSMediaPlayerEntity(RestoreEntity, MediaPlayerEntity):
|
||||
self._current_source = None
|
||||
self._source_list: dict = {}
|
||||
|
||||
self._supported_features: MediaPlayerEntityFeature | int = 0
|
||||
self._supported_features = MediaPlayerEntityFeature(0)
|
||||
self._update_states()
|
||||
|
||||
async def async_added_to_hass(self) -> None:
|
||||
@ -157,7 +157,9 @@ class LgWebOSMediaPlayerEntity(RestoreEntity, MediaPlayerEntity):
|
||||
and (state := await self.async_get_last_state()) is not None
|
||||
):
|
||||
self._supported_features = (
|
||||
state.attributes.get(ATTR_SUPPORTED_FEATURES, 0)
|
||||
state.attributes.get(
|
||||
ATTR_SUPPORTED_FEATURES, MediaPlayerEntityFeature(0)
|
||||
)
|
||||
& ~MediaPlayerEntityFeature.TURN_ON
|
||||
)
|
||||
|
||||
@ -314,7 +316,7 @@ class LgWebOSMediaPlayerEntity(RestoreEntity, MediaPlayerEntity):
|
||||
await self._client.connect()
|
||||
|
||||
@property
|
||||
def supported_features(self) -> MediaPlayerEntityFeature | int:
|
||||
def supported_features(self) -> MediaPlayerEntityFeature:
|
||||
"""Flag media player features that are supported."""
|
||||
if self._wrapper.turn_on:
|
||||
return self._supported_features | MediaPlayerEntityFeature.TURN_ON
|
||||
|
@ -1790,7 +1790,7 @@ _INHERITANCE_MATCH: dict[str, list[ClassTypeHintMatch]] = {
|
||||
),
|
||||
TypeHintMatch(
|
||||
function_name="supported_features",
|
||||
return_type=["MediaPlayerEntityFeature", "int"],
|
||||
return_type="MediaPlayerEntityFeature",
|
||||
),
|
||||
TypeHintMatch(
|
||||
function_name="turn_on",
|
||||
|
Loading…
x
Reference in New Issue
Block a user