summaryrefslogtreecommitdiffhomepage
path: root/gui/src/main
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2021-11-12 16:23:15 +0100
committerOskar Nyberg <oskar@mullvad.net>2022-03-14 13:58:44 +0100
commita4a064bdbadaa3c77a63b2deac06d2948246e808 (patch)
tree3c164926885b74f2318d4d0daf3f135741c56d68 /gui/src/main
parent61cacab42463bd0913905c31e5da4a69a4c359c7 (diff)
downloadmullvadvpn-a4a064bdbadaa3c77a63b2deac06d2948246e808.tar.xz
mullvadvpn-a4a064bdbadaa3c77a63b2deac06d2948246e808.zip
Switch to using device removal daemon event for device list updates
Diffstat (limited to 'gui/src/main')
-rw-r--r--gui/src/main/daemon-rpc.ts10
-rw-r--r--gui/src/main/index.ts7
2 files changed, 17 insertions, 0 deletions
diff --git a/gui/src/main/daemon-rpc.ts b/gui/src/main/daemon-rpc.ts
index cae04be5ad..8eace70f8b 100644
--- a/gui/src/main/daemon-rpc.ts
+++ b/gui/src/main/daemon-rpc.ts
@@ -1155,11 +1155,17 @@ function convertFromDaemonEvent(data: grpcTypes.DaemonEvent): DaemonEvent {
return { deviceConfig: convertFromDeviceEvent(deviceConfig) };
}
+ const deviceRemoval = data.getRemoveDevice();
+ if (deviceRemoval !== undefined) {
+ return { deviceRemoval: convertFromDeviceRemoval(deviceRemoval) };
+ }
+
const versionInfo = data.getVersionInfo();
if (versionInfo !== undefined) {
return { appVersionInfo: versionInfo.toObject() };
}
+ // Handle unknown daemon events
const keys = Object.entries(data.toObject())
.filter(([, value]) => value !== undefined)
.map(([key]) => key);
@@ -1374,6 +1380,10 @@ function convertFromDeviceConfig(deviceConfig?: grpcTypes.DeviceConfig): DeviceC
);
}
+function convertFromDeviceRemoval(deviceRemoval: grpcTypes.RemoveDeviceEvent): Array<IDevice> {
+ return deviceRemoval.getNewDeviceListList().map((device) => device.toObject());
+}
+
function ensureExists<T>(value: T | undefined, errorMessage: string): T {
if (value) {
return value;
diff --git a/gui/src/main/index.ts b/gui/src/main/index.ts
index c41a8fd804..d2264242cc 100644
--- a/gui/src/main/index.ts
+++ b/gui/src/main/index.ts
@@ -781,6 +781,13 @@ class ApplicationMain {
this.setLatestVersion(daemonEvent.appVersionInfo);
} else if ('deviceConfig' in daemonEvent) {
this.setDeviceConfig(daemonEvent.deviceConfig);
+ } else if ('deviceRemoval' in daemonEvent) {
+ if (this.windowController) {
+ IpcMainEventChannel.account.notifyDevices(
+ this.windowController.webContents,
+ daemonEvent.deviceRemoval,
+ );
+ }
}
},
(error: Error) => {