mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-08 16:49:58 +00:00
Fix receiver selector manager event listeners
This commit is contained in:
@@ -590,6 +590,46 @@ async function onConnectShim (port: browser.runtime.Port) {
|
||||
? ReceiverSelectorManagerType.NativeMac
|
||||
: ReceiverSelectorManagerType.Popup);
|
||||
|
||||
function onReceiverSelectorManagerSelected (
|
||||
ev: ReceiverSelectorSelectedEvent) {
|
||||
|
||||
port.postMessage({
|
||||
subject: "shim:/selectReceiverEnd"
|
||||
, data: {
|
||||
receiver: ev.detail.receiver
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function onReceiverSelectorManagerCancelled () {
|
||||
port.postMessage({
|
||||
subject: "shim:/selectReceiverCancelled"
|
||||
});
|
||||
}
|
||||
|
||||
function onReceiverSelectorManagerError () {
|
||||
// TODO: Report errors properly
|
||||
port.postMessage({
|
||||
subject: "shim:/selectReceiverCancelled"
|
||||
});
|
||||
}
|
||||
|
||||
receiverSelectorManager.addEventListener("selected"
|
||||
, onReceiverSelectorManagerSelected);
|
||||
receiverSelectorManager.addEventListener("cancelled"
|
||||
, onReceiverSelectorManagerCancelled);
|
||||
receiverSelectorManager.addEventListener("error"
|
||||
, onReceiverSelectorManagerError);
|
||||
|
||||
port.onDisconnect.addListener(() => {
|
||||
receiverSelectorManager.removeEventListener("selected"
|
||||
, onReceiverSelectorManagerSelected);
|
||||
receiverSelectorManager.removeEventListener("cancelled"
|
||||
, onReceiverSelectorManagerCancelled);
|
||||
receiverSelectorManager.removeEventListener("error"
|
||||
, onReceiverSelectorManagerError);
|
||||
});
|
||||
|
||||
|
||||
const tabId = port.sender.tab.id;
|
||||
const frameId = port.sender.frameId;
|
||||
@@ -668,31 +708,6 @@ async function onConnectShim (port: browser.runtime.Port) {
|
||||
receiverSelectorManager.open(
|
||||
Array.from(statusBridgeReceivers.values())
|
||||
, message.data.defaultMediaType);
|
||||
|
||||
receiverSelectorManager.addEventListener("selected"
|
||||
, (ev: ReceiverSelectorSelectedEvent) => {
|
||||
|
||||
port.postMessage({
|
||||
subject: "shim:/selectReceiverEnd"
|
||||
, data: {
|
||||
receiver: ev.detail.receiver
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
receiverSelectorManager.addEventListener("cancelled", () => {
|
||||
port.postMessage({
|
||||
subject: "shim:/selectReceiverCancelled"
|
||||
});
|
||||
});
|
||||
|
||||
receiverSelectorManager.addEventListener("error", () => {
|
||||
// TODO: Report errors properly
|
||||
port.postMessage({
|
||||
subject: "shim:/selectReceiverCancelled"
|
||||
});
|
||||
});
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,10 +23,10 @@ export function getReceiverSelectorManager (
|
||||
|
||||
switch (type) {
|
||||
case ReceiverSelectorManagerType.Popup: {
|
||||
return PopupReceiverSelectorManager;
|
||||
return new PopupReceiverSelectorManager();
|
||||
}
|
||||
case ReceiverSelectorManagerType.NativeMac: {
|
||||
return NativeMacReceiverSelectorManager;
|
||||
return new NativeMacReceiverSelectorManager();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ import { NativeReceiverSelectorCloseMessage
|
||||
const _ = browser.i18n.getMessage;
|
||||
|
||||
|
||||
class NativeMacReceiverSelectorManager
|
||||
export default class NativeMacReceiverSelectorManager
|
||||
extends EventTarget
|
||||
implements ReceiverSelectorManager {
|
||||
|
||||
@@ -105,6 +105,3 @@ class NativeMacReceiverSelectorManager
|
||||
this.wasReceiverSelected = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Singleton instance
|
||||
export default new NativeMacReceiverSelectorManager();
|
||||
|
||||
@@ -7,7 +7,7 @@ import { getWindowCenteredProps } from "../../lib/utils";
|
||||
import { Message, Receiver } from "../../types";
|
||||
|
||||
|
||||
class PopupReceiverSelectorManager
|
||||
export default class PopupReceiverSelectorManager
|
||||
extends EventTarget
|
||||
implements ReceiverSelectorManager {
|
||||
|
||||
@@ -158,6 +158,3 @@ class PopupReceiverSelectorManager
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Singleton instance
|
||||
export default new PopupReceiverSelectorManager();
|
||||
|
||||
Reference in New Issue
Block a user