fix(config_flow): F-B — neither pairing step is a dead end (t33)
protocol_pair and adb_pair now each offer "continue without pairing" (the new CONF_SKIP_PAIRING form key), so the entry still finishes — in passive mode — instead of stranding the user on a form with no way forward. adb_pair: the ADB host/port live ON this form (the user step is gone), a host typed here is authoritative, the addr the error names is therefore fixable where the error appears, and skip routes through _async_after_pairing. ADB stays enabled on purpose: the manager already degrades to its passive, background-retrying state without a key, and the Pair ADB button (registered for adb-enabled entries) then pairs later without re-adding the integration. protocol_pair: the protocol host lives on this form too and a corrected address restarts the pairing session against it; submitting without a code asks the Shield for a fresh code (_async_restart_protocol_pairing) instead of erroring; skip switches the transport off, because an unpaired protocol client fails auth on its first connect and would only bounce the user into the reauth flow — a fresh dead end. On reauth the skip aborts with reauth_skipped instead of faking a repair. _start_protocol_pairing also returns None now when build_protocol_client does (androidtvremote2 missing) so the step reports protocol_unavailable instead of crashing on a None client in the default CI variant. Verified: uvx --with pytest-asyncio pytest tests -q → 242 passed, 1 skipped; uvx ruff check custom_components tests → clean. The end-to-end skip-path and copy tests land with the t33 UX suite commit.
This commit is contained in:
1 parent
73e886dafe
commit
a6cc56feb4
2 files changed
+174
-46
No files matched your search
@@ -26,6 +26,10 @@ CONF_ADB_PORT = "adb_port"
|
||||
CONF_PROTOCOL_ENABLED = "protocol_enabled"
|
||||
CONF_PROTOCOL_HOST = "protocol_host"
|
||||
CONF_PAIRING_CODE = "pairing_code"
|
||||
# t33 F-B: the "continue without pairing" escape offered on BOTH pairing
|
||||
# steps — the entry still finishes (passive mode) instead of stranding the
|
||||
# user on a form with no way forward.
|
||||
CONF_SKIP_PAIRING = "skip_pairing"
|
||||
DEFAULT_PROTOCOL_API_PORT = 6466
|
||||
DEFAULT_PROTOCOL_PAIR_PORT = 6467
|
||||
|
||||
|
||||
Reference in new issue
Block a user