Re-use open popup when requesting a new session

This commit is contained in:
hensm
2018-12-13 21:01:42 +00:00
parent 414669df51
commit 95bbe777bc
3 changed files with 72 additions and 15 deletions

View File

@@ -126,12 +126,21 @@ cast.requestSession = (
return;
}
// Already requesting session
if (state.sessionRequestInProgress) {
errorCallback(new Error_(ErrorCode.INVALID_PARAMETER
, "Session request already in progress."));
return;
}
// No available receivers
if (!state.receiverList.length) {
errorCallback(new Error_(ErrorCode.RECEIVER_UNAVAILABLE));
return;
}
state.sessionRequestInProgress = true;
sessionSuccessCallback = successCallback;
sessionErrorCallback = errorCallback;
@@ -218,6 +227,7 @@ onMessage(message => {
});
state.apiConfig.sessionListener(session);
state.sessionRequestInProgress = false;
sessionSuccessCallback(session, message.data.selectedMedia);
}
];
@@ -256,6 +266,17 @@ onMessage(message => {
break;
};
/**
* Popup closed before session established.
*/
case "shim:popupClosed": {
if (state.sessionRequestInProgress) {
state.sessionRequestInProgress = false;
sessionErrorCallback(new Error_(ErrorCode.CANCEL));
}
break;
}
}
});