Changeset View
Changeset View
Standalone View
Standalone View
extension/extension.js
Show First 20 Lines • Show All 135 Lines • ▼ Show 20 Line(s) | 126 | // first activate the tab, this means it's current in its window | |||
---|---|---|---|---|---|
136 | }); | 136 | }); | ||
137 | } | 137 | } | ||
138 | 138 | | |||
139 | // KDE Connect | 139 | // KDE Connect | ||
140 | // ------------------------------------------------------------------------ | 140 | // ------------------------------------------------------------------------ | ||
141 | // | 141 | // | ||
142 | 142 | | |||
143 | var kdeConnectMenuIdPrefix = "kdeconnect_page_"; | 143 | var kdeConnectMenuIdPrefix = "kdeconnect_page_"; | ||
144 | var kdeConnectDevices = []; | ||||
144 | 145 | | |||
145 | chrome.contextMenus.onClicked.addListener(function (info) { | 146 | chrome.contextMenus.onClicked.addListener(function (info) { | ||
146 | if (!info.menuItemId.startsWith(kdeConnectMenuIdPrefix)) { | 147 | if (!info.menuItemId.startsWith(kdeConnectMenuIdPrefix)) { | ||
147 | return; | 148 | return; | ||
148 | } | 149 | } | ||
149 | 150 | | |||
150 | var deviceId = info.menuItemId.substr(kdeConnectMenuIdPrefix.length); | 151 | var deviceId = info.menuItemId.substr(kdeConnectMenuIdPrefix.length); | ||
151 | 152 | | |||
Show All 18 Lines | 167 | addCallback("kdeconnect", "deviceAdded", function(message) { | |||
170 | var menuEntryTitle = chrome.i18n.getMessage("kdeconnect_open_device", name); | 171 | var menuEntryTitle = chrome.i18n.getMessage("kdeconnect_open_device", name); | ||
171 | var menuId = kdeConnectMenuIdPrefix + id; | 172 | var menuId = kdeConnectMenuIdPrefix + id; | ||
172 | 173 | | |||
173 | chrome.contextMenus.create({ | 174 | chrome.contextMenus.create({ | ||
174 | id: menuId, | 175 | id: menuId, | ||
175 | contexts: ["link", "page"], | 176 | contexts: ["link", "page"], | ||
176 | title: menuEntryTitle, | 177 | title: menuEntryTitle, | ||
177 | }); | 178 | }); | ||
179 | | ||||
180 | kdeConnectDevices.push(id); | ||||
178 | }); | 181 | }); | ||
179 | 182 | | |||
180 | addCallback("kdeconnect", "deviceRemoved", function(message) { | 183 | addCallback("kdeconnect", "deviceRemoved", function(message) { | ||
181 | chrome.contextMenus.remove("kdeconnect_page_" + message.id) | 184 | let id = message.id; | ||
185 | | ||||
186 | let idx = kdeConnectDevices.indexOf(id); | ||||
187 | if (idx > -1) { | ||||
188 | kdeConnectDevices.splice(idx, 1); | ||||
189 | } | ||||
190 | | ||||
191 | chrome.contextMenus.remove(kdeConnectMenuIdPrefix + id); | ||||
182 | }); | 192 | }); | ||
183 | 193 | | |||
184 | // MPRIS | 194 | // MPRIS | ||
185 | // ------------------------------------------------------------------------ | 195 | // ------------------------------------------------------------------------ | ||
186 | // | 196 | // | ||
187 | 197 | | |||
188 | var playerTabIds = []; | 198 | var playerTabIds = []; | ||
189 | 199 | | |||
▲ Show 20 Lines • Show All 480 Lines • ▼ Show 20 Line(s) | 651 | port.onMessage.addListener(function (message) { | |||
670 | } | 680 | } | ||
671 | }); | 681 | }); | ||
672 | 682 | | |||
673 | port.onDisconnect.addListener(function() { | 683 | port.onDisconnect.addListener(function() { | ||
674 | var error = chrome.runtime.lastError; | 684 | var error = chrome.runtime.lastError; | ||
675 | 685 | | |||
676 | console.warn("Host disconnected", error); | 686 | console.warn("Host disconnected", error); | ||
677 | 687 | | |||
688 | // Remove all kde connect menu entries since they won't work without a host | ||||
689 | for (let device of kdeConnectDevices) { | ||||
690 | chrome.contextMenus.remove(kdeConnectMenuIdPrefix + device); | ||||
691 | } | ||||
692 | kdeConnectDevices = []; | ||||
693 | | ||||
678 | var reason = chrome.i18n.getMessage("general_error_unknown"); | 694 | var reason = chrome.i18n.getMessage("general_error_unknown"); | ||
679 | if (error && error.message) { | 695 | if (error && error.message) { | ||
680 | reason = error.message; | 696 | reason = error.message; | ||
681 | } | 697 | } | ||
682 | 698 | | |||
683 | var message = receivedMessageOnce ? chrome.i18n.getMessage("general_error_port_disconnect", reason) | 699 | var message = receivedMessageOnce ? chrome.i18n.getMessage("general_error_port_disconnect", reason) | ||
684 | : chrome.i18n.getMessage("general_error_port_startupfail"); | 700 | : chrome.i18n.getMessage("general_error_port_startupfail"); | ||
685 | 701 | | |||
▲ Show 20 Lines • Show All 47 Lines • Show Last 20 Lines |