Show app name in receiver selector if known based on app ID

This commit is contained in:
hensm
2020-01-13 23:09:54 +00:00
parent 2154fe4beb
commit a23ae9efa8
11 changed files with 89 additions and 13 deletions

View File

@@ -1,6 +1,7 @@
"use strict";
import bridge from "../../lib/bridge";
import knownApps from "../../lib/knownApps";
import options from "../../lib/options";
import { TypedEventTarget } from "../../lib/typedEvents";
@@ -43,7 +44,8 @@ export default class NativeReceiverSelector
public async open (
receivers: Receiver[]
, defaultMediaType: ReceiverSelectorMediaType
, availableMediaTypes: ReceiverSelectorMediaType): Promise<void> {
, availableMediaTypes: ReceiverSelectorMediaType
, requestedAppId: string): Promise<void> {
this.bridgePort = await bridge.connect();
@@ -94,7 +96,8 @@ export default class NativeReceiverSelector
, i18n_extensionName: _("extensionName")
, i18n_castButtonTitle: _("popupCastButtonTitle")
, i18n_mediaTypeApp: _("popupMediaTypeApp")
, i18n_mediaTypeApp:
knownApps[requestedAppId] ?? _("popupMediaTypeApp")
, i18n_mediaTypeTab: _("popupMediaTypeTab")
, i18n_mediaTypeScreen: _("popupMediaTypeScreen")
, i18n_mediaTypeFile: _("popupMediaTypeFile")

View File

@@ -27,6 +27,7 @@ export default class PopupReceiverSelector
private wasReceiverSelected: boolean = false;
private _isOpen: boolean = false;
private requestedAppId: string;
constructor () {
@@ -59,6 +60,11 @@ export default class PopupReceiverSelector
this.messagePortDisconnected = true;
});
this.messagePort.postMessage({
subject: "popup:/sendRequestedAppId"
, data: { requestedAppId: this.requestedAppId }
});
this.messagePort.postMessage({
subject: "popup:/populateReceiverList"
, data: {
@@ -77,7 +83,10 @@ export default class PopupReceiverSelector
public async open (
receivers: Receiver[]
, defaultMediaType: ReceiverSelectorMediaType
, availableMediaTypes: ReceiverSelectorMediaType): Promise<void> {
, availableMediaTypes: ReceiverSelectorMediaType
, requestedAppId: string): Promise<void> {
this.requestedAppId = requestedAppId;
// If popup already exists, close it
if (this.windowId) {
@@ -124,6 +133,7 @@ export default class PopupReceiverSelector
}
this._isOpen = false;
this.requestedAppId = null;
if (this.messagePort && !this.messagePortDisconnected) {
this.messagePort.disconnect();

View File

@@ -31,7 +31,8 @@ export default interface ReceiverSelector
open (receivers: Receiver[]
, defaultMediaType: ReceiverSelectorMediaType
, availableMediaTypes: ReceiverSelectorMediaType): void;
, availableMediaTypes: ReceiverSelectorMediaType
, requestedAppId: string): void;
close (): void;
}

View File

@@ -54,7 +54,8 @@ async function getSelection (
, availableMediaTypes =
ReceiverSelectorMediaType.Tab
| ReceiverSelectorMediaType.Screen
| ReceiverSelectorMediaType.File)
| ReceiverSelectorMediaType.File
, requestedAppId: string)
: Promise<ReceiverSelection> {
return new Promise(async (resolve, reject) => {
@@ -104,7 +105,8 @@ async function getSelection (
sharedSelector.open(
Array.from(StatusManager.getReceivers())
, defaultMediaType
, availableMediaTypes);
, availableMediaTypes
, requestedAppId);
});
}