Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(28)

Side by Side Diff: chrome/browser/resources/bluetooth_internals/bluetooth_internals.js

Issue 2567983007: bluetooth: Add adapter page to internals page. (Closed)
Patch Set: Merge upstream Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * Javascript for bluetooth_internals.html, served from 6 * Javascript for bluetooth_internals.html, served from
7 * chrome://bluetooth-internals/. 7 * chrome://bluetooth-internals/.
8 */ 8 */
9 9
10 // Expose for testing. 10 // Expose for testing.
11 var adapterBroker = null; 11 var adapterBroker = null;
12 var devices = null; 12 var devices = null;
13 var sidebarObj = null; 13 var sidebarObj = null;
14 14
15 cr.define('bluetooth_internals', function() { 15 cr.define('bluetooth_internals', function() {
16 /** @const */ var AdapterPage = adapter_page.AdapterPage;
16 /** @const */ var DevicesPage = devices_page.DevicesPage; 17 /** @const */ var DevicesPage = devices_page.DevicesPage;
17 /** @const */ var PageManager = cr.ui.pageManager.PageManager; 18 /** @const */ var PageManager = cr.ui.pageManager.PageManager;
18 /** @const */ var Snackbar = snackbar.Snackbar; 19 /** @const */ var Snackbar = snackbar.Snackbar;
19 /** @const */ var SnackbarType = snackbar.SnackbarType; 20 /** @const */ var SnackbarType = snackbar.SnackbarType;
20 21
21 /** 22 /**
22 * Observer for page changes. Used to update page title header. 23 * Observer for page changes. Used to update page title header.
23 * @extends {cr.ui.pageManager.PageManager.Observer} 24 * @extends {cr.ui.pageManager.PageManager.Observer}
24 */ 25 */
25 var PageObserver = function() {}; 26 var PageObserver = function() {};
(...skipping 14 matching lines...) Expand all
40 document.querySelector('.page-title').textContent = title; 41 document.querySelector('.page-title').textContent = title;
41 }, 42 },
42 }; 43 };
43 44
44 /** @type {!Map<string, !interfaces.BluetoothDevice.DevicePtr>} */ 45 /** @type {!Map<string, !interfaces.BluetoothDevice.DevicePtr>} */
45 var deviceAddressToProxy = new Map(); 46 var deviceAddressToProxy = new Map();
46 47
47 /** @type {!device_collection.DeviceCollection} */ 48 /** @type {!device_collection.DeviceCollection} */
48 devices = new device_collection.DeviceCollection([]); 49 devices = new device_collection.DeviceCollection([]);
49 50
51 /** @type {adapter_page.AdapterPage} */
52 var adapterPage = null;
50 /** @type {devices_page.DevicesPage} */ 53 /** @type {devices_page.DevicesPage} */
51 var devicesPage = null; 54 var devicesPage = null;
52 55
53 /** @type {interfaces.BluetoothAdapter.DiscoverySession.ptrClass} */ 56 /** @type {interfaces.BluetoothAdapter.DiscoverySession.ptrClass} */
54 var discoverySession = null; 57 var discoverySession = null;
55 58
56 /** @type {boolean} */ 59 /** @type {boolean} */
57 var userRequestedScanStop = false; 60 var userRequestedScanStop = false;
58 61
59 function handleInspect(event) { 62 function handleInspect(event) {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 }); 117 });
115 } 118 }
116 119
117 function updateStoppedDiscoverySession() { 120 function updateStoppedDiscoverySession() {
118 devicesPage.setScanStatus(devices_page.ScanStatus.OFF); 121 devicesPage.setScanStatus(devices_page.ScanStatus.OFF);
119 discoverySession.ptr.reset(); 122 discoverySession.ptr.reset();
120 discoverySession = null; 123 discoverySession = null;
121 } 124 }
122 125
123 function setupAdapterSystem(response) { 126 function setupAdapterSystem(response) {
124 console.log('adapter', response.info); 127 adapterBroker.addEventListener('adapterchanged', function(event) {
128 adapterPage.adapterFieldSet.value[event.detail.property] =
129 event.detail.value;
130 adapterPage.redraw();
125 131
126 adapterBroker.addEventListener('adapterchanged', function(event) {
127 if (event.detail.property == adapter_broker.AdapterProperty.DISCOVERING && 132 if (event.detail.property == adapter_broker.AdapterProperty.DISCOVERING &&
128 !event.detail.value && !userRequestedScanStop && discoverySession) { 133 !event.detail.value && !userRequestedScanStop && discoverySession) {
129 updateStoppedDiscoverySession(); 134 updateStoppedDiscoverySession();
130 Snackbar.show( 135 Snackbar.show(
131 'Discovery session ended unexpectedly', SnackbarType.WARNING); 136 'Discovery session ended unexpectedly', SnackbarType.WARNING);
132 } 137 }
133 }); 138 });
139
140 adapterPage.setAdapterInfo(response.info);
141
142 adapterPage.pageDiv.addEventListener('refreshpressed', function() {
143 adapterBroker.getInfo().then(function(response) {
144 adapterPage.setAdapterInfo(response.info);
145 });
146 });
134 } 147 }
135 148
136 function setupDeviceSystem(response) { 149 function setupDeviceSystem(response) {
137 // Hook up device collection events. 150 // Hook up device collection events.
138 adapterBroker.addEventListener('deviceadded', function(event) { 151 adapterBroker.addEventListener('deviceadded', function(event) {
139 devices.addOrUpdate(event.detail.deviceInfo); 152 devices.addOrUpdate(event.detail.deviceInfo);
140 }); 153 });
141 adapterBroker.addEventListener('devicechanged', function(event) { 154 adapterBroker.addEventListener('devicechanged', function(event) {
142 devices.addOrUpdate(event.detail.deviceInfo); 155 devices.addOrUpdate(event.detail.deviceInfo);
143 }); 156 });
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 } 203 }
191 204
192 function setupPages() { 205 function setupPages() {
193 sidebarObj = new window.sidebar.Sidebar($('sidebar')); 206 sidebarObj = new window.sidebar.Sidebar($('sidebar'));
194 $('menu-btn').addEventListener('click', function() { sidebarObj.open(); }); 207 $('menu-btn').addEventListener('click', function() { sidebarObj.open(); });
195 PageManager.addObserver(sidebarObj); 208 PageManager.addObserver(sidebarObj);
196 PageManager.addObserver(new PageObserver()); 209 PageManager.addObserver(new PageObserver());
197 210
198 devicesPage = new DevicesPage(); 211 devicesPage = new DevicesPage();
199 PageManager.register(devicesPage); 212 PageManager.register(devicesPage);
213 adapterPage = new AdapterPage();
214 PageManager.register(adapterPage);
200 215
201 // Set up hash-based navigation. 216 // Set up hash-based navigation.
202 window.addEventListener('hashchange', function() { 217 window.addEventListener('hashchange', function() {
203 PageManager.showPageByName(window.location.hash.substr(1)); 218 PageManager.showPageByName(window.location.hash.substr(1));
204 }); 219 });
205 220
206 if (!window.location.hash) { 221 if (!window.location.hash) {
207 PageManager.showPageByName(devicesPage.name); 222 PageManager.showPageByName(adapterPage.name);
208 return; 223 return;
209 } 224 }
210 225
211 PageManager.showPageByName(window.location.hash.substr(1)); 226 PageManager.showPageByName(window.location.hash.substr(1));
212 } 227 }
213 228
214 function initializeViews() { 229 function initializeViews() {
215 setupPages(); 230 setupPages();
216 231
217 adapter_broker.getAdapterBroker() 232 adapter_broker.getAdapterBroker()
218 .then(function(broker) { adapterBroker = broker; }) 233 .then(function(broker) { adapterBroker = broker; })
219 .then(function() { return adapterBroker.getInfo(); }) 234 .then(function() { return adapterBroker.getInfo(); })
220 .then(setupAdapterSystem) 235 .then(setupAdapterSystem)
221 .then(function() { return adapterBroker.getDevices(); }) 236 .then(function() { return adapterBroker.getDevices(); })
222 .then(setupDeviceSystem) 237 .then(setupDeviceSystem)
223 .catch(function(error) { 238 .catch(function(error) {
224 Snackbar.show(error.message, SnackbarType.ERROR); 239 Snackbar.show(error.message, SnackbarType.ERROR);
225 console.error(error); 240 console.error(error);
226 }); 241 });
227 } 242 }
228 243
229 return { 244 return {
230 initializeViews: initializeViews 245 initializeViews: initializeViews
231 }; 246 };
232 }); 247 });
233 248
234 document.addEventListener( 249 document.addEventListener(
235 'DOMContentLoaded', bluetooth_internals.initializeViews); 250 'DOMContentLoaded', bluetooth_internals.initializeViews);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698