feat(config): enable both native transports by default (t41)
The transports are ours now, so setup offers them ON rather than OFF: a fresh form renders "Read state over ADB" and "Add the Nvidia Remote Protocol" checked, with the Shield's address pre-filled by discovery (or typed by the user). The schema default, the async_step_user fallback and the _create_entry fallback all carry True, so the checkbox the user sees and the entry that gets written cannot disagree — the t33 F-A lesson applied to the new defaults. Still a choice, not a mandate: * unchecking either toggle routes to the other transport's pairing step; * each pairing step keeps its "continue without pairing" escape (the transport stays off until paired), so a passive entry is still one click away; * no_state_source now means exactly "neither transport enabled" — and a payload that names neither is REJECTED rather than silently enabling both (fail closed; a real submission always carries the schema defaults). * the YAML seed keeps t32 F4's shape rule: an address turns ADB on, a protocol-only block leaves it off, an explicit adb_enabled wins. Verified: 323 passed / 2 skipped, 324 / 1 with androidtvremote2, ruff clean, drift engine exit 0.
This commit is contained in:
1 parent
81f70585cd
commit
fb481c3c14
2 files changed
+114
-8
No files matched your search
@@ -163,13 +163,15 @@ def _user_schema_dict(sel, defaults: dict | None = None) -> dict:
|
||||
|
||||
schema_dict[vol.Optional(CONF_POWER_ENTITY)] = sel["power"]
|
||||
|
||||
schema_dict[vol.Optional(CONF_ADB_ENABLED)] = bool
|
||||
# the code's own fallback for this flag is True (async_step_user) — the
|
||||
# rendered checkbox must agree with it
|
||||
# t41: both transports are OURS and both are ON by default — the user opts
|
||||
# out (or skips pairing) rather than opting in. The rendered checkboxes must
|
||||
# agree with the code's fallbacks in async_step_user / _create_entry, so all
|
||||
# three carry True (t33 F-A: a default the schema cannot see is a bug).
|
||||
schema_dict[vol.Optional(CONF_ADB_ENABLED, default=True)] = bool
|
||||
schema_dict[vol.Optional(CONF_ADB_STORE_APP_INFO, default=True)] = bool
|
||||
schema_dict[_host_field_key(CONF_HOST, host)] = str
|
||||
schema_dict[vol.Optional(CONF_ADB_PORT, default=port)] = int
|
||||
schema_dict[vol.Optional(CONF_PROTOCOL_ENABLED)] = bool
|
||||
schema_dict[vol.Optional(CONF_PROTOCOL_ENABLED, default=True)] = bool
|
||||
return schema_dict
|
||||
|
||||
|
||||
@@ -249,11 +251,11 @@ class NvidiaShieldConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
||||
CONF_RECEIVER_ENTITY: user_input.get(CONF_RECEIVER_ENTITY, ""),
|
||||
CONF_RECEIVER_INPUT: user_input.get(CONF_RECEIVER_INPUT, ""),
|
||||
CONF_POWER_ENTITY: user_input.get(CONF_POWER_ENTITY, ""),
|
||||
CONF_ADB_ENABLED: user_input.get(CONF_ADB_ENABLED, False),
|
||||
CONF_ADB_ENABLED: user_input.get(CONF_ADB_ENABLED, True),
|
||||
CONF_ADB_STORE_APP_INFO: user_input.get(CONF_ADB_STORE_APP_INFO, True),
|
||||
CONF_HOST: str(user_input.get(CONF_HOST) or "").strip(),
|
||||
CONF_ADB_PORT: user_input.get(CONF_ADB_PORT, DEFAULT_ADB_PORT),
|
||||
CONF_PROTOCOL_ENABLED: user_input.get(CONF_PROTOCOL_ENABLED, False),
|
||||
CONF_PROTOCOL_ENABLED: user_input.get(CONF_PROTOCOL_ENABLED, True),
|
||||
}
|
||||
|
||||
# If ADB is enabled, go to pairing step
|
||||
@@ -386,11 +388,11 @@ class NvidiaShieldConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
||||
CONF_RECEIVER_ENTITY: d.get(CONF_RECEIVER_ENTITY, ""),
|
||||
CONF_RECEIVER_INPUT: d.get(CONF_RECEIVER_INPUT, ""),
|
||||
CONF_POWER_ENTITY: d.get(CONF_POWER_ENTITY, ""),
|
||||
CONF_ADB_ENABLED: d.get(CONF_ADB_ENABLED, False),
|
||||
CONF_ADB_ENABLED: d.get(CONF_ADB_ENABLED, True),
|
||||
CONF_ADB_STORE_APP_INFO: d.get(CONF_ADB_STORE_APP_INFO, True),
|
||||
CONF_HOST: d.get(CONF_HOST, ""),
|
||||
CONF_ADB_PORT: d.get(CONF_ADB_PORT, DEFAULT_ADB_PORT),
|
||||
CONF_PROTOCOL_ENABLED: d.get(CONF_PROTOCOL_ENABLED, False),
|
||||
CONF_PROTOCOL_ENABLED: d.get(CONF_PROTOCOL_ENABLED, True),
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
Reference in new issue
Block a user