From 5f96e6ef29c82ef23f3b3768ae1f3a48c35536e6 Mon Sep 17 00:00:00 2001 From: hensm Date: Mon, 9 May 2022 23:45:20 +0100 Subject: [PATCH] Add context menu to receiver selector + other improvements --- CONTRIBUTING.md | 8 + ext/src/_locales/en/messages.json | 27 +- ext/src/background/ReceiverSelector.ts | 4 +- ext/src/background/menus.ts | 20 +- ext/src/background/selectorManager.ts | 9 +- ext/src/cast/contentBridge.ts | 9 +- ext/src/ui/popup/index.tsx | 625 +++++++++++++------------ ext/src/ui/popup/styles/index.css | 20 +- ext/src/ui/utils.tsx | 37 ++ 9 files changed, 444 insertions(+), 315 deletions(-) create mode 100644 ext/src/ui/utils.tsx diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 34c91ab..a821746 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -41,11 +41,15 @@ Missing/outdated strings: - `optionsBridgeCompatible` - `optionsBridgeLikelyCompatible` - `optionsBridgeIncompatible` + - `popupCastMenuTitle` + - `popupStopMenuTitle` - `es` - `popupWhitelistNotWhitelisted` - `popupWhitelistAddToWhitelist` + - `popupCastMenuTitle` + - `popupStopMenuTitle` - `nl` @@ -63,10 +67,14 @@ Missing/outdated strings: - `optionsBridgeCompatible` - `optionsBridgeLikelyCompatible` - `optionsBridgeIncompatible` + - `popupCastMenuTitle` + - `popupStopMenuTitle` - `no` - `popupWhitelistNotWhitelisted` - `popupWhitelistAddToWhitelist` + - `popupCastMenuTitle` + - `popupStopMenuTitle` ### NSIS Installer Localization diff --git a/ext/src/_locales/en/messages.json b/ext/src/_locales/en/messages.json index c088243..c61c4b4 100755 --- a/ext/src/_locales/en/messages.json +++ b/ext/src/_locales/en/messages.json @@ -73,9 +73,30 @@ } } }, - "popupStopButtonTitle": { - "message": "Stop", - "description": "Alternate action button text displayed instead of popupCastButtonTitle." + + "popupCastMenuTitle": { + "message": "Cast to \"$deviceName$\"", + "description": "Menu text for cast item in context menu for receivers in receiver selector.", + "placeholders": { + "deviceName": { + "content": "$1", + "example": "Living Room TV" + } + } + }, + "popupStopMenuTitle": { + "message": "Stop \"$appName$\" on \"$deviceName$\"", + "description": "Menu text for stop item in context menu for receivers in receiver selector.", + "placeholders": { + "appName": { + "content": "$1", + "example": "Netflix" + }, + "deviceName": { + "content": "$2", + "example": "Living Room TV" + } + } }, "contextCast": { diff --git a/ext/src/background/ReceiverSelector.ts b/ext/src/background/ReceiverSelector.ts index acc4ce2..2d9314f 100644 --- a/ext/src/background/ReceiverSelector.ts +++ b/ext/src/background/ReceiverSelector.ts @@ -26,7 +26,6 @@ export interface ReceiverSelectionCast { actionType: ReceiverSelectionActionType.Cast; receiverDevice: ReceiverDevice; mediaType: ReceiverSelectorMediaType; - filePath?: string; } export interface ReceiverSelectionStop { actionType: ReceiverSelectionActionType.Stop; @@ -39,6 +38,7 @@ interface ReceiverSelectorEvents { error: string; cancelled: void; stop: ReceiverSelectionStop; + close: void; } /** * Manages the receiver selector popup window and communication with the @@ -268,6 +268,8 @@ export default class ReceiverSelector extends TypedEventTarget(); @@ -42,7 +45,9 @@ export async function initMenus() { // Global "Cast..." menu item menuIdCast = browser.menus.create({ contexts: ["browser_action", "page", "tools_menu"], - title: _("contextCast") + title: _("contextCast"), + documentUrlPatterns: ["http://*/*", "https://*/*"], + icons: { "16": "icons/icon.svg" } // browser_action context }); //