Move media type checking to receiver selectors

This commit is contained in:
hensm
2019-08-16 21:48:42 +01:00
parent 14d3b2c833
commit be7544c49a
3 changed files with 18 additions and 9 deletions

View File

@@ -119,6 +119,12 @@ class ViewController : NSViewController {
receiverView.receiverViewDelegate = self receiverView.receiverViewDelegate = self
if UInt(initData!.availableMediaTypes) == 0
|| (initData!.availableMediaTypes
& initData!.defaultMediaType.rawValue) == 0 {
receiverView.isEnabled = false
}
self.receiverViews.append(receiverView) self.receiverViews.append(receiverView)
@@ -146,6 +152,12 @@ extension ViewController : NSMenuDelegate {
let mediaType = MediaType( let mediaType = MediaType(
rawValue: self.mediaTypePopUpButton.selectedItem!.tag)! rawValue: self.mediaTypePopUpButton.selectedItem!.tag)!
if self.initData.availableMediaTypes & mediaType.rawValue != 0 {
for receiverView in self.receiverViews {
receiverView.isEnabled = true
}
}
let fileItem = self.mediaTypePopUpButton let fileItem = self.mediaTypePopUpButton
.item(at: self.mediaTypePopUpButton.indexOfItem( .item(at: self.mediaTypePopUpButton.indexOfItem(
withTag: MediaType.file.rawValue))! withTag: MediaType.file.rawValue))!

View File

@@ -97,14 +97,6 @@ async function getSelection (
availableMediaTypes &= ~ReceiverSelectorMediaType.File; availableMediaTypes &= ~ReceiverSelectorMediaType.File;
} }
if (!availableMediaTypes || availableMediaTypes
=== ReceiverSelectorMediaType.File) {
console.error("fx_cast (Debug): No available media types");
resolve(null);
return;
}
// Ensure status manager is initialized // Ensure status manager is initialized
await StatusManager.init(); await StatusManager.init();

View File

@@ -109,6 +109,9 @@ class PopupApp extends Component<{}, PopupAppState> {
} }
const canCast = !!(this.state.availableMediaTypes
&& this.state.availableMediaTypes & this.state.mediaType);
return ( return (
<div> <div>
<div className="media-select"> <div className="media-select">
@@ -150,6 +153,7 @@ class PopupApp extends Component<{}, PopupAppState> {
<ReceiverEntry receiver={ receiver } <ReceiverEntry receiver={ receiver }
onCast={ this.onCast } onCast={ this.onCast }
isLoading={ this.state.isLoading } isLoading={ this.state.isLoading }
canCast={ canCast }
key={ i }/> ))} key={ i }/> ))}
</ul> </ul>
</div> </div>
@@ -208,6 +212,7 @@ class PopupApp extends Component<{}, PopupAppState> {
interface ReceiverEntryProps { interface ReceiverEntryProps {
receiver: Receiver; receiver: Receiver;
isLoading: boolean; isLoading: boolean;
canCast: boolean;
onCast (receiver: Receiver): void; onCast (receiver: Receiver): void;
} }
@@ -244,7 +249,7 @@ class ReceiverEntry extends Component<ReceiverEntryProps, ReceiverEntryState> {
</div> </div>
<button className="receiver-connect" <button className="receiver-connect"
onClick={ this.handleCast } onClick={ this.handleCast }
disabled={this.props.isLoading}> disabled={this.props.isLoading || !this.props.canCast}>
{ this.state.isLoading { this.state.isLoading
? _("popupCastingButtonTitle" ? _("popupCastingButtonTitle"
, (this.state.isLoading , (this.state.isLoading