Fix initiating a session via the receiver selector

This commit is contained in:
hensm
2022-04-16 08:22:39 +01:00
parent 2001a9481b
commit 124a5eb92d

View File

@@ -291,10 +291,18 @@ onMessage(message => {
session.namespaces = status.namespaces; session.namespaces = status.namespaces;
session.receiver.volume = status.volume; session.receiver.volume = status.volume;
/**
* If session created via requestSession, the success
* callback will be set, otherwise the session was created
* by the extension and the session listener should be
* called instead.
*/
if (requestSessionSuccessCallback) { if (requestSessionSuccessCallback) {
requestSessionSuccessCallback(session); requestSessionSuccessCallback(session);
requestSessionSuccessCallback = null; requestSessionSuccessCallback = null;
requestSessionErrorCallback = null; requestSessionErrorCallback = null;
} else {
apiConfig?.sessionListener(session);
} }
break; break;
@@ -421,9 +429,7 @@ onMessage(message => {
break; break;
} }
/** // Popup closed before session established
* Popup closed before session established.
*/
case "cast:selectReceiver/cancelled": { case "cast:selectReceiver/cancelled": {
if (sessionRequest) { if (sessionRequest) {
sessionRequest = null; sessionRequest = null;
@@ -433,5 +439,21 @@ onMessage(message => {
break; break;
} }
// Session request initiated via receiver selector
case "cast:launchApp": {
if (sessionRequest) {
logger.error("Session request already in progress.");
break;
}
if (!apiConfig?.sessionRequest) {
logger.error("Session request not found!");
break;
}
sendSessionRequest(apiConfig.sessionRequest, message.data.receiver);
break;
}
} }
}); });