Changeset View
Changeset View
Standalone View
Standalone View
extension/extension-kdeconnect.js
Show First 20 Lines • Show All 41 Lines • ▼ Show 20 Line(s) | |||||
42 | addCallback("kdeconnect", "deviceAdded", function(message) { | 42 | addCallback("kdeconnect", "deviceAdded", function(message) { | ||
43 | let deviceId = message.id; | 43 | let deviceId = message.id; | ||
44 | let name = message.name; | 44 | let name = message.name; | ||
45 | let type = message.type; | 45 | let type = message.type; | ||
46 | 46 | | |||
47 | let menuEntryTitle = chrome.i18n.getMessage("kdeconnect_open_device", name); | 47 | let menuEntryTitle = chrome.i18n.getMessage("kdeconnect_open_device", name); | ||
48 | let menuId = kdeConnectMenuIdPrefix + deviceId; | 48 | let menuId = kdeConnectMenuIdPrefix + deviceId; | ||
49 | 49 | | |||
50 | chrome.contextMenus.create({ | 50 | let props = { | ||
51 | id: menuId, | 51 | id: menuId, | ||
52 | contexts: ["link", "page", "image", "audio", "video"], | 52 | contexts: ["link", "page", "image", "audio", "video"], | ||
53 | title: menuEntryTitle, | 53 | title: menuEntryTitle, | ||
54 | }); | 54 | }; | ||
55 | | ||||
56 | if (IS_FIREFOX) { | ||||
57 | let iconName = ""; | ||||
58 | switch (type) { | ||||
59 | case "smartphone": | ||||
60 | case "phone": | ||||
61 | iconName = "smartphone-symbolic"; | ||||
62 | break; | ||||
63 | case "tablet": | ||||
64 | iconName = "tablet-symbolic"; | ||||
65 | break; | ||||
66 | case "desktop": | ||||
67 | case "tv": // at this size you can't really tell desktop monitor icon from a TV | ||||
68 | iconName = "computer-symbolic"; | ||||
69 | break; | ||||
70 | case "laptop": | ||||
71 | iconName = "computer-laptop-symbolic"; | ||||
72 | break; | ||||
73 | } | ||||
74 | | ||||
75 | if (iconName) { | ||||
76 | props.icons = { | ||||
77 | "16": "icons/" + iconName + ".svg" | ||||
78 | }; | ||||
79 | } | ||||
80 | } | ||||
81 | | ||||
82 | chrome.contextMenus.create(props); | ||||
55 | 83 | | |||
56 | kdeConnectDevices[deviceId] = { | 84 | kdeConnectDevices[deviceId] = { | ||
57 | name, type | 85 | name, type | ||
58 | }; | 86 | }; | ||
59 | }); | 87 | }); | ||
60 | 88 | | |||
61 | addCallback("kdeconnect", "deviceRemoved", function(message) { | 89 | addCallback("kdeconnect", "deviceRemoved", function(message) { | ||
62 | let deviceId = message.id; | 90 | let deviceId = message.id; | ||
63 | 91 | | |||
64 | if (!kdeConnectDevices[deviceId]) { | 92 | if (!kdeConnectDevices[deviceId]) { | ||
65 | return; | 93 | return; | ||
66 | } | 94 | } | ||
67 | 95 | | |||
68 | delete kdeConnectDevices[deviceId]; | 96 | delete kdeConnectDevices[deviceId]; | ||
69 | chrome.contextMenus.remove(kdeConnectMenuIdPrefix + deviceId); | 97 | chrome.contextMenus.remove(kdeConnectMenuIdPrefix + deviceId); | ||
70 | }); | 98 | }); |