Fix crash in NotificationFlag.flag_names when flags is None

flag_names() crashes with AttributeError when NotificationFlag returns
a value whose .name attribute is None. This occurs with certain receiver
firmware versions (Nano C52F, Unifying C52B, Bolt C548).

Return an empty list instead, consistent with the List[str] return type.

Fixes #3184
This commit is contained in:
avercelli 2026-04-13 16:32:45 +02:00
parent 99a403c554
commit a4539cf765
1 changed files with 2 additions and 0 deletions

View File

@ -91,6 +91,8 @@ class NotificationFlag(IntFlag):
@classmethod
def flag_names(cls, flags) -> List[str]:
"""Extract the names of the flags from the integer."""
if flags is None or flags.name is None:
return []
return flags.name.replace("_", " ").lower().split("|")
NUMPAD_NUMERICAL_KEYS = 0x800000