mirror of
https://gitlab.com/futo-org/fcast.git
synced 2025-09-01 12:03:06 +00:00
Receivers: Reworked network interface UI
This commit is contained in:
parent
ed89b61cab
commit
28a617daa7
15 changed files with 491 additions and 246 deletions
|
@ -206,30 +206,30 @@ export class Main {
|
|||
ipcMain.on('send-volume-update', (event: IpcMainEvent, value: VolumeUpdateMessage) => {
|
||||
l.send(Opcode.VolumeUpdate, value);
|
||||
});
|
||||
});
|
||||
|
||||
ipcMain.on('send-download-request', async () => {
|
||||
if (!Updater.isDownloading) {
|
||||
try {
|
||||
await Updater.downloadUpdate();
|
||||
Main.mainWindow.webContents.send("download-complete");
|
||||
} catch (err) {
|
||||
await dialog.showMessageBox({
|
||||
type: 'error',
|
||||
title: 'Failed to download update',
|
||||
message: err,
|
||||
buttons: ['OK'],
|
||||
defaultId: 0
|
||||
});
|
||||
ipcMain.on('send-download-request', async () => {
|
||||
if (!Updater.isDownloading) {
|
||||
try {
|
||||
await Updater.downloadUpdate();
|
||||
Main.mainWindow.webContents.send("download-complete");
|
||||
} catch (err) {
|
||||
await dialog.showMessageBox({
|
||||
type: 'error',
|
||||
title: 'Failed to download update',
|
||||
message: err,
|
||||
buttons: ['OK'],
|
||||
defaultId: 0
|
||||
});
|
||||
|
||||
Main.logger.error('Failed to download update:', err);
|
||||
Main.mainWindow.webContents.send("download-failed");
|
||||
}
|
||||
Main.logger.error('Failed to download update:', err);
|
||||
Main.mainWindow.webContents.send("download-failed");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
ipcMain.on('send-restart-request', async () => {
|
||||
Updater.restart();
|
||||
});
|
||||
ipcMain.on('send-restart-request', async () => {
|
||||
Updater.restart();
|
||||
});
|
||||
|
||||
ipcMain.handle('updater-progress', async () => { return Updater.updateProgress; });
|
||||
|
@ -302,16 +302,27 @@ export class Main {
|
|||
}
|
||||
});
|
||||
|
||||
let networkStateChangeListener = null;
|
||||
Main.mainWindow.loadFile(path.join(__dirname, 'main/index.html'));
|
||||
Main.mainWindow.on('closed', () => {
|
||||
Main.mainWindow = null;
|
||||
clearInterval(networkStateChangeListener);
|
||||
});
|
||||
|
||||
Main.mainWindow.maximize();
|
||||
Main.mainWindow.show();
|
||||
|
||||
Main.mainWindow.on('ready-to-show', () => {
|
||||
Main.mainWindow.webContents.send("device-info", {name: os.hostname(), addresses: NetworkService.getAllIPv4Addresses()});
|
||||
NetworkService.networkStateChangeListener(true, (interfaces: any) => {
|
||||
Main.mainWindow.webContents.send("device-info", { name: os.hostname(), interfaces: interfaces });
|
||||
|
||||
networkStateChangeListener = setInterval(() => {
|
||||
NetworkService.networkStateChangeListener(false, (interfaces: any) => {
|
||||
Main.mainWindow.webContents.send("device-info", { name: os.hostname(), interfaces: interfaces });
|
||||
});
|
||||
},
|
||||
NetworkService.networkStateChangeListenerTimeout);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -44,16 +44,30 @@
|
|||
</div>
|
||||
</div>
|
||||
<div id="detail-view" class="card">
|
||||
<div class="non-selectable card-title">Manual connection information</div>
|
||||
<div class="non-selectable card-title">Connection Information</div>
|
||||
<div class="card-title-separator"></div>
|
||||
<div>
|
||||
<div id="ips">IPs</div><br />
|
||||
<div id="ip-ports">Port<br>46899 (TCP), 46898 (WS)</div>
|
||||
|
||||
<div id="connection-information">
|
||||
<div id="scan-to-connect" class="non-selectable">Scan with a FCast sender app</div>
|
||||
<canvas id="qr-code"></canvas>
|
||||
<div id="app-download" class="non-selectable app-download">Need a sender app?<br>Download Grayjay at <a href="https://grayjay.app" target="_blank">https://grayjay.app</a></div>
|
||||
|
||||
<br />
|
||||
<div class="non-selectable card-title">Connection Details</div>
|
||||
<div class="card-title-separator"></div>
|
||||
<div>
|
||||
<div id="ips">
|
||||
<div id="ips-iface-icon"></div>
|
||||
<div id="ips-iface-text"></div>
|
||||
<div id="ips-iface-name"></div>
|
||||
</div><br />
|
||||
<div id="ip-ports">Port<br>46899 (TCP), 46898 (WS)</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="connection-error">
|
||||
<div id="connection-error-icon"></div>
|
||||
<div id="connection-error-text">Device not connected to a network</div>
|
||||
</div>
|
||||
<div id="automatic-discovery" class="non-selectable">Automatic discovery is available via mDNS</div>
|
||||
<canvas id="qr-code"></canvas>
|
||||
<div id="scan-to-connect" class="non-selectable">Scan with a FCast sender app.</div>
|
||||
<div id="app-download" class="non-selectable app-download">Need a sender app?<br>Download Grayjay at <a href="https://grayjay.app" target="_blank">https://grayjay.app</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue