Index: chrome/browser/resources/bluetooth_internals/bluetooth_internals.js |
diff --git a/chrome/browser/resources/bluetooth_internals/bluetooth_internals.js b/chrome/browser/resources/bluetooth_internals/bluetooth_internals.js |
index 4057293273bc1ddaa7726553896bef63b21fd86d..b5650775ec3b74636a7e654f3ebbf8d83cead834 100644 |
--- a/chrome/browser/resources/bluetooth_internals/bluetooth_internals.js |
+++ b/chrome/browser/resources/bluetooth_internals/bluetooth_internals.js |
@@ -31,6 +31,28 @@ cr.define('bluetooth_internals', function() { |
response.devices.forEach(devices.addOrUpdate, |
devices /* this */); |
+ // TODO(crbug.com/663470): Move subscribe statements to DevicesView when |
+ // it's added. |
+ bluetooth_internals.subscribe('connectrequest', function(event) { |
ortuno
2016/11/09 03:24:03
I think we want to do this the other way around. D
mbrunson
2016/11/09 23:39:37
We can use addEventListener on DeviceTable since i
|
+ var index = event.detail.index; |
+ var device = devices.item(index); |
+ |
+ if (device.proxy) { |
+ device.disconnect(); |
+ devices.updateConnectionStatus(index); |
+ } else { |
+ device.connect().then(function() { |
+ devices.updateConnectionStatus(index); |
+ |
+ device.getServices().then(function() { |
+ devices.updateIndex(index); |
+ }); |
+ }).catch(function(error) { |
+ devices.updateConnectionStatus(index, error); |
+ }); |
+ } |
+ }); |
ortuno
2016/11/09 03:24:03
Should this be bound to bluetooth_internals?
mbrunson
2016/11/09 23:39:37
It doesn't really need to be.
|
+ |
var deviceTable = new device_table.DeviceTable(); |
deviceTable.setDevices(devices); |
document.body.appendChild(deviceTable); |
@@ -38,7 +60,26 @@ cr.define('bluetooth_internals', function() { |
.catch(function(error) { console.error(error); }); |
} |
+ var eventHandlersMap = new Map(); |
+ |
+ function publish(event) { |
+ var handlers = eventHandlersMap.get(event.type); |
+ handlers.forEach(function(handler) { |
+ handler(event); |
+ }); |
+ } |
+ |
+ function subscribe(eventName, delegate) { |
+ if (!eventHandlersMap.has(eventName)) { |
+ eventHandlersMap.set(eventName, []); |
+ } |
+ |
+ eventHandlersMap.get(eventName).push(delegate); |
+ } |
+ |
return { |
+ publish: publish, |
+ subscribe: subscribe, |
initializeViews: initializeViews |
}; |