From b728b9efc46aa75f38d002eeb2cfd522ef83e4c1 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 31 Jan 2024 04:44:21 -0500 Subject: [PATCH] Allow mobile apps to provide QR code functionality (#19570) * Add QR code scanner to external bus * Make `hasQRScanner` a version number --- src/external_app/external_messaging.ts | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/external_app/external_messaging.ts b/src/external_app/external_messaging.ts index 3021aba742..8c346738b7 100644 --- a/src/external_app/external_messaging.ts +++ b/src/external_app/external_messaging.ts @@ -35,6 +35,13 @@ interface EMOutgoingMessageConfigGet extends EMMessage { type: "config/get"; } +interface EMOutgoingMessageScanQRCode extends EMMessage { + type: "qr_code/scan"; + title: string; + description: string; + alternative_option_label?: string; +} + interface EMOutgoingMessageMatterCommission extends EMMessage { type: "matter/commission"; } @@ -48,6 +55,13 @@ type EMOutgoingMessageWithAnswer = { request: EMOutgoingMessageConfigGet; response: ExternalConfig; }; + "qr_code/scan": { + request: EMOutgoingMessageScanQRCode; + response: + | EMIncomingMessageQRCodeResponseCanceled + | EMIncomingMessageQRCodeResponseAlternativeOptions + | EMIncomingMessageQRCodeResponseScanResult; + }; }; interface EMOutgoingMessageExoplayerPlayHLS extends EMMessage { @@ -158,6 +172,19 @@ interface EMIncomingMessageShowAutomationEditor { }; } +export interface EMIncomingMessageQRCodeResponseCanceled { + action: "canceled"; +} + +export interface EMIncomingMessageQRCodeResponseAlternativeOptions { + action: "alternative_options"; +} + +export interface EMIncomingMessageQRCodeResponseScanResult { + action: "scan_result"; + result: string; +} + export type EMIncomingMessageCommands = | EMIncomingMessageRestart | EMIncomingMessageShowNotifications @@ -180,6 +207,7 @@ export interface ExternalConfig { canCommissionMatter: boolean; canImportThreadCredentials: boolean; hasAssist: boolean; + hasQRScanner: number; } export class ExternalMessaging {