mirror of
https://github.com/home-assistant/core.git
synced 2025-07-25 06:07:17 +00:00
Add entity picture for gems to Habitica integration (#130827)
This commit is contained in:
parent
2f1c1d66cb
commit
e9eaeedf2b
@ -24,7 +24,7 @@ from homeassistant.helpers.issue_registry import (
|
|||||||
)
|
)
|
||||||
from homeassistant.helpers.typing import StateType
|
from homeassistant.helpers.typing import StateType
|
||||||
|
|
||||||
from .const import DOMAIN, UNIT_TASKS
|
from .const import ASSETS_URL, DOMAIN, UNIT_TASKS
|
||||||
from .entity import HabiticaBase
|
from .entity import HabiticaBase
|
||||||
from .types import HabiticaConfigEntry
|
from .types import HabiticaConfigEntry
|
||||||
from .util import entity_used_in, get_attribute_points, get_attributes_total
|
from .util import entity_used_in, get_attribute_points, get_attributes_total
|
||||||
@ -40,6 +40,7 @@ class HabitipySensorEntityDescription(SensorEntityDescription):
|
|||||||
attributes_fn: (
|
attributes_fn: (
|
||||||
Callable[[dict[str, Any], dict[str, Any]], dict[str, Any] | None] | None
|
Callable[[dict[str, Any], dict[str, Any]], dict[str, Any] | None] | None
|
||||||
) = None
|
) = None
|
||||||
|
entity_picture: str | None = None
|
||||||
|
|
||||||
|
|
||||||
@dataclass(kw_only=True, frozen=True)
|
@dataclass(kw_only=True, frozen=True)
|
||||||
@ -144,6 +145,7 @@ SENSOR_DESCRIPTIONS: tuple[HabitipySensorEntityDescription, ...] = (
|
|||||||
value_fn=lambda user, _: user.get("balance", 0) * 4,
|
value_fn=lambda user, _: user.get("balance", 0) * 4,
|
||||||
suggested_display_precision=0,
|
suggested_display_precision=0,
|
||||||
native_unit_of_measurement="gems",
|
native_unit_of_measurement="gems",
|
||||||
|
entity_picture="shop_gem.png",
|
||||||
),
|
),
|
||||||
HabitipySensorEntityDescription(
|
HabitipySensorEntityDescription(
|
||||||
key=HabitipySensorEntity.TRINKETS,
|
key=HabitipySensorEntity.TRINKETS,
|
||||||
@ -293,6 +295,13 @@ class HabitipySensor(HabiticaBase, SensorEntity):
|
|||||||
return func(self.coordinator.data.user, self.coordinator.content)
|
return func(self.coordinator.data.user, self.coordinator.content)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def entity_picture(self) -> str | None:
|
||||||
|
"""Return the entity picture to use in the frontend, if any."""
|
||||||
|
if entity_picture := self.entity_description.entity_picture:
|
||||||
|
return f"{ASSETS_URL}{entity_picture}"
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
class HabitipyTaskSensor(HabiticaBase, SensorEntity):
|
class HabitipyTaskSensor(HabiticaBase, SensorEntity):
|
||||||
"""A Habitica task sensor."""
|
"""A Habitica task sensor."""
|
||||||
|
@ -405,6 +405,7 @@
|
|||||||
# name: test_sensors[sensor.test_user_gems-state]
|
# name: test_sensors[sensor.test_user_gems-state]
|
||||||
StateSnapshot({
|
StateSnapshot({
|
||||||
'attributes': ReadOnlyDict({
|
'attributes': ReadOnlyDict({
|
||||||
|
'entity_picture': 'https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_gem.png',
|
||||||
'friendly_name': 'test-user Gems',
|
'friendly_name': 'test-user Gems',
|
||||||
'unit_of_measurement': 'gems',
|
'unit_of_measurement': 'gems',
|
||||||
}),
|
}),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user